Hallo,
mit ODBC ist alles okay, doch ich möchte den Querie mit der OLEDB laufen lassen, da dort die Fehler besser beantwortert werden.
Doch alle Queries, selbst "select sysdate from dual;" kommt vom mit: "ORA-00933: SQL-Befehl wurde nicht korrekt beendet from: OraOLEDB" zurück.
Wenn im folgendem Querrie die fette Zeile auskommentiert wird, kommt der ODBC-Treiber zum Einsatz mit der Zeile der oleDB Treiber.
Warum kommt es bei oleDB dazu das der Querie nicht richtig beendet wird?
Mit kein; und doppeltem;; und auch mit / und vbLf & vbCR in vielen Kombinationern habe ich es schon probiert.
Danke!
Gruß
Richi
P.S.: Hier der VBA code:
Option Explicit
Public con_tns As ADODB.Connection
….
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command
….
Set con_tns = New ADODB.Connection
con_tns.Provider = "OraOLEDB.Oracle"
con_tns.Properties.Item("Data Source") = “myDB”
con_tns.Properties.Item("User ID") = "myID"
con_tns.Properties.Item("Password") = "myPSW"
cmd.ActiveConnection = con_tns
cmd.CommandText = ‘select sysdate from dual;’
Set rs = cmd.Execute
…..
End sub
errHandler:
Dim errLoop As ADODB.Error
Dim Errs As ADODB.Errors
Dim I As Integer
Set Errs = con_tns.Errors
Debug.print ("*** VBA-Error: " & Err.Description & " Source: " & Err.Source)
On Error Resume Next
I = 1
For Each errLoop In Errs
With errLoop
Debug.print ("***ADO Error #: " & I & ": ADO ErrNo: " & .Number & ": " + .Description & " from: " & .Source)
I = I + 1
End With
Next
|