J'ai 2 tables liées (par exemple commande et produits)
Idcommande est l'identifiant unique de commande et se retrouve dans la
table Produit en clé doublonnée)
Je commence l'enregistrement via sql de la ligne de commande dans le
fichier commande.
C'est ici que je cherche la meilleure façon de faire : Comment faire
pour récupérer l'identifiant de la dernière commande saisie pour pouvoir
l'inscrire dans la table des produits ?
Je pourrais relancer une recherche dans le fichier des commandes
immédiatement après avoir lancé la requête d'insertion mais suis-je sûr
que dans un environnement réseau personne ne vient pas de saisir une
commande juste après moi ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
patrice
"Jean-Luc Baptiste" a écrit dans le message de news:45e4091a$0$5071$
Bonjour,
J'ai besoin d'un conseil en SQL.
J'ai 2 tables liées (par exemple commande et produits) Idcommande est l'identifiant unique de commande et se retrouve dans la table Produit en clé doublonnée)
Je commence l'enregistrement via sql de la ligne de commande dans le fichier commande.
C'est ici que je cherche la meilleure façon de faire : Comment faire pour récupérer l'identifiant de la dernière commande saisie pour pouvoir l'inscrire dans la table des produits ?
Je pourrais relancer une recherche dans le fichier des commandes immédiatement après avoir lancé la requête d'insertion mais suis-je sûr que dans un environnement réseau personne ne vient pas de saisir une commande juste après moi ?
Merci d'avance
la session sql contient la derniere valeur de l'id
voir l'aide sur "instruction sql"
Pour connaître la valeur de l'identifiant automatique lors d'une requête de type INSERT sur des fichiers Hyper File : Requête exécutée par la fonction HExécuteRequêteSQL ou HExécuteRequête : la syntaxe <Nom du fichier>.<Nom de la rubrique Identifiant automatique> permet de connaître la valeur de l'identifiant automatique, juste après l'exécution de la requête. En effet, l'enregistrement en cours correspond à l'enregistrement ajouté.
Requête exécutée par la fonction SQLExec : la variable SQL.Idauto permet de connaître la valeur de l'identifiant.
"Jean-Luc Baptiste" <jeanluc.baptiste@free.fr> a écrit dans le message de
news:45e4091a$0$5071$ba4acef3@news.orange.fr...
Bonjour,
J'ai besoin d'un conseil en SQL.
J'ai 2 tables liées (par exemple commande et produits)
Idcommande est l'identifiant unique de commande et se retrouve dans la
table Produit en clé doublonnée)
Je commence l'enregistrement via sql de la ligne de commande dans le
fichier commande.
C'est ici que je cherche la meilleure façon de faire : Comment faire
pour récupérer l'identifiant de la dernière commande saisie pour pouvoir
l'inscrire dans la table des produits ?
Je pourrais relancer une recherche dans le fichier des commandes
immédiatement après avoir lancé la requête d'insertion mais suis-je sûr
que dans un environnement réseau personne ne vient pas de saisir une
commande juste après moi ?
Merci d'avance
la session sql contient la derniere valeur de l'id
voir l'aide sur "instruction sql"
Pour connaître la valeur de l'identifiant automatique lors d'une requête de
type INSERT sur des fichiers Hyper File :
Requête exécutée par la fonction HExécuteRequêteSQL ou HExécuteRequête :
la syntaxe <Nom du fichier>.<Nom de la rubrique Identifiant automatique>
permet de connaître la valeur de l'identifiant automatique, juste après
l'exécution de la requête. En effet, l'enregistrement en cours correspond à
l'enregistrement ajouté.
Requête exécutée par la fonction SQLExec : la variable SQL.Idauto permet
de connaître la valeur de l'identifiant.
"Jean-Luc Baptiste" a écrit dans le message de news:45e4091a$0$5071$
Bonjour,
J'ai besoin d'un conseil en SQL.
J'ai 2 tables liées (par exemple commande et produits) Idcommande est l'identifiant unique de commande et se retrouve dans la table Produit en clé doublonnée)
Je commence l'enregistrement via sql de la ligne de commande dans le fichier commande.
C'est ici que je cherche la meilleure façon de faire : Comment faire pour récupérer l'identifiant de la dernière commande saisie pour pouvoir l'inscrire dans la table des produits ?
Je pourrais relancer une recherche dans le fichier des commandes immédiatement après avoir lancé la requête d'insertion mais suis-je sûr que dans un environnement réseau personne ne vient pas de saisir une commande juste après moi ?
Merci d'avance
la session sql contient la derniere valeur de l'id
voir l'aide sur "instruction sql"
Pour connaître la valeur de l'identifiant automatique lors d'une requête de type INSERT sur des fichiers Hyper File : Requête exécutée par la fonction HExécuteRequêteSQL ou HExécuteRequête : la syntaxe <Nom du fichier>.<Nom de la rubrique Identifiant automatique> permet de connaître la valeur de l'identifiant automatique, juste après l'exécution de la requête. En effet, l'enregistrement en cours correspond à l'enregistrement ajouté.
Requête exécutée par la fonction SQLExec : la variable SQL.Idauto permet de connaître la valeur de l'identifiant.
Jean-Luc Baptiste
patrice a écrit :
"Jean-Luc Baptiste" a écrit dans le message de news:45e4091a$0$5071$
Bonjour,
J'ai besoin d'un conseil en SQL.
J'ai 2 tables liées (par exemple commande et produits) Idcommande est l'identifiant unique de commande et se retrouve dans la table Produit en clé doublonnée)
Je commence l'enregistrement via sql de la ligne de commande dans le fichier commande.
C'est ici que je cherche la meilleure façon de faire : Comment faire pour récupérer l'identifiant de la dernière commande saisie pour pouvoir l'inscrire dans la table des produits ?
Je pourrais relancer une recherche dans le fichier des commandes immédiatement après avoir lancé la requête d'insertion mais suis-je sûr que dans un environnement réseau personne ne vient pas de saisir une commande juste après moi ?
Merci d'avance
la session sql contient la derniere valeur de l'id
voir l'aide sur "instruction sql"
Pour connaître la valeur de l'identifiant automatique lors d'une requête de type INSERT sur des fichiers Hyper File : Requête exécutée par la fonction HExécuteRequêteSQL ou HExécuteRequête : la syntaxe <Nom du fichier>.<Nom de la rubrique Identifiant automatique> permet de connaître la valeur de l'identifiant automatique, juste après l'exécution de la requête. En effet, l'enregistrement en cours correspond à l'enregistrement ajouté.
Requête exécutée par la fonction SQLExec : la variable SQL.Idauto permet de connaître la valeur de l'identifiant.
Merci je regarde de suite.
patrice a écrit :
"Jean-Luc Baptiste" <jeanluc.baptiste@free.fr> a écrit dans le message de
news:45e4091a$0$5071$ba4acef3@news.orange.fr...
Bonjour,
J'ai besoin d'un conseil en SQL.
J'ai 2 tables liées (par exemple commande et produits)
Idcommande est l'identifiant unique de commande et se retrouve dans la
table Produit en clé doublonnée)
Je commence l'enregistrement via sql de la ligne de commande dans le
fichier commande.
C'est ici que je cherche la meilleure façon de faire : Comment faire
pour récupérer l'identifiant de la dernière commande saisie pour pouvoir
l'inscrire dans la table des produits ?
Je pourrais relancer une recherche dans le fichier des commandes
immédiatement après avoir lancé la requête d'insertion mais suis-je sûr
que dans un environnement réseau personne ne vient pas de saisir une
commande juste après moi ?
Merci d'avance
la session sql contient la derniere valeur de l'id
voir l'aide sur "instruction sql"
Pour connaître la valeur de l'identifiant automatique lors d'une requête de
type INSERT sur des fichiers Hyper File :
Requête exécutée par la fonction HExécuteRequêteSQL ou HExécuteRequête :
la syntaxe <Nom du fichier>.<Nom de la rubrique Identifiant automatique>
permet de connaître la valeur de l'identifiant automatique, juste après
l'exécution de la requête. En effet, l'enregistrement en cours correspond à
l'enregistrement ajouté.
Requête exécutée par la fonction SQLExec : la variable SQL.Idauto permet
de connaître la valeur de l'identifiant.
"Jean-Luc Baptiste" a écrit dans le message de news:45e4091a$0$5071$
Bonjour,
J'ai besoin d'un conseil en SQL.
J'ai 2 tables liées (par exemple commande et produits) Idcommande est l'identifiant unique de commande et se retrouve dans la table Produit en clé doublonnée)
Je commence l'enregistrement via sql de la ligne de commande dans le fichier commande.
C'est ici que je cherche la meilleure façon de faire : Comment faire pour récupérer l'identifiant de la dernière commande saisie pour pouvoir l'inscrire dans la table des produits ?
Je pourrais relancer une recherche dans le fichier des commandes immédiatement après avoir lancé la requête d'insertion mais suis-je sûr que dans un environnement réseau personne ne vient pas de saisir une commande juste après moi ?
Merci d'avance
la session sql contient la derniere valeur de l'id
voir l'aide sur "instruction sql"
Pour connaître la valeur de l'identifiant automatique lors d'une requête de type INSERT sur des fichiers Hyper File : Requête exécutée par la fonction HExécuteRequêteSQL ou HExécuteRequête : la syntaxe <Nom du fichier>.<Nom de la rubrique Identifiant automatique> permet de connaître la valeur de l'identifiant automatique, juste après l'exécution de la requête. En effet, l'enregistrement en cours correspond à l'enregistrement ajouté.
Requête exécutée par la fonction SQLExec : la variable SQL.Idauto permet de connaître la valeur de l'identifiant.
Merci je regarde de suite.
Jean-Luc Baptiste
J'ai oublié de préciser que la base est sur un serveur Manta
patrice a écrit :
"Jean-Luc Baptiste" a écrit dans le message de news:45e4091a$0$5071$
Bonjour,
J'ai besoin d'un conseil en SQL.
J'ai 2 tables liées (par exemple commande et produits) Idcommande est l'identifiant unique de commande et se retrouve dans la table Produit en clé doublonnée)
Je commence l'enregistrement via sql de la ligne de commande dans le fichier commande.
C'est ici que je cherche la meilleure façon de faire : Comment faire pour récupérer l'identifiant de la dernière commande saisie pour pouvoir l'inscrire dans la table des produits ?
Je pourrais relancer une recherche dans le fichier des commandes immédiatement après avoir lancé la requête d'insertion mais suis-je sûr que dans un environnement réseau personne ne vient pas de saisir une commande juste après moi ?
Merci d'avance
la session sql contient la derniere valeur de l'id
voir l'aide sur "instruction sql"
Pour connaître la valeur de l'identifiant automatique lors d'une requête de type INSERT sur des fichiers Hyper File : Requête exécutée par la fonction HExécuteRequêteSQL ou HExécuteRequête : la syntaxe <Nom du fichier>.<Nom de la rubrique Identifiant automatique> permet de connaître la valeur de l'identifiant automatique, juste après l'exécution de la requête. En effet, l'enregistrement en cours correspond à l'enregistrement ajouté.
Requête exécutée par la fonction SQLExec : la variable SQL.Idauto permet de connaître la valeur de l'identifiant.
J'ai oublié de préciser que la base est sur un serveur Manta
patrice a écrit :
"Jean-Luc Baptiste" <jeanluc.baptiste@free.fr> a écrit dans le message de
news:45e4091a$0$5071$ba4acef3@news.orange.fr...
Bonjour,
J'ai besoin d'un conseil en SQL.
J'ai 2 tables liées (par exemple commande et produits)
Idcommande est l'identifiant unique de commande et se retrouve dans la
table Produit en clé doublonnée)
Je commence l'enregistrement via sql de la ligne de commande dans le
fichier commande.
C'est ici que je cherche la meilleure façon de faire : Comment faire
pour récupérer l'identifiant de la dernière commande saisie pour pouvoir
l'inscrire dans la table des produits ?
Je pourrais relancer une recherche dans le fichier des commandes
immédiatement après avoir lancé la requête d'insertion mais suis-je sûr
que dans un environnement réseau personne ne vient pas de saisir une
commande juste après moi ?
Merci d'avance
la session sql contient la derniere valeur de l'id
voir l'aide sur "instruction sql"
Pour connaître la valeur de l'identifiant automatique lors d'une requête de
type INSERT sur des fichiers Hyper File :
Requête exécutée par la fonction HExécuteRequêteSQL ou HExécuteRequête :
la syntaxe <Nom du fichier>.<Nom de la rubrique Identifiant automatique>
permet de connaître la valeur de l'identifiant automatique, juste après
l'exécution de la requête. En effet, l'enregistrement en cours correspond à
l'enregistrement ajouté.
Requête exécutée par la fonction SQLExec : la variable SQL.Idauto permet
de connaître la valeur de l'identifiant.
J'ai oublié de préciser que la base est sur un serveur Manta
patrice a écrit :
"Jean-Luc Baptiste" a écrit dans le message de news:45e4091a$0$5071$
Bonjour,
J'ai besoin d'un conseil en SQL.
J'ai 2 tables liées (par exemple commande et produits) Idcommande est l'identifiant unique de commande et se retrouve dans la table Produit en clé doublonnée)
Je commence l'enregistrement via sql de la ligne de commande dans le fichier commande.
C'est ici que je cherche la meilleure façon de faire : Comment faire pour récupérer l'identifiant de la dernière commande saisie pour pouvoir l'inscrire dans la table des produits ?
Je pourrais relancer une recherche dans le fichier des commandes immédiatement après avoir lancé la requête d'insertion mais suis-je sûr que dans un environnement réseau personne ne vient pas de saisir une commande juste après moi ?
Merci d'avance
la session sql contient la derniere valeur de l'id
voir l'aide sur "instruction sql"
Pour connaître la valeur de l'identifiant automatique lors d'une requête de type INSERT sur des fichiers Hyper File : Requête exécutée par la fonction HExécuteRequêteSQL ou HExécuteRequête : la syntaxe <Nom du fichier>.<Nom de la rubrique Identifiant automatique> permet de connaître la valeur de l'identifiant automatique, juste après l'exécution de la requête. En effet, l'enregistrement en cours correspond à l'enregistrement ajouté.
Requête exécutée par la fonction SQLExec : la variable SQL.Idauto permet de connaître la valeur de l'identifiant.
mat
Jean-Luc Baptiste wrote: ...
Merci je regarde de suite.
Bonjour Jean-Luc,
J'admire vos cours didactiques et celui sur SQL/mySQL est également très bien fait. Pourtant, si la question concerne "SQL sur HF", j'ose questionner la valeur pratique d'un cours utilisant INSERT, DELETE et UPDATE, au moins sur les versions <= WD10. La raison est qu'aucune contrainte et aucune clé unique n'est respecté par les requêtes Hyper File. Le suivant me donne en effet 3 enregistrements avec l'ID 9999 dans une rubrique de type clé unique.
i est entier sQuery est chaîne dsSQL est une Source de Données sQuery = "INSERT INTO Contract (IDContract) VALUES (9999) " //Contract.IDContract est une clé unique ! POUR i = 1 A 3 HExécuteRequêteSQL(dsSQL, sQuery) Trace(Contract.IDContract) FIN
Aucune contrainte n'est respecté. Je peux supprimer ce que je veux, HF ne m'arrêtera pas. D'autre part mes lignes de commande supprimé en cascade par hSupprime sont sauves: la suppression de l'entête de commande par requête ne les touche pas.
On ne sait non plus si la requête a exécuté une modification ou une suppression, car le retour de hExecuteRequête est sur l'exécution du code de la requête, pas la commande même.
Probablement vous savez tous ça, mais je vous assure que beaucoup de gens ne le savent pas. Un acheteur de Windev ne peux pas connaître cette limitation importante de HF, car il n'y en a aucune information. D'accord beaucoup de gens ne travaillent pas avec les contraintes, mais que la base accepte plusieurs fois le même ID n'est quand-même pas normal. A mon avis la moindre chose à faire dans un tel cas est d'en informer les développeurs.
Salutations Mat
Jean-Luc Baptiste wrote:
...
Merci je regarde de suite.
Bonjour Jean-Luc,
J'admire vos cours didactiques et celui sur SQL/mySQL est également très
bien fait. Pourtant, si la question concerne "SQL sur HF", j'ose
questionner la valeur pratique d'un cours utilisant INSERT, DELETE et
UPDATE, au moins sur les versions <= WD10. La raison est qu'aucune
contrainte et aucune clé unique n'est respecté par les requêtes Hyper
File. Le suivant me donne en effet 3 enregistrements avec l'ID 9999 dans
une rubrique de type clé unique.
i est entier
sQuery est chaîne
dsSQL est une Source de Données
sQuery = "INSERT INTO Contract (IDContract) VALUES (9999) "
//Contract.IDContract est une clé unique !
POUR i = 1 A 3
HExécuteRequêteSQL(dsSQL, sQuery)
Trace(Contract.IDContract)
FIN
Aucune contrainte n'est respecté. Je peux supprimer ce que je veux, HF
ne m'arrêtera pas. D'autre part mes lignes de commande supprimé en
cascade par hSupprime sont sauves: la suppression de l'entête de
commande par requête ne les touche pas.
On ne sait non plus si la requête a exécuté une modification ou une
suppression, car le retour de hExecuteRequête est sur l'exécution du
code de la requête, pas la commande même.
Probablement vous savez tous ça, mais je vous assure que beaucoup de
gens ne le savent pas. Un acheteur de Windev ne peux pas connaître cette
limitation importante de HF, car il n'y en a aucune information.
D'accord beaucoup de gens ne travaillent pas avec les contraintes, mais
que la base accepte plusieurs fois le même ID n'est quand-même pas
normal. A mon avis la moindre chose à faire dans un tel cas est d'en
informer les développeurs.
J'admire vos cours didactiques et celui sur SQL/mySQL est également très bien fait. Pourtant, si la question concerne "SQL sur HF", j'ose questionner la valeur pratique d'un cours utilisant INSERT, DELETE et UPDATE, au moins sur les versions <= WD10. La raison est qu'aucune contrainte et aucune clé unique n'est respecté par les requêtes Hyper File. Le suivant me donne en effet 3 enregistrements avec l'ID 9999 dans une rubrique de type clé unique.
i est entier sQuery est chaîne dsSQL est une Source de Données sQuery = "INSERT INTO Contract (IDContract) VALUES (9999) " //Contract.IDContract est une clé unique ! POUR i = 1 A 3 HExécuteRequêteSQL(dsSQL, sQuery) Trace(Contract.IDContract) FIN
Aucune contrainte n'est respecté. Je peux supprimer ce que je veux, HF ne m'arrêtera pas. D'autre part mes lignes de commande supprimé en cascade par hSupprime sont sauves: la suppression de l'entête de commande par requête ne les touche pas.
On ne sait non plus si la requête a exécuté une modification ou une suppression, car le retour de hExecuteRequête est sur l'exécution du code de la requête, pas la commande même.
Probablement vous savez tous ça, mais je vous assure que beaucoup de gens ne le savent pas. Un acheteur de Windev ne peux pas connaître cette limitation importante de HF, car il n'y en a aucune information. D'accord beaucoup de gens ne travaillent pas avec les contraintes, mais que la base accepte plusieurs fois le même ID n'est quand-même pas normal. A mon avis la moindre chose à faire dans un tel cas est d'en informer les développeurs.
Salutations Mat
Jean-Luc Baptiste
Bonjour,
Merci pour les compliments ;-))
En fait, sur un serveur Manta ou Mysql pour récupérer l'identifiant il faut refaire une requête select sur l'identifiant apres une requête insert. C'est obligatoire en mode de fonctionnement réseau. La récupération de l'identifiant par Nomdifichier.idcleunik n'est possible qu'en mode d'accès natif, alors on peut se poser la question sur la pertinence d'une requête d'insertion plutôt qu'un Hajoute !
Tout ça fait partie d'un chapitre du livre que je suis en train de finir et qui traite (le chapitre) de la migration d'une base de donnée Hyper file classic sur un serveur Manta puis Mysql et la traduction du code vers le tout SQL.
mat a écrit :
Jean-Luc Baptiste wrote: ...
Merci je regarde de suite.
Bonjour Jean-Luc,
J'admire vos cours didactiques et celui sur SQL/mySQL est également très bien fait. Pourtant, si la question concerne "SQL sur HF", j'ose questionner la valeur pratique d'un cours utilisant INSERT, DELETE et UPDATE, au moins sur les versions <= WD10. La raison est qu'aucune contrainte et aucune clé unique n'est respecté par les requêtes Hyper File. Le suivant me donne en effet 3 enregistrements avec l'ID 9999 dans une rubrique de type clé unique.
i est entier sQuery est chaîne dsSQL est une Source de Données sQuery = "INSERT INTO Contract (IDContract) VALUES (9999) " //Contract.IDContract est une clé unique ! POUR i = 1 A 3 HExécuteRequêteSQL(dsSQL, sQuery) Trace(Contract.IDContract) FIN
Aucune contrainte n'est respecté. Je peux supprimer ce que je veux, HF ne m'arrêtera pas. D'autre part mes lignes de commande supprimé en cascade par hSupprime sont sauves: la suppression de l'entête de commande par requête ne les touche pas.
On ne sait non plus si la requête a exécuté une modification ou une suppression, car le retour de hExecuteRequête est sur l'exécution du code de la requête, pas la commande même.
Probablement vous savez tous ça, mais je vous assure que beaucoup de gens ne le savent pas. Un acheteur de Windev ne peux pas connaître cette limitation importante de HF, car il n'y en a aucune information. D'accord beaucoup de gens ne travaillent pas avec les contraintes, mais que la base accepte plusieurs fois le même ID n'est quand-même pas normal. A mon avis la moindre chose à faire dans un tel cas est d'en informer les développeurs.
Salutations Mat
Bonjour,
Merci pour les compliments ;-))
En fait, sur un serveur Manta ou Mysql pour récupérer l'identifiant il
faut refaire une requête select sur l'identifiant apres une requête insert.
C'est obligatoire en mode de fonctionnement réseau.
La récupération de l'identifiant par Nomdifichier.idcleunik n'est
possible qu'en mode d'accès natif, alors on peut se poser la question
sur la pertinence d'une requête d'insertion plutôt qu'un Hajoute !
Tout ça fait partie d'un chapitre du livre que je suis en train de finir
et qui traite (le chapitre) de la migration d'une base de donnée Hyper
file classic sur un serveur Manta puis Mysql et la traduction du code
vers le tout SQL.
mat a écrit :
Jean-Luc Baptiste wrote:
...
Merci je regarde de suite.
Bonjour Jean-Luc,
J'admire vos cours didactiques et celui sur SQL/mySQL est également très
bien fait. Pourtant, si la question concerne "SQL sur HF", j'ose
questionner la valeur pratique d'un cours utilisant INSERT, DELETE et
UPDATE, au moins sur les versions <= WD10. La raison est qu'aucune
contrainte et aucune clé unique n'est respecté par les requêtes Hyper
File. Le suivant me donne en effet 3 enregistrements avec l'ID 9999 dans
une rubrique de type clé unique.
i est entier
sQuery est chaîne
dsSQL est une Source de Données
sQuery = "INSERT INTO Contract (IDContract) VALUES (9999) "
//Contract.IDContract est une clé unique !
POUR i = 1 A 3
HExécuteRequêteSQL(dsSQL, sQuery)
Trace(Contract.IDContract)
FIN
Aucune contrainte n'est respecté. Je peux supprimer ce que je veux, HF
ne m'arrêtera pas. D'autre part mes lignes de commande supprimé en
cascade par hSupprime sont sauves: la suppression de l'entête de
commande par requête ne les touche pas.
On ne sait non plus si la requête a exécuté une modification ou une
suppression, car le retour de hExecuteRequête est sur l'exécution du
code de la requête, pas la commande même.
Probablement vous savez tous ça, mais je vous assure que beaucoup de
gens ne le savent pas. Un acheteur de Windev ne peux pas connaître cette
limitation importante de HF, car il n'y en a aucune information.
D'accord beaucoup de gens ne travaillent pas avec les contraintes, mais
que la base accepte plusieurs fois le même ID n'est quand-même pas
normal. A mon avis la moindre chose à faire dans un tel cas est d'en
informer les développeurs.
En fait, sur un serveur Manta ou Mysql pour récupérer l'identifiant il faut refaire une requête select sur l'identifiant apres une requête insert. C'est obligatoire en mode de fonctionnement réseau. La récupération de l'identifiant par Nomdifichier.idcleunik n'est possible qu'en mode d'accès natif, alors on peut se poser la question sur la pertinence d'une requête d'insertion plutôt qu'un Hajoute !
Tout ça fait partie d'un chapitre du livre que je suis en train de finir et qui traite (le chapitre) de la migration d'une base de donnée Hyper file classic sur un serveur Manta puis Mysql et la traduction du code vers le tout SQL.
mat a écrit :
Jean-Luc Baptiste wrote: ...
Merci je regarde de suite.
Bonjour Jean-Luc,
J'admire vos cours didactiques et celui sur SQL/mySQL est également très bien fait. Pourtant, si la question concerne "SQL sur HF", j'ose questionner la valeur pratique d'un cours utilisant INSERT, DELETE et UPDATE, au moins sur les versions <= WD10. La raison est qu'aucune contrainte et aucune clé unique n'est respecté par les requêtes Hyper File. Le suivant me donne en effet 3 enregistrements avec l'ID 9999 dans une rubrique de type clé unique.
i est entier sQuery est chaîne dsSQL est une Source de Données sQuery = "INSERT INTO Contract (IDContract) VALUES (9999) " //Contract.IDContract est une clé unique ! POUR i = 1 A 3 HExécuteRequêteSQL(dsSQL, sQuery) Trace(Contract.IDContract) FIN
Aucune contrainte n'est respecté. Je peux supprimer ce que je veux, HF ne m'arrêtera pas. D'autre part mes lignes de commande supprimé en cascade par hSupprime sont sauves: la suppression de l'entête de commande par requête ne les touche pas.
On ne sait non plus si la requête a exécuté une modification ou une suppression, car le retour de hExecuteRequête est sur l'exécution du code de la requête, pas la commande même.
Probablement vous savez tous ça, mais je vous assure que beaucoup de gens ne le savent pas. Un acheteur de Windev ne peux pas connaître cette limitation importante de HF, car il n'y en a aucune information. D'accord beaucoup de gens ne travaillent pas avec les contraintes, mais que la base accepte plusieurs fois le même ID n'est quand-même pas normal. A mon avis la moindre chose à faire dans un tel cas est d'en informer les développeurs.
Salutations Mat
Pascal F
Jean-Luc Baptiste a présenté l'énoncé suivant :
Tout ça fait partie d'un chapitre du livre que je suis en train de finir et qui traite (le chapitre) de la migration d'une base de donnée Hyper file classic sur un serveur Manta puis Mysql et la traduction du code vers le tout SQL.
Super, merci de nous tenir informés de la parution de cet ouvrage. C'est une étape que je souhaite faire dans mes développements et je n'ai pas toutes les connaissances. Donc une méthodologie à suivre m'intéresse. Bonne journée à tous.
-- Pascal
Ne garder que le prénom pour me joindre
Jean-Luc Baptiste a présenté l'énoncé suivant :
Tout ça fait partie d'un chapitre du livre que je suis en train de finir et qui traite (le chapitre) de la migration d'une base
de donnée Hyper file classic sur un serveur Manta puis Mysql et la traduction du code vers le tout SQL.
Super, merci de nous tenir informés de la parution de cet ouvrage. C'est une étape que je souhaite faire dans mes développements
et je n'ai pas toutes les connaissances. Donc une méthodologie à suivre m'intéresse.
Bonne journée à tous.
--
Pascal
N0.pascal.SPAM@efpe.biz
Ne garder que le prénom pour me joindre
Tout ça fait partie d'un chapitre du livre que je suis en train de finir et qui traite (le chapitre) de la migration d'une base de donnée Hyper file classic sur un serveur Manta puis Mysql et la traduction du code vers le tout SQL.
Super, merci de nous tenir informés de la parution de cet ouvrage. C'est une étape que je souhaite faire dans mes développements et je n'ai pas toutes les connaissances. Donc une méthodologie à suivre m'intéresse. Bonne journée à tous.