Requête SQL sous delphi

Résolu
toubal_99 Messages postés 45 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 29 juillet 2008 - 12 avril 2006 à 23:04
haceneking Messages postés 5 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 23 juillet 2010 - 26 mars 2010 à 10:43
ma questions concerne sql mais je vais comeme la poser ici puisque je travaills sous delphi.
voici la requétte :
DELETE from Stock WHERE Stock.N_Lot <gras>( select Detail1.N_Lot from Detail1 JOIN Aprovisionnements on (Aprovisionnements.N_Service :N_Ser) and (Aprovisionnements.N_Apr = Detail1.N_Apr) )</gras>

le :N_Ser est un parametre qui est egale a 1 par exemple.
g essayer directement aussi :
DELETE from Stock WHERE Stock.N_Lot ( select Detail1.N_Lot from Detail1 JOIN Aprovisionnements on (Aprovisionnements.N_Service 1) and (Aprovisionnements.N_Apr = Detail1.N_Apr) )

il me sorte la meme ereure : Ereure a la creation du handle du curseur

a noter que meme quand j'utilise directement DELETE from Stock il me sorte la meme ereure sauf que cette fois il efface les enregistrements.
A voir également:

12 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
13 avril 2006 à 23:29
Ok.
En regardant la requête SQL de plus près, je m'interroge sur l'utilité de demander une jointure avec la table approvisionnements. Cela n'a aucun sens et la requête peut être simplifiée ainsi :
DELETE FROM Stock
WHERE N_Lot = ANY ( SELECT N_Lot
FROM Detail1
WHERE Date_Per < "01/01/2005" )

En clair :
Supprimer les enregistrements de la table Stock pour lesquels le champ N_Lot figure dans une liste contenue dans la table Detail1 et pour laquelle le champ Date_Per est inférieur à 01/01/2005. C'est bien cela ?

Autre façon d'écrire cette requête :
DELETE FROM Stock
WHERE N_Lot IN ( SELECT N_Lot
FROM Detail1
WHERE Date_Per < "01/01/2005" )

May Delphi be with you !

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
3
Rejoignez-nous