Bonjour tout le monde !
Voilà j'ai un GROS problème avec le composant ADO de Delphi 6. (BDD MySQL v5.1.33)
Mon 1er problème que j'ai réussi à contourner :
Lorsque j'effectue cette requête :
- Lorsque j'effectue un FieldByName('CodeClient').AsInteger, Delphi me retourne 1 au lieu de -1 lorsque le champ CodeClient est null.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT COALESCE(CodeClient, -1) CodeClient FROM PLANNING WHERE CodePersonnel = :CodePersonnel
J'ai essayé en mettant COALESCE(CodeClient, -9) CodeClient et Delphi me retourne 9 au lieu de -9. En bref, il retourne la valeur absolue.
=> Pourquoi ? (J'ai contourner ce problème en mettant COALESCE(CodeClient, 0) CodeClient et en modifiant mon code Delphi pour qu'il n'y ai jamais de CodeClient à 0.
Mon 2ème problème, beaucoup plus ennuyeux :
Lorsque j'effectue ceci :
- Delphi m'affiche eof alors que j'ai bien un enregistrement en base. D'ailleurs si je ne fais pas de restriction sur une date mais sur un entier ou une chaine. Ma requete fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 queRech:= TADOQuery.Create(nil); queRech.Connection := ADOConnection; try DateTmp:= StrToDateTime('08/04/2009 10:45:00'); with queRech do begin Close; SQL.Clear; SQL.Add('SELECT CodePersonnel'); SQL.Add(' FROM PLANNINGS'); SQL.Add(' WHERE DATE_FORMAT(DateHeure, ''%d/%m/%Y %H:%i:%s'') = DATE_FORMAT(:LaDateHeure, ''%d/%m/%Y %H:%i:%s'')'); Parameters.ParamByName('LaDateHeure').DataType:= ftDateTime; Parameters.ParamByName('LaDateHeure').Value:= DateTmp; Open; if not EOF then showmessage('not eof') else showmessage('eof'); end; finally FreeAndNil(queRech); end;
=> Que me conseillez-vous ? Je m'en peux plus, je craque
- Est-ce que le composant ADO de delphi aurait des problème avec la dernière version de MySQL ?
- Est-ce que le composant possède des bug connus ?
- Y a t-il une mise à jour à effectuer ? (J'ai mis delphi à jour avec l'update 2)
Partager