AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Was stimmt nicht? --> SQL Abfrage
Thema durchsuchen
Ansicht
Themen-Optionen

Was stimmt nicht? --> SQL Abfrage

Ein Thema von Plague · begonnen am 14. Mär 2004 · letzter Beitrag vom 14. Mär 2004
Antwort Antwort
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#1

Was stimmt nicht? --> SQL Abfrage

  Alt 14. Mär 2004, 21:31
Hallo,

bei der Abfrage einer MySQL Datenbank erscheint folgender Fehler:
SQL Error: You have an error in your SQL syntax near " at line 1.

Was mache ich falsch?
Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
LI: TListItem;
q :string;
begin
q:= '%' + Edit1.Text + '%';
with ZReadOnlyQuery1 do
  begin
    close;
    SQL.Clear;
    SQL.Add ('SELECT * FROM Adresse WHERE');
    SQL.Add ('ID LIKE :ID OR ');
    SQL.Add ('Name LIKE :Name OR ');
    SQL.Add ('Vorname LIKE :Vorname OR ');
    SQL.Add ('Adresse LIKE :Adresse OR ');
    SQL.Add ('PLZ LIKE :PLZ OR ');
    SQL.Add ('Stadt LIKE :Stadt OR ');
    ParamByName ('ID').AsString := q;
    ParamByName ('Name').AsString := q;
    ParamByName ('Vorname').AsString := q;
    ParamByName ('Adresse').AsString := q;
    ParamByName ('PLZ').AsString := q;
    ParamByName ('Stadt').AsString := q;
    open;
    ListView1.Items.BeginUpdate;
    Listview1.Items.Clear;
    while not (EOF) do
    begin
      LI := Listview1.Items.Add;
      LI.ImageIndex := 0;
      LI.Caption := (FieldByName('ID').AsString);
      LI.SubItems.Add(FieldByName('Name').AsString);
      LI.SubItems.Add(FieldByName('Vorname').AsString);
      LI.SubItems.Add(FieldByName('Adresse').AsString);
      LI.SubItems.Add(FieldByName('PLZ').AsString);
      LI.SubItems.Add(FieldByName('Stadt').AsString);
      Next;
    end;
    ListView1.Items.EndUpdate;
    close;
  end;
end;
Danke
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: Was stimmt nicht? --> SQL Abfrage

  Alt 14. Mär 2004, 21:43
Schnellschuss: versuch mal zwischen dem letzten Q.SQL.Add und dem ersten Q.SQL.ParamByName ein Q.Prepare einzufügen.
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: Was stimmt nicht? --> SQL Abfrage

  Alt 14. Mär 2004, 21:46
@Leuselator -> Augen auf

@Plaque nimm das letzte "OR" weg -> danach kommt doch kein Vergleich mehr!
  Mit Zitat antworten Zitat
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#4

Re: Was stimmt nicht? --> SQL Abfrage

  Alt 14. Mär 2004, 21:47
Hat nichts gebracht.
Das verwunderliche ist auch, dass es mit dem Code in einem anderen Programm funktioniert. Was kann es sein...???
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Was stimmt nicht? --> SQL Abfrage

  Alt 14. Mär 2004, 21:48
mit dem "OR" am Ende? Das geht nicht...
  Mit Zitat antworten Zitat
DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#6

Re: Was stimmt nicht? --> SQL Abfrage

  Alt 14. Mär 2004, 21:51
könnte mir vorstellen dass du die echten strings so angeben musst:

ParamByName ('Name').AsString := quotedstr(q);
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: Was stimmt nicht? --> SQL Abfrage

  Alt 14. Mär 2004, 21:56
Zitat von DelphiDeveloper:
...ParamByName ('Name').AsString := quotedstr(q);
Wird nicht klappen. Die "Parameter" sind SQL-Variablen, die nicht in den String des Statements gebastelt werden, sondern wirkliche Variablen im Statement sind.
Delphi-Quellcode:
  ...
  q:= 'Hallo';
  ParamByName ('Name').AsString := quotedstr(q);
... ergibt dann ...
 #39 + 'Hallo' + #39 ... in der Variable.
  Mit Zitat antworten Zitat
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#8

Re: Was stimmt nicht? --> SQL Abfrage

  Alt 14. Mär 2004, 22:02
Ich bin soooo dumm...
Doch, die Variante mit dem OR wegmachen, hat gestimmt...
Es klappt jetzt...

Danke
Thomas
  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 10:25 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