requete / violation d'accès
bonjour
je reviens avec ce probleme de violation d'accès :cry:
je vais essayre d'etre claire:
Sous SQL ceci marche bien :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| With formbddsql.ADOQuery1 Do
Begin
SQL.Clear;
SQL.Add('select count(Pin_Essai.pin_seqno) as nb');
SQL.Add(' FROM Pin INNER JOIN Pin_Essai ON Pin.pin_seqno = Pin_Essai.pin_seqno INNER JOIN Essai ON Pin_Essai.ess_seqno = Essai.ess_seqno ');
SQL.Add(' where Essai.ess_num= ('+quotedStr(formbddsql.EditEssai.text)+') and Pin.pin_num= ('+quotedStr(formbddsql.EditPin.text)+') ');
Adoquery1.open;
End;
nb := adoquery1.FieldByName('nb').AsInteger; |
et la mêem requete avec access j'ai " le projet a provoqué une classe d'exception EAccessViolation .. violation d'accès à l'adresse .. dans le module msjet40.dll ..."
puis après ça me met aussi "syntaxError missing operator"
alors j'essaye de refaire une requete équivalente que je fabrique dans access (avec son assistant graphique). je fais quasiment copier/coller du code SQL qu"elle génère.
et je la mets toute seule dans un bouton :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| procedure TFormBddSql.Button2Click(Sender: TObject);
var nb : integer;
begin
With formbddsql.ADOQuery1 Do
Begin
SQL.Clear;
SQL.Add('SELECT Count(Pin_Essai.pin_seqno) AS CountOfpin_seqno');
SQL.Add(' FROM Pin INNER JOIN (Essai INNER JOIN Pin_Essai ON');
SQL.Add(' Essai.ess_seqno = Pin_Essai.ess_seqno) ON Pin.pin_seqno = Pin_Essai.pin_seqno');
SQL.Add(' GROUP BY Pin.pin_num, Essai.ess_num');
SQL.Add(' HAVING (((Pin.pin_num)=('+quotedStr(formbddsql.EditPin.text)+'))');
SQL.Add(' AND ((Essai.ess_num)=('+quotedStr(formbddsql.EditEssai.text)+')))');
Adoquery1.open;
End;
nb := adoquery1.FieldByName('CountOfpin_seqno').AsInteger;
showmessage(inttostr(nb));
end; |
et là j'ai tjours cette erreur de violation (mais elle marche sous SQL SERver)
par contre après le résultat du showmessage est juste.
je débute alors c'est peut-etre une erreur toute bete ?? mais je vois pas ...
si qqun avait la moindre piste :)