A voir également:
- Requête SQL Delphi??
- Telecharger delphi 7 - Télécharger - Langages
- Numéro de série delphi 7 ✓ - Forum Delphi
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Clé delphi 7 - Forum Delphi
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
8 réponses
Tu nous donne tres peu d'informations sur comment ton projet est fait...
Je suppose que tu as deja un ADOquery avec comme requete SQL : Select * from etudiant
En supposant que ton ADOQuery s'appelle ADOQuery1, dans la procédure de ton tbutton :
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add ('Select * from etudiant where code like '+QuotedStr(Edit1.Text));
ADOQuery1.Open;
end;
Je suppose que tu as deja un ADOquery avec comme requete SQL : Select * from etudiant
En supposant que ton ADOQuery s'appelle ADOQuery1, dans la procédure de ton tbutton :
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add ('Select * from etudiant where code like '+QuotedStr(Edit1.Text));
ADOQuery1.Open;
end;
Salut
le +QuoteStr c'est pour que ton programme comprenne qu'il doit lire la chaîne (String--> le St) qui est entre guillemets (de l'anglais Quotation mark).
La requête Select * from etudiant se trouve effectivement dans les propriétés SQL de ton ADOQuery1.
le ADOQuery1.SQL.Clear va réinitialiser la requête puis lancera sa recherche sur ce que tu lui demande (en l'occurence pour toi, il cherchera l'etudiant dont tu as mis le numero dans le TEdit).
Ca n'ajoutera rien, ni ne supprimera ce que tu as mis dans la propriété SQL de ton ADOQuery.
N'hesite pas regarder sur le net, il y a beaucoup de sites qui traitent des requêtes paramétrées.
le +QuoteStr c'est pour que ton programme comprenne qu'il doit lire la chaîne (String--> le St) qui est entre guillemets (de l'anglais Quotation mark).
La requête Select * from etudiant se trouve effectivement dans les propriétés SQL de ton ADOQuery1.
le ADOQuery1.SQL.Clear va réinitialiser la requête puis lancera sa recherche sur ce que tu lui demande (en l'occurence pour toi, il cherchera l'etudiant dont tu as mis le numero dans le TEdit).
Ca n'ajoutera rien, ni ne supprimera ce que tu as mis dans la propriété SQL de ton ADOQuery.
N'hesite pas regarder sur le net, il y a beaucoup de sites qui traitent des requêtes paramétrées.
Bonjour,
Merci beaucoup pour tes réponses
En fait j'ai pas trouvé grand chose sur les requêtes paramétrées vu que je l'ai connais pas j'essaye de chercher des tuto... mais bon j'ai fait quand même quelques chose, en suivant ce lien http://www.laboiteaprog.com/article-34-1-delphi_requete_parametree mais mon code ne marche pas hélas
alors j'ai mis mais composant ADOConnexion1, ADOQuery1 puis dans la propriété SQL de ce dernier composant j'ai mis ce code
quand je mis la propriété active à true j'ai le message d'erreur:
Objet parameter défini de manière incorrect des informations incohérentes ou incomplète ont été fournies
puis dans la procédure Button1Click j'ai mis ce code:
j'ai les messages d'erreur: undeclared identifier ParamByName
undeclared identifier ExecQuery
Merciiiiiii énormément
Merci beaucoup pour tes réponses
En fait j'ai pas trouvé grand chose sur les requêtes paramétrées vu que je l'ai connais pas j'essaye de chercher des tuto... mais bon j'ai fait quand même quelques chose, en suivant ce lien http://www.laboiteaprog.com/article-34-1-delphi_requete_parametree mais mon code ne marche pas hélas
alors j'ai mis mais composant ADOConnexion1, ADOQuery1 puis dans la propriété SQL de ce dernier composant j'ai mis ce code
select * from etudiant where code = :code
quand je mis la propriété active à true j'ai le message d'erreur:
Objet parameter défini de manière incorrect des informations incohérentes ou incomplète ont été fournies
puis dans la procédure Button1Click j'ai mis ce code:
ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from etudiant where code = :code'); ADOQuery1.ParamByName('code').AsString := Edit1.Text; ADOQuery1.ExecQuery;
j'ai les messages d'erreur: undeclared identifier ParamByName
undeclared identifier ExecQuery
Merciiiiiii énormément
william7007
Messages postés
335
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2010
46
24 févr. 2009 à 19:49
24 févr. 2009 à 19:49
Slt
je pense moi qu'il te manque un tout petit truc '+' et un espace avant le AND et après le LIKE
ADOQuery1.SQL.Add('select * from etudiant where nom like'+QuotedStr(edit2.Text) +
' and prénom like'+QuotedStr(edit3.Text) );
je pense moi qu'il te manque un tout petit truc '+' et un espace avant le AND et après le LIKE
ADOQuery1.SQL.Add('select * from etudiant where nom like'+QuotedStr(edit2.Text) +
' and prénom like'+QuotedStr(edit3.Text) );
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Non, dans les propriétés SQL de ton ADOQuery tu laisse select * from etudiant (si ta table s'appelle bien etudiant).
Dans la procedure de ton Button1Click, supprime ta ligne ADOQuery1.Close, car tu demande a fermer ta connection... Tu ne peut donc pas lancer de recherche sur une base dont tu n'as plus l'accès !
Sinon le code que je t'avais donné ne devrait pas poser de problemes.
Bonne prog ;)
Non, dans les propriétés SQL de ton ADOQuery tu laisse select * from etudiant (si ta table s'appelle bien etudiant).
Dans la procedure de ton Button1Click, supprime ta ligne ADOQuery1.Close, car tu demande a fermer ta connection... Tu ne peut donc pas lancer de recherche sur une base dont tu n'as plus l'accès !
Sinon le code que je t'avais donné ne devrait pas poser de problemes.
Bonne prog ;)
Salut,
Mais oui bien sûr ton code marche très bien en fait j'essayais de le faire en requête paramétrée mais bon, du moment que ça marche pas j'utiliserai toujours ton code qui est plus facile!!!
Une dernière STP je sais je t'ai trop embêté.... vraiment désolé
Pour faire ma recherche en fonction du nom et du prénom j'ai fais comme ça:
le message d'erreur est : Missing operator or semicolon
Merciii beaucoup
Mais oui bien sûr ton code marche très bien en fait j'essayais de le faire en requête paramétrée mais bon, du moment que ça marche pas j'utiliserai toujours ton code qui est plus facile!!!
Une dernière STP je sais je t'ai trop embêté.... vraiment désolé
Pour faire ma recherche en fonction du nom et du prénom j'ai fais comme ça:
ADOQuery1.SQL.Add('select * from etudiant where nom like'+QuotedStr(edit2.Text) 'and prénom like'+QuotedStr(edit3.Text) );
le message d'erreur est : Missing operator or semicolon
Merciii beaucoup
oui, il ne faut pas oublier le +
Sinion pour l'espace je ne pense pas qu'il soit obligatoire, mais ca fait plus aéré pour la lisibilité ;)
Sinion pour l'espace je ne pense pas qu'il soit obligatoire, mais ca fait plus aéré pour la lisibilité ;)
select * from etudiant where code = :code
puis dans la procédure Button1Click vous devez mettre ça
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from etudiant where code = :code');
ADOQuery1.ParamByName(':code').AsString := Edit1.Text;
ADOQuery1.ExecQuery;
l'asstuce c'est de ne pas oublier d'ajouter les deux point avant le nom de parametre;
dans: ADOQuery1.ParamByName(':code').AsString := Edit1.Text;
puis dans la procédure Button1Click vous devez mettre ça
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from etudiant where code = :code');
ADOQuery1.ParamByName(':code').AsString := Edit1.Text;
ADOQuery1.ExecQuery;
l'asstuce c'est de ne pas oublier d'ajouter les deux point avant le nom de parametre;
dans: ADOQuery1.ParamByName(':code').AsString := Edit1.Text;
23 févr. 2009 à 16:42
Merci je vais essayer ton code mais comment t'as su que je travaille avec les composants ADO, c'est vrai que le SGBD que j'utilise est ACCESS!!!
Alors d'après ce que j'ai compris je dois mettre quelque code SQL dans la propriété SQL de ADOQuery1 pour l'activer puis la procédure du bouton va effacer ce code pour exécuter la recherche c'est ça?
j'ai d'autres questions stp:
ça sert à quoi "+QuotedStr"
Si le code est de type numérique je mettrai = à la place de like?
et comment sera la procédure si je veux faire la recherche en fonction du nom et du prénom?
Merci beaucoup