Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Thomses am 25.02.03 - 12:14:12
-
Hallo,
ich bin heute auf ein merkwürdiges Problem gestossen (zumindest für mich). ???
Hintergrund:
Ich möchte eine Access-DB via ODBC mittels AT-Funktionen abfragen. Dazu habe ich eine ODBC-Verbindung zu meiner Access-DB als ODBC-Datenquelle eingetragen.
Zum Testen habe ich mal eine Video-Datenbank genommen. Darin möchte ich jetzt Abfragen nach bestimmten Daten vornehmen.
Wenn ich zB vom Film "Titanic" den Regisseur oder das Jahr bekommen will, sieht die Abfrage mit einer @-Funktion (@DbLookup) so aus:
1a) @DbLookup("ODBC"; "Videos"; "TR"; "TR"; "Videosammlung"; "Regisseur"; "Filmtitel"; "Titanic")
bzw.
1b) @DbLookup("ODBC"; "Videos"; "TR"; "TR"; "Videosammlung"; "Jahr"; "Filmtitel"; "Titanic")
-> Beide Abfragen funktionieren auch sehr gut. 8)
*******
Wenn ich nun aber das Gleiche mit @DbCommand auslesen will, sollte das so aussehen (denke ich):
2a) @DbCommand("ODBC"; "Videos"; "TR"; "TR"; "SELECT Regisseur FROM Videosammlung WHERE Filmtitel='Titanic'")
bzw.
2b) @DbCommand("ODBC"; "Videos"; "TR"; "TR"; "SELECT Jahr FROM Videosammlung WHERE Filmtitel='Titanic'")
-> Die Abfrage 2a) nach dem Text (Regisseur) funktioniert. ;D
-> Die Abfrage 2b), wo nach Zahlenwerten abgefragt wird, funktioniert nicht. Statt dessen erhalte ich folgende Fehlermeldung: "FEHLER: < Data Access Application Layer > Ungültiger NULL-Ersetzungswert". :-[
Hat jemand eine Idee warum das so ist; was ich falsch mache?
Tritt das Problem mit der Abfrage nach nummerischen Werten bei jeder ODBC-Abfrage mit @DbCommand auf?
Ich bin für jede Hilfe dankbar!!! ::)
-
Mhm ... nach längerem Tüfteln und Ausprobieren scheine ich das Problem gefunden zu haben. :o
Meine problembehaftete Befehlszeile für Abfrage 2b) sah ursprünglich vollständige so aus:
_Jahr := @DbCommand("ODBC"; "Videos"; "TR"; "TR"; "SELECT Jahr FROM Videosammlung WHERE Filmtitel=\'" + ToSearch + "\'":FAIL);
Das Problem tritt immer dann auf,
- wenn es sich um einen Zahlen-Wert handelt (Ergebnis der SQL-Abfrage) und
- zum anderen eine "WHERE"-Bedingung auf einen Notes-Feldwert basiert und gleichzeitig die Option ":FAIL" angegeben ist.
Diese ":FAIL"-Option dient der Behandlung von Nullwerten und erfreut mich derzeit gar nicht. Also ich laß sie erstmal weg. :'(
-
... das muß ich mir heute Abend mal reinziehen, denn ich bin der Meinung, das mit ODBC Zahlen gelesen werden können...
ata