Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Pavel am 05.01.10 - 15:40:53

Titel: lotusscript odbc mysql liefert bei varchar feldern false zurück
Beitrag von: Pavel am 05.01.10 - 15:40:53
Hallo,

habe noch eine kleine Frage. Ich nutze folgenden Scriptcode, soweit funktioniert auch alles, bis auf die Rückgabe der Werte, die in der MySql Datenbank als varchar(80) definiert sind.
Dort wird nur "false" zurückgeliefert.
Wo könnte das Problem liegen bzw. was mache ich verkehrt.

Gruß
René


   Dim qry As New ODBCQuery
   Dim result As New ODBCResultSet
   Dim msg As String
   Set qry.Connection = con
   Set result.Query = qry
   qry.SQL = "select name,processort,processors,memory,lastcome,winprodkey from hardware where name='"+doc.pcname(0)+"'"
   Messagebox qry.SQL
   result.Execute
   msg = ""
   If result.IsResultSetAvailable Then
      Do
         result.NextRow
         msg = msg & Chr(10)
         For i = 1 To result.NumColumns
            msg = msg & Chr(13) & result.FieldName(i) &" - " & Str(result.GetValue(i))
            
         Next
      Loop Until result.IsEndOfData
      Messagebox msg,, "inhalt"
      result.Close(DB_CLOSE)
   Else
      Messagebox "Cannot get result set "
      Exit Sub
   End If   
Titel: Re: lotusscript odbc mysql liefert bei varchar feldern false zurück
Beitrag von: pram am 05.01.10 - 20:40:44
Bist du dir sicher, dass der Fehler auf der Notes-Seite zu suchen ist? (und nicht evtl im DB-Treiber

Kannst du ggf. mal folgenden Select:

select 'Blafasel' as CharWert1, name + 'xyz' as CharWert2, name, proessort from hardware where name='abc'

getValue(1) und getValue(2) muss nun definitv ein String sein.

Mir kommt das was du schreibst ein bisschen "strange" vor. Kannst du ggf. den DB-Treiber mal mit einem anderen Frontend testen. Ich kann hier "squirrel" empfehlen.
(als Connectionstring einfach jdbc:odbc:<deinDsnName> angeben)

Gruß
Roland
Titel: Re: lotusscript odbc mysql liefert bei varchar feldern false zurück
Beitrag von: Pavel am 06.01.10 - 07:22:53
Hallo,

danke für die Antwort, leider bekomme ich so folgende Meldung:

CharWert1 - False
CharWert2 - 0
name - false
processort - false

Mit Feldern in denen Zahlen stehen funktioniert es jedoch.

Gruß
René
Titel: Re: lotusscript odbc mysql liefert bei varchar feldern false zurück
Beitrag von: eknori am 06.01.10 - 07:43:23
Schon mal mit einem

& CStr(result.GetValue(i)) probiert?
Titel: Re: lotusscript odbc mysql liefert bei varchar feldern false zurück
Beitrag von: Pavel am 06.01.10 - 07:46:06
@eknori

ja auch schon, gleiches Ergebnis
Titel: Re: lotusscript odbc mysql liefert bei varchar feldern false zurück
Beitrag von: pram am 06.01.10 - 12:49:45
ach, schau mal in die Hilfe... ;-)

Zitat
variable = odbcResultSet.GetValue( column_id% [ , variable ] )

The data type of the second parameter determines the data type of the returned data. If you omit this parameter, the data type is as set for this column by the FieldExpectedDataType property; for example, you can set the expected value to return a real value for an integer numeric field. If neither of the preceding are in effect, the data type is the closest to the native data type.
Titel: Re: lotusscript odbc mysql liefert bei varchar feldern false zurück
Beitrag von: Pavel am 06.01.10 - 15:06:25
habe mal mit odbcResultSet.fieldnativedatatyp den typ bei den jeweiligen feldern abgefragt,
bei den Problemfeldern wird mit -9 zurückgegeben, bei den Feldern die funktionieren, wird mir ein vernünftiger Wert zurückgegeben (4 = SQL_INTEGER und 11 = SQL_TIMESTAMP)

Was bedeutet -9 ?
Titel: Re: lotusscript odbc mysql liefert bei varchar feldern false zurück
Beitrag von: Pavel am 18.01.10 - 10:19:11
Hallo,

habe die Lösung des Problems gefunden.
Der neueste MySQL ODBC Treiber für Windows scheint nicht korrekt zu funktionieren.
Habe jetzt eine alte Version 3.51 benutzt und alles funktioniert.

Gruß
René
Titel: Re: lotusscript odbc mysql liefert bei varchar feldern false zurück
Beitrag von: y20frank am 18.01.10 - 10:44:53
Könnte ggf. auch ein "SELECT CONVERT..." helfen? Hatte das bei einer MS SQL DB auch schon mal, dass die VarChar Felder nur "False" zurückgeliefert hatten. Ohne dabei am ODBC was zu schrauben hat's mit dem Convert geklappt...

sqlquery = "SELECT CONVERT(varchar,ID) as id, CONVERT(varchar,CLIENT) as client, CONVERT(varchar, BUKRS) as bukrs, ...........

Gruß
Frank
Titel: Re: lotusscript odbc mysql liefert bei varchar feldern false zurück
Beitrag von: Pavel am 18.01.10 - 15:31:21
das hatte ich auch probiert, bekam aber trotzdem nur false zurück