Requete SQL

Résolu
pierrotk10d - 18 févr. 2015 à 21:19
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 20 févr. 2015 à 11:24
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

sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
19 févr. 2015 à 09:37
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...
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
19 févr. 2015 à 16:03
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.

0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
19 févr. 2015 à 16:08
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... ;)
0
pierrotk10d Messages postés 110 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 2 février 2024 3 > sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015
19 févr. 2015 à 21:02
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.
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15 > pierrotk10d Messages postés 110 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 2 février 2024
20 févr. 2015 à 09:09
Tu ne le regretteras pas ! ;-)
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
20 févr. 2015 à 11:24
@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..
0
Rejoignez-nous