SQL-Server Kommunikationsproblem TimeOut?
Moin,
ich verwende das Data-Connectivity-Tool zur Kommunikation von LV mit dem SQL-Server SQLSERVER Express 2014 von Microsoft. Das funktioniert normalerweise.
Jetzt habe ich aber das Problem, dass LV keine Datensätze empfängt, obwohl der Server welche liefert.
Ich rufe aus LV eine sogenannte gespeicherte Prozedur auf dem Server auf. Diese beinhaltet u.a. folgenden SQL-Code:
INSERT INTO dbo.tblTest(Data) SELECT * FROM OPENROWSET( BULK 'C:\Data\Test.dat',SINGLE_CLOB) AS Data'
SELECT 0 AS ERRORCODE, NULL AS ERRORMESSAGE
Es wird eine Datei von der Platte gelesen und diese in eine Tabelle geschrieben. Direkt danach soll die gespeicherte Prozedur mit dem Code 0 und einer leeren Fehlermeldung beendet werden.
Mache ich das z.B. von MSAccess aus, dann wird tatsächlich eine 0 und NULL zurückgegeben. Das SQL-Konstrukt ist daher korrekt und die einzulesende Datei existiert. Auch gibt es keinerlei Datenkonflikte.
Mit LV bleibt Resultrecordset aber leer, es wird kein Datensatz empfangen. Kommentiere ich den INSERT-Teil raus, dann erhält LV den Datensatz.
Man kann jetzt ein Timing-Problem vermuten. Das Einlesen einer Datei von der Platte dauert einen Moment und LV warten anscheinend nicht lange genug auf eine Rückmeldung und bricht ab. Wenn der INSERT-Teil fehlt, geht alles schnell genug und LV fängt den Recordset.
Ich finde allerdings keine Einstellungen bzgl. eines Timeouts. Zwar bietet das VI DB Tools Open Connection einen entsprechenden Eingang, doch der gilt wohl nur für den Aufbau der Verbindung zum Server und nicht für das Warten auf eine Ergebnis. Außerdem steht der Timeout hier per Default auf 15 sec. Das ist eine Ewigkeit und so lange dauert auch das Einlesen und speichern der Datei bei Weitem nicht.
Hat jemand einen Tipp, was hier das Problem sein könnte bzw. wie eine Lösung aussehen könnte?
Gruß
LFool
|