Autor Thema: lotusscript odbc mysql liefert bei varchar feldern false zurück  (Gelesen 4805 mal)

Offline Pavel

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
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   

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
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
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Pavel

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
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é

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Schon mal mit einem

& CStr(result.GetValue(i)) probiert?
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Pavel

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
@eknori

ja auch schon, gleiches Ergebnis

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
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.
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Pavel

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
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 ?

Offline Pavel

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
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é

y20frank

  • Gast
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

Offline Pavel

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
das hatte ich auch probiert, bekam aber trotzdem nur false zurück

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz