Hi,
ich möchte diverse ItemValues in eine SQL 2005 DB schreiben. Ich weiß, das Thema wurde hier bereits einige male durchgekaut, aber ich habe zu meinem Problem/Fehler bis jetzt keine Lösung gefunden...
Hier erstmal mein relevanter Code:
Dim con As New ODBCConnection
If (con.ConnectTo("DBBenutzerDSN","User","Pass")) Then
Print "Connected to DB."
Dim GlobalObjectId As String
Dim subject As String
GlobalObjectId = docTask.GetItemValue("GlobalObjectId")(0)
subject = docTask.GetItemValue("Subject")(0)
'##### INSERT #####
Dim qry As New ODBCQuery
Dim result As New ODBCResultSet
Set qry.Connection = con
qry.SQL = "SELECT * FROM Task"
Set result.Query = qry
result.Execute
If result.IsResultSetAvailable Then
result.AddRow
Call result.SetValue("GlobalObjectId",GlobalObjectId)
Call result.SetValue("Subject",subject)
result.UpdateRow
Else
Print "ResultSet is Unavailable. Exit!"
Exit Sub
End If
'##### END INSERT #####
Else
Print "Connection failed to DB!"
End If
Exit Sub
result.Close(DB_CLOSE)
con.Disconnect
Print "Connection closed. Finished!"
ErrorHandling:
result.Close(DB_CLOSE)
con.Disconnect
Print Error
Print con.GetExtendedErrorMessage
Print result.GetErrorMessage
Hier sind mal nur 2 Werte für mein Insert exemplarisch angegeben. Ich habe alle möglichen Werte überprüft, dass sie genau dem DB-Format entsprechen!
Wenn ich den Code ausführe , passiert folgendes:
1. Erfolgreiche Verbindung zur DB
2. Code läuft bis 'result.UpdateRow' durch
3. 'result.UpdateRow' geht ins ErrorHandling und zeigt folgendes an
"LS:DO- The operation failed for unspecified reasons."
4. Messagebox mit Ausschrift "NO ERROR" erscheint
5. Fertig
Ich kanns mir nicht erklären... Code sollte doch so korrekt sein?!
Könnt ihr mir helfen?
Welche Debugger Werte könnten noch Aufschluss über mögl. Fehler geben?
Danke und Gruß
Rico.
So, nach ewigem sinnlosen nachjagen von Hinweisen etc. habe ich jetzt letztendlich erstmal auf das reine INSERT-Statement umgestellt! Schade, zumal mein Code auch von der Hilfe so angegeben wird... vielleicht finde ich ja nochwas.
Aber eine Frage habe ich noch zwecks INSERT und NotesDateTime --> DateTime (SQL):
Ich möchte einen NotesDateTime-Value in eine DateTime-Spalte in der SQL 2005-DB inserten.
Klappt natürlich nicht! ;)
Nun hab ich schon mit diversen Konvertierungsfkt. hantiert - will nicht! Wie macht man das???
Dim startDate As New NotesDateTime(docTask.GetItemValue("StartDateTime")(0))
...
qry.SQL = "INSERT INTO Task(StartDate) VALUES ('startDate')"
result.Execute
String und Integerwerte etc. werden korrekt in die Table aufgenommen.
Wie macht man das mit einer NotesDateTime to DateTime???
Gruß Rico.
qry.SQL = "INSERT INTO Task(StartDate) VALUES ('startDate')"
Das zumindest kann nicht gehen.
Damit ist nämlich startDate ein String.
Wie wärs mit
qry.SQL = "INSERT INTO Task(StartDate) VALUES (" + startDate + ")"
Gut für SQL ist "Head First SQL".