Habe ein Problem mit dem Zugriff auf eine Datenbank.
Ich rufe in meinem Programm diese Funktion auf und übergebe ihr verschiedene Informationen, die für die Suche in der Datenbank benötigt werden. Beim ersten Aufruf funktioniert auch alles hervorragend, aber beim zweiten kommt die Fehlermeldung:
Delphi-Quellcode:
Syntaxfehler. in Abfrageausdruck 'ssbuject LIKE '%123456%'
Select LID, LFLOW FROM tblxx where sSubject LIKE '%223344%'
Und das verstehe ich nicht, es kommt alles richtig in der Funktion an, also Barcode=223344 und nicht 123456. Der
SQL-String hat auch den richtigen Wert (223344). Also warum?
Delphi-Quellcode:
procedure InfosAusDB(Barcode: String; DOCID: Integer; LogFile: String; Datum: String);
var
sBarCode, ArchivDate : String;
iDocID, LID : Integer;
ClassID, LogFileN : String;
SQLQuery : String;
begin
sBarCode:= Barcode;
iDocID:= DOCID;
LogFileN:= LogFile;
ArchivDate:= Datum;
SQLQuery:='Select LID, LFLOW from TBLxx where sSubject LIKE '+QuotedStr('%'+ sBarcode +'%');
Form1.ADOQuery1.Close;
Form1.ADOQuery1.SQL.Add(SQLQuery);
Form1.ADOQuery1.Open;
if Form1.ADOQuery1.RecordCount = 0 then
begin
Form1.ADOQuery2.Close;
Form1.ADOQuery2.SQL.Add(SQLQuery);
Form1.ADOQuery2.Open;
if Form1.ADOQuery2.RecordCount = 0 then
oLogFile.AppendString(' LogEintrag ', LogFileN)
else
begin
LID:= Form1.ADOQuery2.FieldValues['LID'];
ClassID:= Form1.ADOQuery2.FieldValues['LFLOW'];
if LID > 278 then
oLogFile.AppendString(' LogEintrag ',LogFileN);
end;
Form1.ADOQuery2.Close;
end
else
begin
LID:= Form1.ADOQuery1.FieldValues['LID'];
ClassID:= Form1.ADOQuery1.FieldValues['LFLOW'];
if LID > 278 then
oLogFile.AppendString(' LogEintrag ',LogFileN);
end;
Form1.ADOQuery1.Close;
SQLQuery:= '';
end;