Autor Beitrag
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Mo 09.12.13 09:20 
Hallo, ich habe versucht, statt des folgenden Konstruktes einer SQL-Abfrage:

Select * from Tabelle where (Feld = 'a') or (Feld = 'd') or (Feld = 'k')

die folgende Abfrage zu verwenden:

Select * from Tabelle where (Feld IN ('a','d','k'))

Leider gibt mir der Compiler einen Fehler aus. Das Komische ist, dass die gleiche Abfrage problemlos, mit der gleichen Datenbank, im Datenbank-Explorer funktioniert. Nur in einer Anwendung immer der Fehler ("Merkmal nicht verfügbar"), dass die Syntax nicht in Ordnung sei. Ich habe auch schon den SQL-Text des Datenbank-Explorers kopiert. Zwecklos.

Die Datenbank ist eine ACCESS-Datenbank über ODBC, Delphi 5, die Query hat die Eigenschaft Requestlive = TRUE, das Feld ist ein String mit einem Zeichen. Bitte jetzt keine Diskussion über Unsinn von ODBC. Ich kann die Datenbank selbst in 64-bit-Umgebung nutzen, also warum sollte ich das - außer vielleicht aus Performance-Gründen - ändern?

Habe es mal mit Requestlive=FALSE versucht. Dann kann ich die Tabelle ohne Fehler öffnen. Aber das nützt mir wenig, weil ich dann ja die Tabellendaten nicht bearbeiten kann. Warum ergibt die erste Syntax ein bearbeitbares Ergebnis und die zweite (mit "IN") nicht? Habt Ihr eine Idee?

Danke schon mal im Voraus für die Anmerkungen.

Ansonsten einen schönen Tag noch

Gunther

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19273
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 09.12.13 10:09 
Dann unterstützt der Treiber die Kombination RequestLive + IN nicht. :nixweiss:

Der Unterschied zum Datenbank-Explorer ist ja, dass der RequestLive nicht braucht.

Für diesen Beitrag haben gedankt: Tranx
Tranx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Mo 09.12.13 10:55 
Das mit der Unterstützung von Requestlive habe ich mir auch schon fast gedacht. Schade. Aber zum Glück sind die Abfragen nicht ganz so kompliziert, so dass man mit dem OR-Konstrukt einigermaßen leben kann.

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.
jaevencooler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 166
Erhaltene Danke: 6

MS-DOS,Win32, Win95, Win 98, Me,XP, Linux, NT4.0, NT 2000-2008, Vista, Windows 7
Turbo Pascal,D1 Enter,D2 Enter,D3 Enter,D5 Enter, Kylix, D2007, PL/SQL, MS/SQL, Delphi 2010, Delphi XE
BeitragVerfasst: Do 12.12.13 16:08 
Moin,

wie übergibst Du denn das SQL an die DB, könnte es sein
das Du hier vergessen hast a,d,k als QuotedStr zu übergeben.....


beste Grüße
Michael

_________________
Wissen ist Macht, nichts wissen macht auch nichts...