ADOQUERY ne renvoie rien ....

guy jeuniaux Messages postés 35 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 27 avril 2010 - 3 mars 2010 à 16:54
guy jeuniaux Messages postés 35 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 27 avril 2010 - 27 avril 2010 à 18:19
Bonjour,
J'ai beau chercher dans les forums et autres messages et je ne trouve pas.
Voici mon problème qui j'en suis sûr trouvera une solution.
J'utilise D5 et une base ACCESS.
Sur ma "Form" un ADOQUERY, DATASOURCE et DBGRID le tout relié.
Au FORMShow :
ADOQueryrec_articles.SQL.Text:='select code AS [Code Article], description AS [Description], quantite AS [Quantité dispo], PA AS [Prix Unitaire],T_loc AS [Tarif Location] from ARTICLES where numentreprise='+numentr;
ADOQueryrec_articles.Open;
Comme ma table est vide(normal je crée) mon DBGRID est vide (normal)
Lorsque je veux rajouter un article, je commence par "fermer" mon ADOQUery et c'est là ou cela se corse : message d'erreur BOF ou EOF ....
ADOQueryrec_articles.Close;
code:=edit1.Text;
description:=edit2.Text;
quantite:=edit3.Text;
pu:=edit4.Text;
t_loc:=edit5.Text;
ADOQueryMAJ_ARTICLES.SQL.Clear;
ADOQueryMAJ_ARTICLES.SQL.text:='insert into ARTICLES (code,description,quantite,Pa,T_loc,numentreprise) values ("'+code+'","'+description+'","'+quantite+'","'+pu+'","'+t_loc+'",'+numentr+')';
ADOQueryMAJ_ARTICLES.ExecSQL ;

ADOQueryrec_articles.open;
A noter cette méthode fonctionne parfaitement si ma table contient déjà des lignes.
Comment faire pour éviter cela ?
En fait je suppose que je ne peux pas fermer si la requète ne renvoie rien.
Est ce qu'il est possible de "tester" l'état du query ?
Merci d'avance pour vos idées


guy

6 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
17 mars 2010 à 17:16
Bonjour,

commence par utiliser les balises pour placer ton code.
ensuite,mets un point d'arrêt et précise la ligne sur la quelle le message se déclenche.


cantador
0
guy jeuniaux Messages postés 35 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 27 avril 2010
18 mars 2010 à 09:41
Bonjour Cantador,
Effectivement à la relecture c'est un peu confus.
J'ai reposté ma question différement mais en fait c'est simple à résumer.
Je fait un select avec ADOQUERY.Open pour afficher le résultat dans le DBGrid.
Le select ne renvoie rien.
Je fait un insert qui fonctionne.
Je fait un ADOQUERY.Close suivit d'un ADOQUERY.Open pour rafraichir le DBGrid et cela plante sur le ADOQUERY.Close.
Voila, j'espère que c'est plus clair.
Merci de t'être penché sur mon problème


guy
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
19 mars 2010 à 12:35
bonjour,

Pour ton souci, il faut mieux d'abord bien vérifier ce qui se passe..
je te propose de faire une requête préparée :

With MonQuery.SQL do
begin
MonQuery.Close;
Clear;
Add('Select * From MaTable etc.. etc.. en décomposant ');
Add('la suite ');
Add('la suite ');
MonQuery.Open;
end;
MonQuery.Close; et ici mettre un point d'arrêt


et inutile de créer d'autres posts qui vont ajouter de la confusion...

cantador
0
guy jeuniaux Messages postés 35 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 27 avril 2010
23 mars 2010 à 19:04
Bonjour
Sur mon form : ADOCOnnection,ADOQUERY,DATASET,DBGRID
le tout relié.(Ma table ARTICLES est vide)
Voici mon code tout simple :
=======================================
procedure TForm1.Button1Click(Sender: TObject);
begin
with adoquery1.SQL do
begin
adoquery1.Close;
Clear;
add('select * from ARTICLES where numentreprise=1');
adoquery1.Open;
end;
adoquery1.Close; --> Point d'arret
end;
=======================================
Lorsque je clique sur le bouton je tombe sur le point d'arret, si je continue j'obtiens le fameux message d'erreur.
Par contre n'étant pas expert, je peux voir quoi avec le point d'arret.
Merci pour l'aide.

guy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
14 avril 2010 à 11:52
bonjour,
je peux voir quoi avec le point d'arret
une mine d'informations...comme par exemple voir si ta requête est bien enregistrée..
il y a tellement de causes possibles (un blanc introduit pas inadvertance et paf..)

Refait tous tes composants par précaution
(une propriété a peut-être été modifiée..)

je ne peux pas tester, je n'ai pas de micro..

cantador
0
guy jeuniaux Messages postés 35 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 27 avril 2010
27 avril 2010 à 18:19
Bonjour,
La requète fonctionne parfaitement lorsqu'il y a ne fut ce qu'une ligne dans la table.
C'est lorsque la table est vide que cela ne renvoie rien et que cela pose problème.
Merci pour ton aide


guy
0