Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Where Abfrage funktioniert nicht (https://www.delphipraxis.net/167858-sql-where-abfrage-funktioniert-nicht.html)

willyxv 22. Apr 2012 15:45

Datenbank: Postgre • Version: 9.0 • Zugriff über: Zeos

SQL Where Abfrage funktioniert nicht
 
Hallo,

ich versuch nun schon seid Stunden eine Datenbankabfrage zu realisieren und finde den fehler nicht. Folgenden Code verwende ich:

Delphi-Quellcode:
   a := 'hf';
   
   sqltext := 'Select * From "' + 'testdb' + '" Where (typ = ' + a + ');';
   sql2.SQL.Text := sqltext;
   sql2.Open;
   sql2.First;
   
   for i := 1 to sql2.RecordCount do
     begin
     memo1.Lines.Add(sql2.FieldByName('wert').AsString);
     sql2.Next;
   end;
Nun erhalte ich immer den fehler das die Spalte hf nicht exsitiert. ich will aber in der spalte typ nur die zeilen in welchen hf steht haben.

Ich hab schon stunden lang gegoogelt und alles mögliche versucht aber es tut nicht.

MfG Willy

P.S.: Wenn ich die Where abfrage weg lass tut es, dann halt mit allen Zeilen.

Uwe Raabe 22. Apr 2012 15:54

AW: SQL Where Abfrage funktioniert nicht
 
Du solltest um das "a" noch Quotes setzen.

himitsu 22. Apr 2012 15:55

AW: SQL Where Abfrage funktioniert nicht
 
Tipp: Zusammengesetzt kommt das raus und nun rate mal, was du wirklich dort angibst.
Code:
Select * From "testdb" Where (typ = hf);
[edit]
zu langsam :cry:

DeddyH 22. Apr 2012 15:56

AW: SQL Where Abfrage funktioniert nicht
 
Mit Parametern wäre das nicht passiert.

willyxv 22. Apr 2012 16:50

AW: SQL Where Abfrage funktioniert nicht
 
Delphi-Quellcode:
 sqltext := 'Select * From "' + 'testdb' + '" Where (typ = "' + a + '");';
sql2.SQL.Text := sqltext;
sql2.Open;
hier kommt der selbe Fehler wie ohne die Quotes.


Delphi-Quellcode:
sqltext := 'Select * From "' + 'testdb' + '" Where (typ = :parm);';
sql2.ParamByName('parm').AsString := a;  
sql2.SQL.Text := sqltext;
sql2.Open;
Hier kommt der Fehler Parameter 'parm' nich gefunden.

MfG Willy

P.S.: Fehler gefunden der Parameter muss weiter unten stehn.
Delphi-Quellcode:
sqltext := 'Select * From "' + 'testdb' + '" Where (typ = :parm);';
sql2.SQL.Text := sqltext;
[B]sql2.ParamByName('parm').AsString := a;[/B]
sql2.Open;

himitsu 22. Apr 2012 16:54

AW: SQL Where Abfrage funktioniert nicht
 
Es kommt eben darauf an, wie man was quotet, :zwinker:
denn jedes Quote hat seine Bedeutung.

Delphi-Quellcode:
sqltext := 'Select * From "' + 'testdb' + '" Where (typ = ''' + a + ''');';


" oder nichts = Name (Feld, Tabelle und Co.)
' = Text/String
´ oder war's ` = auch ein Feldname?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:32 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