Autor Beitrag
Morpheus1572
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Mi 17.09.08 14:35 
moin,

wenn ich diesen Query starte, bekomme ich als Antwort nicht den inhalt vom feld des 50sten ID's sondern vom ersten.

Kann mir jemand sagen why?
ausblenden Delphi-Quelltext
1:
ADOQuery1.SQL.Text:='SELECT Tour FROM Tour WHERE TID = 50';					


und JA, es existieren mehr als 50 einträge. ;-)
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mi 17.09.08 14:44 
Ich würd ja eher mit keiner Antwort rechnen. Ist TID eine Zahl auf Tabellenebene? Gibt es die ID vielleicht doppelt?

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
Morpheus1572 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Mi 17.09.08 14:47 
DB = ACCESS
TABName : Tour
Feld ID : AutoIncrement
Feld Tour: Text

brauchst du noch mehr infos?

Warum keine Antwort? ich bekomme aber eine (nur die Falsche)...

Gruß Morph.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 17.09.08 14:53 
user profile iconMorpheus1572 hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
ADOQuery1.SQL.Text:='SELECT Tour FROM Tour WHERE TID = 50';					
user profile iconMorpheus1572 hat folgendes geschrieben:
DB = ACCESS
TABName : Tour
Feld ID : AutoIncrement
Feld Tour: Text
Wie heißt das Feld denn nun?
Morpheus1572 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Mi 17.09.08 14:57 
Sorry, Fehlerteufel. Natürlich heißt es TID!
MDX
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 595
Erhaltene Danke: 4

Windows 8.1, Linux Debian 8, Android Lollipop
Delphi, PHP, Java (Android)
BeitragVerfasst: Mi 17.09.08 15:20 
Ist ganz einfach, du musst eine LIKE abfrage nehemen:
Ausserdem, kannst du nicht TID abfragen, wenn du es gar nicht auswählst, richtig ist also so:

ausblenden Delphi-Quelltext
1:
ADOQuery1.SQL.Text:='SELECT TID, Tour FROM Tour WHERE TID LIKE ''50'' '; // Muss "''" sein, damit eines ausgegeben wird!					
Morpheus1572 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Mi 17.09.08 15:35 
Hmmm... okay habe ich gemacht.

und wie kann ich mir nun das ergebnis zum beispiel in einem edit ansehen?

ich dachte das ginge so:

ausblenden Delphi-Quelltext
1:
2:
      ds := DataSource1.DataSet;
      Edit1.Text := ds['Tour'];


wenn ich das aber mache, bekomme ich immer noch die Tourenangabe von TID 1!!!

mir scheint dass da was nicht funzt mit meinem Query...
baka0815
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: Mi 17.09.08 16:29 
user profile iconMDX hat folgendes geschrieben:
Ist ganz einfach, du musst eine LIKE abfrage nehemen

Da bin ich jetzt aber mal auf 'ne Begründung gespannt.
Morpheus1572 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Mi 17.09.08 16:41 
ne muss ich nicht.

funzt jetzt hatte noch nen schreibfehler drin. stundenlang draufgesehen und nüscht jeseeen... sorry. danke für die Hilfe.
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Do 18.09.08 07:03 
user profile iconMDX hat folgendes geschrieben:
Ist ganz einfach, du musst eine LIKE abfrage nehemen:
Ausserdem, kannst du nicht TID abfragen, wenn du es gar nicht auswählst, richtig ist also so:

ausblenden Delphi-Quelltext
1:
ADOQuery1.SQL.Text:='SELECT TID, Tour FROM Tour WHERE TID LIKE ''50'' '; // Muss "''" sein, damit eines ausgegeben wird!					


Bitte was? Natürlich kannst du über Felder filtern, die du nicht auswählen musst. Und ein Like brauchst du nur bei Textvergleichen mit Wildcards, sonst braucht man das nicht.

@Morph Wenn man sich den SQL-String ausgeben läßt und ihn einfach in eine leere Abfrage kopiert, kommt man meistens in sehr kurzer Zeit auf den Fehler ;)

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 18.09.08 10:40 
user profile iconMDX hat folgendes geschrieben:
Ist ganz einfach, du musst eine LIKE abfrage nehemen:
Ausserdem, kannst du nicht TID abfragen, wenn du es gar nicht auswählst, richtig ist also so:

ausblenden Delphi-Quelltext
1:
ADOQuery1.SQL.Text:='SELECT TID, Tour FROM Tour WHERE TID LIKE ''50'' '; // Muss "''" sein, damit eines ausgegeben wird!					

So ein Quatsch.

@Morpheus:
Deine Abfrage ist theoretisch korrekt. Du musst den Fehler woanders suchen.
baka0815
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: Do 18.09.08 12:37 
user profile iconjasocul hat folgendes geschrieben:
@Morpheus:
Deine Abfrage ist theoretisch korrekt. Du musst den Fehler woanders suchen.

Er hat das Problem doch behoben.

Warum user profile iconMDX jedoch an dieser Stelle das LIKE empfiehlt, wüsste ich auch gerne.
MDX
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 595
Erhaltene Danke: 4

Windows 8.1, Linux Debian 8, Android Lollipop
Delphi, PHP, Java (Android)
BeitragVerfasst: Fr 19.09.08 13:47 
Weil es bei mir nur mit LIKE ging, deshalb hatte ich LIKE gesagt!

Muss natürlich nicht überall so sein, aber damit geht es garantiert!
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: Fr 19.09.08 15:39 
user profile iconMDX hat folgendes geschrieben:
[...] aber damit geht es garantiert!

Vollkommener Unsinn.
baka0815
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: Fr 19.09.08 16:06 
user profile iconMDX hat folgendes geschrieben:
aber damit geht es garantiert!

Solange man keine Platzhalter wie % oder _ (bei Oracle) verwendet, ist die Verwendung von LIKE im Ergebnis identisch mit dem Gleichheitszeichen.

ausblenden SQL-Anweisung
1:
select * from tabelle where x like 'abc'					

ausblenden SQL-Anweisung
1:
select * from tabelle where x = 'abc'					


Das Ergebnis der beiden Queries ist identisch (bzw. sollte identisch sein).

LIKE macht nur sinn, wenn du wirklich mit Platzhaltern, also "so ähnlich wie", suchen willst.

ausblenden SQL-Anweisung
1:
select * from tabelle where x like '%ab_c%'					
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Fr 19.09.08 18:10 
user profile iconbaka0815 hat folgendes geschrieben:
[quote="[user]Solange man keine Platzhalter wie % oder _ (bei Oracle) verwendet, ist die Verwendung von LIKE im Ergebnis identisch mit dem Gleichheitszeichen.
Fast: Prüfung auf Gleichheit berücksichtigt, falls eingestellt, Groß/Kleinschreibung, LIKE nicht.

_________________
Na denn, dann. Bis dann, denn.