AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL: select * from ... = "integer-wert"
Thema durchsuchen
Ansicht
Themen-Optionen

SQL: select * from ... = "integer-wert"

Ein Thema von markon · begonnen am 31. Okt 2003 · letzter Beitrag vom 3. Nov 2003
Antwort Antwort
Seite 1 von 2  1 2      
markon

Registriert seit: 12. Sep 2003
229 Beiträge
 
#1

SQL: select * from ... = "integer-wert"

  Alt 31. Okt 2003, 12:54
hallo.
und zwar, in meiner datenbank ist eine spalte vom typ string, auf die ich folgendermaßen zugreifen kann:
adoquery1.sql.text := 'select * from tabelle1 where name like "%'+ed_such.text+'%"' ed_such.text ist ein normales edit-feld.

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:
adoquery1.sql.text := 'select * from tabelle1 where tordiff like :such'; such ist eine variable vom typ integer.

danke für hilfe.
marcus
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#2

Re: SQL: select * from ... = "integer-wert"

  Alt 31. Okt 2003, 13:27
Hallo,

like kannst du nur in Verbindung mit Varchars verwenden.
Manche DB´s lassen jedoch folgende Anweisung zu:adoquery1.sql.text := 'select * from tabelle1 where tordiff like ''%:such%''' Oder du lässt es einfach so wie oben mit dem Varchar.
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#3

Re: SQL: select * from ... = "integer-wert"

  Alt 31. Okt 2003, 13:40
Integer-Werte kann man NICHT mit "LIKE" vergleichen, sondern nur mit den Vergleichsoperatoren "=", ">", "<", ">=", "<=" und "<>". Die Lösung lautet also:adoquery1.sql.text := 'select * from tabelle1 where tordiff like :such'; 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.

Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#4

Re: SQL: select * from ... = "integer-wert"

  Alt 31. Okt 2003, 13:46
@Alfons_G: dann solls ja wohl so heissen:adoquery1.sql.text := 'select * from tabelle1 where tordiff = :such';
z.B. in Oracle würde das aber auch so funktionieren:adoquery1.sql.text := 'select * from tabelle1 where To_Char(tordiff) like ''%:such%'''; Wobei das To_Char auch weggelassen werden kann.
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#5

Re: SQL: select * from ... = "integer-wert"

  Alt 31. Okt 2003, 21:14
Upps, das kommt davon, wenn man im Büro schnell die Antwort tippt und dabei den Code aus dem vorherigen Porting reinkopiert

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.

Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat
markon

Registriert seit: 12. Sep 2003
229 Beiträge
 
#6

Re: SQL: select * from ... = "integer-wert"

  Alt 1. Nov 2003, 17:06
habt dank jungs werde ich dann gleich mal ausprobieren
adoquery1.sql.text := 'select * from tabelle1 where tordiff = :such';
  Mit Zitat antworten Zitat
markon

Registriert seit: 12. Sep 2003
229 Beiträge
 
#7

Re: SQL: select * from ... = "integer-wert"

  Alt 3. Nov 2003, 08:45
so.. nun hab ich das mal ausprobiert:
adoquery1.sql.text := 'select * from tabelle1 where tordiff = :such'; aber leider liefert diese abfrage kein ergebniss zurück. fehlermeldung kommt auch keine)
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?
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#8

Re: SQL: select * from ... = "integer-wert"

  Alt 3. Nov 2003, 09:47
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.
  Mit Zitat antworten Zitat
markon

Registriert seit: 12. Sep 2003
229 Beiträge
 
#9

Re: SQL: select * from ... = "integer-wert"

  Alt 3. Nov 2003, 09:59
hier der code:
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; // oder muss adoquery1.ExecSQL; hier stehen?

  // adoquery1.Active;

end;
wie gesagt, es kommt keine fehlermeldung, aber auch kein ergebnis
die spalte TorDiff ist wie gesagt "integer".
schreibe ich
 adoquery1.sql.Add ('select * from tabelle1 where TorDiff = 9'); dann funzts...
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#10

Re: SQL: select * from ... = "integer-wert"

  Alt 3. Nov 2003, 10:14
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;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:15 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