Dao-Recordset mit datenbank.schema.tabelle

14/11/2008 - 10:03 von Lutz Uhlmann | Report spam
Hallo NG!

Stelle eine DB von Access auf SQL-Server als BE um ...
Als ersten Schritt versuche ich die einfachste Umstellung ohne großartige
Änderungen. Aus Performance-Gründen vershciebe ich einige Abfragen auf den
Server.
Ich habe jetzt allerdings ein Problem.

An einer Stelle im Programm rufe ich gekapselt in eine Transaktion eine
Funktion auf

DBEngine.BeginTrans
nNewMatID = mat_buchung_zu(lMatID, sBez, dbetrag, datIst, nlid, slnr, sKST,
sBST, nStatus, dtFrist, lAnf)
If nNewMatID > 0 Then
DBEngine.CommitTrans
Else
DBEngine.Rollback
End If

In der Funktion lege in einer verknüpften Tabelle "Tabelle1" einen Datensatz
an.
Als nàchstes rufe ich denselben Datensatz in einer verknüpften Sicht
"Sicht1" auf.
An dieser Stelle làuft das öffnen des Recordsets in einen Timeout.
Sicht1 liegt auch auf dem Sql-Server und verknüpft Tabelle1 mit einigen
anderen Tabellen. Sicht1 habe ich lokal im Frontend verknüpft ebenso wie
Tabelle1.

Function mat_buchung_zu(...) As Long

Dim db As DAO.Database
Dim rsVon As DAO.Recordset
Dim rsZu As DAO.Recordset
Dim sql As String

Set db = CurrentDb

sql = "SELECT * FROM Tabelle1 WHERE MatID Is Null"
Set rsZu = db.OpenRecordset(sql, DB_OPEN_DYNASET)
rsZu.AddNew
rsZu.Fields("ID") = newid
...
rsZu.Update
rsZu.Close
Set rsZu = Nothing

sql = "SELECT * FROM Sicht1 WHERE ID=" & Nz(newid, 0)
Set rsVon = db.OpenRecordset(sql, dbOpenDynaset) <- timeout

Sobald ich aber die Transaktions-Kommandos um den Funktionsaufruf entferne,
làuft alles komplett durch.

Was mach ich hier falsch?

MhG Lutz
 

Lesen sie die antworten

#1 Lutz Uhlmann
14/11/2008 - 10:07 | Warnen spam
"Lutz Uhlmann" schrieb im Newsbeitrag "Dao-Recordset mit
datenbank.schema.tabelle"

So, der Betreff stimmt nicht ganz mit dem eigentlichen Thema überein, da ich
zuerst etwas anderes fragen wollte, sry.
Vielleicht kann ja jemand den betreff noch àndern in "Timeout wàhrend
Transaktion" oder so ...

Lutz

Ähnliche fragen