Hallo zusammen,
ich habe ein äußerst ungewöhnliches Problem mit einem SQL Server 2005 (SP2):
Mein Programm übernimmt Daten aus einer Fremd-Datenquelle und verteilt diese später innerhalb meiner Datenbank. Das Ganze läuft über Command-Objekte für INSERT, welche mit ? als Parameter deklariert sind:
If cmIns Is Nothing Then
Set cmIns = New ADODB.Command
With cmIns
Set .ActiveConnection = Application.DataCon
.CommandTimeout = .ActiveConnection.CommandTimeout
.CommandType = adCmdText
.CommandText = "INSERT INTO Buchwerte (Mandant_ID, Jahr, Monat, KW," & _
"Datum, Satz_ID," & _
Space(1) & "Konto_ID, Kostenstelle_ID," & _
"Kostentraeger_ID," & _
Space(1) & "Betrag, EndSaldo, WertEbene," & _
"DetailEbene, BuchText)" & _
Space(1) & "VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0, ?, ?," & _
"?, ?, ?)"
.Parameters.Refresh
.Parameters(3) = 0
.Parameters(4) = 0
.Parameters(5) = l_UmlageIndex
.Parameters(10) = -1
.Parameters(11) = 1
.Parameters(12) = "Umlage Personalkosten"
End With
End If Ich befülle also die Parameter mittels cmIns.Parameters(0) = und rufe dann EXECUTE auf: cmIns.Execute lCount, , adExecuteNoRecords .
An dieser stelle kommt der Fehler "[DBNETLIB][ConnectionOpen(Connect)).]SQL Server existiert nicht oder Zugriff verweigert". Bei der Verwendung der IP-Adresse im ConnectionString heißt es "[DBNETLIB][PreLoginHandshake.]general network error". Die Datenbank-Verbindung (s.o. Application.DataCon) gilt für das gesamte Programm und wird nicht explizit neu geöffnet.
Diese Art des Einfügens mit Command-Objekten kommt in meinen Programmen ständig vor, auch in dem Übernahmecode, der vor dem Verteilen kommt (allerdings mit einem anderen command-Objekt). Der Fehler tritt nachvollziehbar nur in dem Programmteil auf, der für das Verteilen zuständig ist, sonst nicht. Dieser Programmteil ist weder ungewöhnlich noch einzigartig, weil diese Art von Code auch in anderen Programmen problemlos läuft.
Das Beste: auf meinem Entwicklungsrechner kann ich das Verhalten nicht nachvollziehen, da läuft alles einwandfrei ...
Ich bin mit meiner Weisheit ziemlich am Ende und habe nicht mal den Ansatz einer vorstellung, wo ich suchen sollte. Kann mir jemand helfen?
Danke und Grüße,
Stefan |