Requete SQL [Résolu]

Signaler
-
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
-
Bonjour,
J'ai deux tables enfants de type Paradox, Table2, Table3 en relation avec Table1 par le champs NumId. NumId étant un champs unique. Est il possible de supprimer tous les enregistrements de Table2 et Table3 ayant le même NumId en une seule requête SQL lors de la suppression dans Table1 d'un enregistrement.
Requête du genre DELETE FROM Table2, Table3 WHERE NumId = :NumId.
Comment affecter la propriété DataSet du DataSource
Merci de votre aide éventuelle car je commence SQL.

3 réponses

Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Bonjour,

Ce n'est pas possible en une seule requête. Paradox gère très mal l'intégrité référentielle. Si tu débutes, pourquoi ne pas commencer directement sur un SGBD plus "sérieux" que paradox ? C'est obsolète et source de multiples problème. Essaie avec Firebird par exemple (SGBD open source), que tu peux gérer avec FlameRobin (les éditeurs de bases Firebird ne manquent pas sur le net). Firebird gère très bien les intégrités référentielles...
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
Bonjour,

le mieux pour ce type d'opérations est de régler les options dans la création de la base (sous Firebird) en créant deux contraintes
sur les tables 2 et 3 en cascade.

et plus besoin de SQL, puisque la suppression d'un enregistrement de la table1 entraîne nécessairement la suppression des données correspondantes dans les deux tables annexes.

Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Ah pardon Cantador, mais tu peux quand même faire un delete via une requête sql sur la table1, et l'intégrité référentielle (les clés étrangères) font le reste sur les tables 2 et 3... ;)
Messages postés
106
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020
3 >
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015

Merci pour vos réponses. Je suis retraité, j'ai beaucoup développé avec Clipper lorsque je travaillais et suis venu à Delphi vers la fin de ma carrière quand les applis dans les ateliers on du passer sous windows lors du renouvellement des PC. Actuellement quand j'ai le temps je m'amuse avec Delphi. Je vais essayer Firebird.
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13 >
Messages postés
106
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
25 octobre 2020

Tu ne le regretteras pas ! ;-)
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
@sp40:
mais tu peux quand même faire un delete via une requête sql

bien sûr et c'est la bonne méthode !

@pierrotk10d:
ah clipper, cela me rappelle des souvenirs!
mais c'est bien loin tout ça..