Hallo, folgendes Problem:
DB: SQL-Server
C++ und VB.NET
Mit einer C++ Applikation werden in einer ziemlich "großen" Transaction Datensätze in eine Tabelle geschrieben.
Mit einer anderen Applikation (VB.NET) sollen nun parallel Datensätze aus der selben Tabelle gelesen werden. Ein Aufruf wie (SELECT * FROM TABLE WHERE STATUS=20) liefert aber einen Timeout zurück, solange die C++-Apllikation die Transaktion nicht beendet hat.
Die Frage:
Gibt es eine Möglichkeit die Connection innerhalb der C++-Applikation so zu öffnen, das andere Applikationen dennoch auf die Datensätze der Tabelle zugreifen können (natürlich nur auf die Sätze, welche durch die C++-Applikation bereits committed wurden) - oder ist das mit SQL-Server generell nicht möglich?
(Kleiner Hinweis noch, bei Oracle habe ich diese Probleme nicht!)
Ich habe viel mit dem Mode und der IsolationLevel "gespielt", aber leider ohne Erfolg.
Hier mein Connection-Code:
pCon.CreateInstance(__uuidof(Connection));
pCon->ConnectionTimeout = 30;
pCon->Mode = adModeShareDenyNone;
pCon->IsolationLevel = adXactIsolated;
pCon->Open(s_conn, DBUser, DBPW, adOpenUnspecified);
Die VB.NET-Applikation geht über das SqlConnection-Object
Ich hoffe ich habe mich verständlich ausgedrückt und jemand weiß eine Lösung.
Tnx.
Olli
DB: SQL-Server
C++ und VB.NET
Mit einer C++ Applikation werden in einer ziemlich "großen" Transaction Datensätze in eine Tabelle geschrieben.
Mit einer anderen Applikation (VB.NET) sollen nun parallel Datensätze aus der selben Tabelle gelesen werden. Ein Aufruf wie (SELECT * FROM TABLE WHERE STATUS=20) liefert aber einen Timeout zurück, solange die C++-Apllikation die Transaktion nicht beendet hat.
Die Frage:
Gibt es eine Möglichkeit die Connection innerhalb der C++-Applikation so zu öffnen, das andere Applikationen dennoch auf die Datensätze der Tabelle zugreifen können (natürlich nur auf die Sätze, welche durch die C++-Applikation bereits committed wurden) - oder ist das mit SQL-Server generell nicht möglich?
(Kleiner Hinweis noch, bei Oracle habe ich diese Probleme nicht!)
Ich habe viel mit dem Mode und der IsolationLevel "gespielt", aber leider ohne Erfolg.
Hier mein Connection-Code:
pCon.CreateInstance(__uuidof(Connection));
pCon->ConnectionTimeout = 30;
pCon->Mode = adModeShareDenyNone;
pCon->IsolationLevel = adXactIsolated;
pCon->Open(s_conn, DBUser, DBPW, adOpenUnspecified);
Die VB.NET-Applikation geht über das SqlConnection-Object
Ich hoffe ich habe mich verständlich ausgedrückt und jemand weiß eine Lösung.
Tnx.
Olli
Comment