Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : requête SQL sous delphi [ Archives / Bases de données ] (toubal_99)

mercredi 12 avril 2006 à 23:04:14 | requête SQL sous delphi

toubal_99

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 = ( select Detail1.N_Lot from Detail1 JOIN Aprovisionnements on  (Aprovisionnements.N_Service = :N_Ser) and (Aprovisionnements.N_Apr = Detail1.N_Apr) )

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.


mercredi 12 avril 2006 à 23:16:35 | Re : requétte SQL sous delphi

Delphiprog

Administrateur CodeS-SourceS
Merci de préciser quelle base de données tu utilises.

May Delphi be with you !

mercredi 12 avril 2006 à 23:18:34 | Re : requête SQL sous delphi

Delphiprog

Administrateur CodeS-SourceS
Autre question : tu exécutes ta requête en appelant la méthode Open ou la méthode ExecSql dans le code source delphi ?

May Delphi be with you !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

jeudi 13 avril 2006 à 00:25:30 | Re : requête SQL sous delphi

toubal_99

j'utilise paradox, et j'execute la requette avec la methode Open

StockBr.SQL.Clear;
StockBr.SQL.Add('DELETE from Stock WHERE Stock.N_Lot = ( select Detail1.N_Lot from Detail1 JOIN Aprovisionnements on  (Aprovisionnements.N_Service = :N_Ser) and (Aprovisionnements.N_Apr = Detail1.N_Apr) )');
StockBr.ParamByName('N_Ser').AsInteger:=StrToInt(Dbgrid4.SelectedField.DisplayText);
StockBr.Open;


jeudi 13 avril 2006 à 19:20:19 | Re : requête SQL sous delphi

Delphiprog

Administrateur CodeS-SourceS
Alors dans ce cas c'est normal que tu obtiennes ce message d'erreur.
Seules les requêtes renvoyant un ensemble de données (select) doivent être exécutées en utilisant la méthode Open.
Dans les autres cas (delete, update, insert), il faut utiliser la méthode ExecSql du composant TQuery.

May Delphi be with you !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

jeudi 13 avril 2006 à 20:13:55 | Re : requête SQL sous delphi

toubal_99

je v essayer et je vous confirme si ca marche merci


jeudi 13 avril 2006 à 21:43:54 | Re : requête SQL sous delphi

toubal_99

la g pas de message d'ereure aparament c bon sauf que ca n'efface pas les enregistrements g verifier les clauses elle sonts corectes.


jeudi 13 avril 2006 à 22:02:14 | Re : requête SQL sous delphi

toubal_99

voici un exemple de la requette :

DELETE FROM Stock WHERE Stock.N_Lot = ( SELEC N_Lot FROM Detail1 JOIN Aprovisionnements on  (Aprovisionnements.N_Service = 1)  AND (Aprovisionnements.N_Apr = Detail1.N_Apr) AND (Detail1.Date_Per < "'01/01/2005'") )


jeudi 13 avril 2006 à 23:29:20 | Re : requête SQL sous delphi

Delphiprog

Administrateur CodeS-SourceS
Réponse acceptée !
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 !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

vendredi 14 avril 2006 à 00:48:27 | Re : requête SQL sous delphi

toubal_99

merci beacoup de votre aide ca a marcher , j'espere que ca serviras au autres !
encor 1000000 merci



1 2

Cette discussion est classé dans : from, lot, stock, detail1, aprovisionnements


Répondre à ce message

Sujets en rapport avec ce message

transformer une requete [ par tarik ] salutcomment transformer une requete simple en une requete multi-niveaux , exemple :select nom,prénomfrom employéwhere salaire = 12000devient select n j'ai besoin d'aide ! [ par apz ] bonjour !alors jai un stock et je veux creer un programme qui gere les entreessorties des produit et qui me permete d'ajouter, modifier, supprimer oui requete sql avec or sur le même champs [ par choup ] 'lutj'ai un petit probleme et je n'arrive pas à comprendre pourquoi : celà ne me semble pas logique.voilà : j'ai une requete qui donne "select *from o pb requete group by / order by [ par manson34 ] je veux faire la requete suivante sur une table d'élèves, elle doit compter le nbre de fille par classe en classant les classes (divcod) de la maniere PB Requete SQL :( [ par funemul ] Voila le probleme :J'utilise un Tquery et ma requete est la suivante :SELECT * FROM annee_2003 WHERE DATE_DU = 01-12-2003Et la requete ne me selection From unit diferente [ par mickeydisn ] voila dans mon projet . j'ai une gross form avec beaucoup de bouton .. le probleme ses que j'ai pas mal de code a fournir dans mon projet ... je voudr base de donnée avec delphi pour stock [ par Kruger ] salut tous le monde, je commence juste en delphi et je dois faire une appli pour gerer un stock, je bloque sur un truc, la base de donnée, est ce que group by [ par tommyy ] bonjour ,voilà je souhaite sortir le nombre d'individus par année de naissance et non par date de naissance(c'est à dire compter le nombre de personne [Interbase6] Problème de triggers [ par emeraudes ] bonjour, j'utilise Interbase 6 et je voudrais savoir comment faire pour faire un trigger de suppression. voila j'explique j'ai 2 tables "lot" et GetIP from HostName [ par Filipe35 ] Bonjour à tous J'ai une question, j'ai l'adresse d'un site htttp://www.ogametut.free.fr mais l'ip de ce dernier change souvent,et j'aimerais bien fai


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.