Einzelnen Beitrag anzeigen

Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#1

Datenbankabfrage mit LIKE - Syntaxfehler

  Alt 25. Feb 2005, 07:55
Datenbank: Access • Zugriff über: ADO
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;
Susanne
  Mit Zitat antworten Zitat