![]() |
SQL: select * from ... = "integer-wert"
hallo.
und zwar, in meiner datenbank ist eine spalte vom typ string, auf die ich folgendermaßen zugreifen kann:
Delphi-Quellcode:
ed_such.text ist ein normales edit-feld.
adoquery1.sql.text := 'select * from tabelle1 where name like "%'+ed_such.text+'%"'
der rest der datenbank ist jedoch vom typ integer. nun mein problem. wie muss der sql-befehl für einen integer-wert da aussehen? habe folgendes probiert, funzt aber nicht:
Delphi-Quellcode:
such ist eine variable vom typ integer.
adoquery1.sql.text := 'select * from tabelle1 where tordiff like :such';
danke für hilfe. marcus |
Re: SQL: select * from ... = "integer-wert"
Hallo,
like kannst du nur in Verbindung mit Varchars verwenden. Manche DB´s lassen jedoch folgende Anweisung zu:
SQL-Code:
Oder du lässt es einfach so wie oben mit dem Varchar.
adoquery1.sql.text := 'select * from tabelle1 where tordiff like ''%:such%'''
|
Re: SQL: select * from ... = "integer-wert"
Integer-Werte kann man NICHT mit "LIKE" vergleichen, sondern nur mit den Vergleichsoperatoren "=", ">", "<", ">=", "<=" und "<>". Die Lösung lautet also:
Delphi-Quellcode:
Damit findest Du alle Datensätze, welche die gleiche Tordifferenz, wie eingegeben, haben. Genauso kannst Du nach größeren oder kleineren Werten suchen - du musst lediglich das Gleichheitszeichen durch den entsprechenden Operator ersetzen.
adoquery1.sql.text := 'select * from tabelle1 where tordiff like :such';
:coder: |
Re: SQL: select * from ... = "integer-wert"
@Alfons_G: dann solls ja wohl so heissen:
Delphi-Quellcode:
:lol:
adoquery1.sql.text := 'select * from tabelle1 where tordiff = :such';
z.B. in Oracle würde das aber auch so funktionieren:
Delphi-Quellcode:
Wobei das To_Char auch weggelassen werden kann.
adoquery1.sql.text := 'select * from tabelle1 where To_Char(tordiff) like ''%:such%''';
|
Re: SQL: select * from ... = "integer-wert"
Upps, das kommt davon, wenn man im Büro schnell die Antwort tippt und dabei den Code aus dem vorherigen Porting reinkopiert :oops:
Das to_char in Oracle kenne ich nur zu gut. Allerdings wird man in diesem Fall, wo es anscheinend um eine Liga-Verwaltung und die Suche nach einer Tordifferenz geht, eher nach einem Zahlenwert, als nach einem Teilstring suchen. :coder: |
Re: SQL: select * from ... = "integer-wert"
habt dank jungs :thuimb: werde ich dann gleich mal ausprobieren
Delphi-Quellcode:
adoquery1.sql.text := 'select * from tabelle1 where tordiff = :such';
|
Re: SQL: select * from ... = "integer-wert"
so.. nun hab ich das mal ausprobiert:
Delphi-Quellcode:
aber leider liefert diese abfrage kein ergebniss zurück. fehlermeldung kommt auch keine)
adoquery1.sql.text := 'select * from tabelle1 where tordiff = :such';
wenn ich den "RecordCount" ausgebe so zeigt dieser immer 0 an. weiß keinen rat mehr, da "such" als integer deklariert ist. wo ist der haken? |
Re: SQL: select * from ... = "integer-wert"
Hallo markon,
das SQL-Select sieht eigentlich korrekt aus. Hast Du es schon mit mehreren Werten für tordiff versucht. Falls Du gar nicht weiterkommst, dann poste doch mal das Stück Code. |
Re: SQL: select * from ... = "integer-wert"
hier der code:
Delphi-Quellcode:
wie gesagt, es kommt keine fehlermeldung, aber auch kein ergebnis :wall:
procedure Tfrm_spiele.bt_suchClick(Sender: TObject);
var such :integer; begin adoquery1.Close; adoquery1.sql.Clear; such := strtoint(ed_such.text); adoquery1.sql.Add ('select * from tabelle1 where TorDiff = :such'); adoquery1.Open; // oder muss adoquery1.ExecSQL; hier stehen? // adoquery1.Active; end; die spalte TorDiff ist wie gesagt "integer". schreibe ich
Delphi-Quellcode:
dann funzts...
adoquery1.sql.Add ('select * from tabelle1 where TorDiff = 9');
|
Re: SQL: select * from ... = "integer-wert"
Versuche es mal so:
Delphi-Quellcode:
procedure Tfrm_spiele.bt_suchClick(Sender: TObject);
var such :integer; begin adoquery1.Close; adoquery1.sql.Clear; such := strtoint(ed_such.text); adoquery1.sql.Add ('select * from tabelle1 where TorDiff = ' + such); adoquery1.Open; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz