Stored procedures unter Windows XP mit Oracle ODBC Treiber 10.01.0

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Hallo NG,

Wir portieren eine ActiveX Applikation von Windows NT 4 nach Windows XP.
Dabei wurde auf Windows XP auch ein neuer ODBC Treiber von Oracle (Version
siehe Subject) installiert, welcher uns beim Aufruf der Stored Procedure
grosse Mühe bereitet.

Beim Execute des ADO Commands hängt sich die Applikation auf und muss via
Task Manager abgeschossen werden. Auch das angegebene Command Timeout
reagiert nicht nach abgelaufer Zeit und wir erhalten keine Fehlermeldung. Im
ODBC Trace sieht man das die Stored Proc zwar aufgerufen aber nie beendet
wird. Es scheint so als bliebe man in der C-API SQLExecDirectW hängen.

Kennt jemand von euch das Problem? Gibt es die Möglichkeit ADO statt
SQLExecDirectW (für Unicode) SQLExecDirect aufrufen zu lassen?

[VB 6 Listing]
Public Function StartePruefung(ByRef s_GeVoNr As String, ByRef s_Rolle As
String) As Boolean

Dim cmdCommand As ADODB.Command
Dim prmGeVoNr As ADODB.Parameter
Dim prmRolle As ADODB.Parameter

On Error GoTo ErrHandler

Set cmdCommand = New ADODB.Command

cmdCommand.ActiveConnection = db_Regeln
cmdCommand.CommandType = adCmdStoredProc
cmdCommand.CommandText = "regel_interpreter.kick_interpreter"

Set prmGeVoNr = cmdCommand.CreateParameter("verarb_nr_in", adVarChar,
adParamInputOutput, 13)
Set prmRolle = cmdCommand.CreateParameter("mandant_in", adVarChar,
adParamInputOutput, 10)

prmGeVoNr.Value = CDbl(s_GeVoNr)
prmRolle.Value = s_Rolle

cmdCommand.Parameters.Append prmGeVoNr
cmdCommand.Parameters.Append prmRolle

cmdCommand.CommandTimeout = 30 ' 30 secs

cmdCommand.Execute ' hier bleibt das Programm hängen

StartePruefung = CBool(db_Regeln.Errors.Count = 0)

Exit Function

ErrHandler:

MsgBox "Fehler bei der Prüfung: " & Err.Description, vbCritical +
vbOKOnly, App.ProductName

StartePruefung = False
End Function

[ODBC Trace Ausschnitt]
ScoringX b20-d30 ENTER SQLExecDirectW
HSTMT 01781BA8
WCHAR * 0x013D7650 [ -3] "{ call
regel_interpreter.kick_interpreter(?, ?) }\ 0"
SDWORD -3


.



Relevant Pages

  • Re: Reading IE browser contents?
    ... The Document object represents the loaded page. ... "Microsoft Shell Controls and Automation" ... Dim ie2 As InternetExplorer ... windows AND IE windows. ...
    (microsoft.public.vb.general.discussion)
  • Re: function PlaySound does not work
    ... You need to use any of several methods to get the Windows directory. ... Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long ... Public Function GetWinDir() As String ... Dim sBuffer As String ...
    (microsoft.public.vb.winapi)
  • RE: GetOpen filename to open files(Workbooks)
    ... As I said previously you can't circumvent the windows security protection ... Set FileNameXls = Workbooks.Open(_ ... Dim FileNameXls As Variant ... Dim ShName As String, PathStr As String ...
    (microsoft.public.excel.misc)
  • Re: Improving Application Performance by DISABLING hardware acceleration?
    ... I found a similar issue when using Windows Media Encoder for screen capture ... Another issue that Disabling Hardware Acceleration seems to solve, ... Dim hSDC, hMDC, hMDC2 As Integer ... > improve performance when operating on in-memory DDBs. ...
    (microsoft.public.win32.programmer.gdi)
  • Re: How do I update Word 2002 to create merged faxes?
    ... If you have Windows 2000 or Windows XP, the "official" way is to have the ... If you're going to try it, please read the notes, modify the macro to suit ... Dim bFaxServerAvailable As Boolean ... Dim oFaxPorts As FAXCOMLib.FaxPorts ...
    (microsoft.public.word.mailmerge.fields)