Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet 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
-
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
-
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é
-
Schon mal mit einem
& CStr(result.GetValue(i)) probiert?
-
@eknori
ja auch schon, gleiches Ergebnis
-
ach, schau mal in die Hilfe... ;-)
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.
-
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 ?
-
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é
-
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
-
das hatte ich auch probiert, bekam aber trotzdem nur false zurück