Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: wizzardy am 06.04.06 - 14:54:38

Titel: ODBC Result liefert false in einer Spalte.
Beitrag von: wizzardy am 06.04.06 - 14:54:38
Hallo!

Habe hier folgendes Problem:
Ich mache einen ODBC Zugriff auf eine Tabelle einer Datenbank.
Klappt auch soweit alles.
Aber:
In dem Resultset, welches ich als Rückgabe erhalte, kann ich alle Spalten ohne Probleme auslesen, bis auf die Erste. Diese sollte den primären Schlüssel im Format (z.B. 00000001-0008-CCDB-0060970D1B70) enthalten. Ich bekomme aus dem Resultset aber ein "False" zurück. Ideen?
Ach ja, wenn ich die Tabelle in Access importiere, hat die Spalte das Format "Text", wenn ich mir das über einen SQL Viewer anschaue, heisst das Format "Unique Identifier".

Danke
Torsten
Titel: Re: ODBC Result liefert false in einer Spalte.
Beitrag von: ZaLudtske am 06.04.06 - 15:12:56
Mit welcher Datenbank arbeitest du?

Wie sieht das SQL-Statement aus?

Mfg

R.
Titel: Re: ODBC Result liefert false in einer Spalte.
Beitrag von: wizzardy am 06.04.06 - 15:16:47
MS SQL server 2000.

Das SQL ist sehr simpel und funzt eigentlich auch: "SELECT * FROM PLU"

PLU ist die Tabelle, aus der ich das Resultset auslese.

Danke
Torsten
Titel: Re: ODBC Result liefert false in einer Spalte.
Beitrag von: ZaLudtske am 06.04.06 - 15:27:08
Wie sieht es aus wenn du per ODBC von Access auf die SQL-Server-Datenbank zugreifts. Wird dann die Spalte korrekt angezeigt?

Vielleicht gibt es ein Problem mit dem ODBC-Treiber?
Titel: Re: ODBC Result liefert false in einer Spalte.
Beitrag von: wizzardy am 06.04.06 - 15:33:32
Ja, ein ODBC Import in Access zeigt die Spalte bzw. die Werte korrekt an.
Der ODBC Treiber ist ja dabei der Gleiche, da auf die Gleiche Quelle zugegriffen wird...

Danke
Torsten
Titel: Re: ODBC Result liefert false in einer Spalte.
Beitrag von: ZaLudtske am 06.04.06 - 15:41:14
Ist der Schlüssel eine GUID.

Vielleicht hilft eine Konvertierung einen String im SQL-Statement.

R.
Titel: Re: ODBC Result liefert false in einer Spalte.
Beitrag von: wizzardy am 06.04.06 - 15:52:08
Da stosse ich dann mal an meine SQL Grenzen.
Wie wandele ich das in einen String? (Nachträglich geht das übriges nicht, die Umwandlung in Script bewirkt gar nichts.)
Kann ich dann mit dem umgewandelten String trotzdem später in einer anderen Tabelle nach dem Schlüssel suchen? (Das muss ich auch noch machen...)

Danke
Torsten
Titel: Re: ODBC Result liefert false in einer Spalte.
Beitrag von: ZaLudtske am 06.04.06 - 16:11:13
Die Konvertierung erfolgt mit CAST oder CONVERT siehe Hilfe.

Die Konvertierung sollt nur zur Ausgabe nach Notes erfolgen. Zum Verknüpfen bitte weiterhin den Identifer nutzen.

R.
Titel: Re: ODBC Result liefert false in einer Spalte.
Beitrag von: flaite am 06.04.06 - 16:15:00
Vielleicht von der Syntax so die Art wie die Cast Statements hier.
http://www.insidesql.de/content/view/136/
Würds aber eher mit Varchar versuchen.
Du mußt natürlich vorher im Select Statement den Stern durch die einzelnen Attribut-Namen ersetzen, aber das ist sowieso sauberer.

Axel

Titel: Re: ODBC Result liefert false in einer Spalte.
Beitrag von: crow am 11.04.06 - 12:48:45
hi,

wie greifst du denn auf Spalten zu ?

Cstr(ergebnis.getvalue("Feld"))
Titel: Re: ODBC Result liefert false in einer Spalte.
Beitrag von: wizzardy am 26.04.06 - 16:03:58
Hi!

Genau das habe ich schon probiert, nur das ich mit der Spaltennummer arbeite. Leider kein Ergebnis. Ich habe den Verdacht, das das ODBC LSX mit dem Datentyp der Keyspalte des SQL servers ein Problem hat.

Ich werde Axels Tip mal aufgreifen und die Spalte direkt als Text rüberziehen. Dann wird es aber spannend werden, ob ich das Ergebnis dann als Key für den Zugriff auf eine weitere Tabelle benutzen kann...

Weiterhin etwas ratlos....

Gruss
Torsten
Titel: Re: ODBC Result liefert false in einer Spalte.
Beitrag von: wizzardy am 27.04.06 - 13:01:54
Also:

Wenn man mit Cast die Spalte im SQL Statement als Text rüberholt. dann funzt es. Danke für den Tip.

Die Abfrage lautet dann: SELECT CAST(name as CHAR(255)) as name, weitereSpaltennamen
wobei 255 die Länge des Textfeldes ist und name der Name der Spalte in der SQL DB.

Jetzt muss ich noch sehen, ob ich mit dem Text Schlüssel auch auf andere Tabellen zugreifen kann.

Gruss
Torsten