AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbankabfrage mit LIKE - Syntaxfehler
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbankabfrage mit LIKE - Syntaxfehler

Ein Thema von Susanne · begonnen am 25. Feb 2005 · letzter Beitrag vom 25. Feb 2005
Antwort Antwort
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
xman
(Gast)

n/a Beiträge
 
#2

Re: Datenbankabfrage mit LIKE - Syntaxfehler

  Alt 25. Feb 2005, 07:58
in access * anstatt % benutzen
  Mit Zitat antworten Zitat
Susanne

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

Re: Datenbankabfrage mit LIKE - Syntaxfehler

  Alt 25. Feb 2005, 07:59
nein, kommt der gleiche mist

und zwar beim Aufruf Form1.ADOQuery1.Open;
Susanne
  Mit Zitat antworten Zitat
xman
(Gast)

n/a Beiträge
 
#4

Re: Datenbankabfrage mit LIKE - Syntaxfehler

  Alt 25. Feb 2005, 08:02
Select LID, LFLOW FROM tblxx where sSubject LIKE "*223344*"
so gehts definitiv
  Mit Zitat antworten Zitat
Benutzerbild von Marcel Gascoyne
Marcel Gascoyne

Registriert seit: 18. Nov 2003
Ort: Uetersen
271 Beiträge
 
Delphi 2005 Architect
 
#5

Re: Datenbankabfrage mit LIKE - Syntaxfehler

  Alt 25. Feb 2005, 08:03
Der Fehler ist ganz simpel. Du fügt Deiner Query Komponente den SQL Code zu:

Form1.ADOQuery1.SQL.Add(SQLQuery); Damit funktioniert der Aufruf ja auch. Beim nächsten Aufruf fügst Du wieder den SQL Code hinzu, nun stehen bereits zwei Anweisungen drinne. Mach es besser so:

Form1.ADOQuery1.SQL.Text := SQLQuery; Gruß,
Marcel
Marcel Gascoyne
Der Fehler sitzt immer vor der Tastatur
  Mit Zitat antworten Zitat
Susanne

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

Re: Datenbankabfrage mit LIKE - Syntaxfehler

  Alt 25. Feb 2005, 08:07
Vielen Dank, das hat mir sehr weiter geholfen. Habe es nun so gemacht, weil er mit sql.text das auch nicht so wollte, aber das hat mich dann auf diese Idee gebracht und es funktioniert. Vielen, vielen Dank.

Delphi-Quellcode:
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add(SQLQuery);
Susanne
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Datenbankabfrage mit LIKE - Syntaxfehler

  Alt 25. Feb 2005, 10:02
Dies sollte aber das gleiche sein wie Marcel schon geschrieben hat. Sollte dann also auch funktionieren.
Bei Access benötigt man aber die Anführungszeichen aber QuotedStr liefert nur die einfachen. Kann das auch die Ursache sein oder liege ich da falsch.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz