ODBC Fehler bei verknüpften SQL-Server-Abfragen

31/07/2013 - 12:53 von Lutz Uhlmann | Report spam
Hallo NG!

Ich habe hier Fehler die mich echt Nerven kosten, da ich nicht so recht
weiß, woher sie kommen.

Ich habe eine Access2003-MDB in welcher zum Zweck des Datenabgleiches
1.) Tabellen eines Access2003-Backendes und 2.) Abfragen eines
2008R2-SQL-Servers verknüpft sind. Dabei existieren jeweils Paare die
den gleichen Aufbau haben.

Auf diesen verknüpften Tabellen führe ich verschiedene Operationen aus
um Daten hin- und herzuschieben. Im Prinzip ist es eine Art
Synchronisation. Die Aufrufe werden von einer Access-Transaktion der
Buchungs-MDB gekapselt.

Die meisten funktionieren, aber ich bekomme bei einigen auf einmal
Fehler (HAWA_* sind die Verknüpfungen zum SQL-Server). Andere àhnlich
geartete Aufrufe funktionieren und Besonderheiten an den Tabellen sehe
ich nicht!

Set BuchWS = DBEngine.CreateWorkspace("LiefBuch", "admin", "", dbUseJet)
Set BuchDB = BuchWS.OpenDatabase(CurrentDb.Name, False, False)

Beispiel 1

"INSERT INTO HAWA_t_HwBestand
(VKSID,MatGrp,MatArt,KomNr,HwBestand,HwLagerOrt) SELECT
k.VKSID,k.MatGrp,k.MatArt,k.KomNr,k.HwBestand,k.HwLagerOrt FROM
t_HwBestand AS k LEFT JOIN HAWA_t_HwBestand ON
k.VKSID=HAWA_t_HwBestand.VKSID AND k.MatGrp=HAWA_t_HwBestand.MatGrp AND
k.MatArt=HAWA_t_HwBestand.MatArt AND k.KomNr=HAWA_t_HwBestand.KomNr
WHERE HAWA_t_HwBestand.VKSID Is Null AND k.VKSID09"

mittels BuchDB.Execute sql, dbFailOnError

3146; ODBC-Aufruf fehlgeschlagen.; DAO.Database
0; [Microsoft][ODBC SQL Server Driver]Timeout abgelaufen; ODBC.Database

Beispiel 2

"SELECT VKID, VKSID, KASSO_VKKEN, HAWA_VKKEN FROM a_Abgleich_HwVerkauf
WHERE (KASSO_VKKEN<>HAWA_VKKEN OR KASSO_VKKEN<2) AND VKSID09"

mittels BuchDB.OpenRecordset(sql, dbOpenDynaset)

3146; ODBC-Aufruf fehlgeschlagen.; DAO.Database
0; [Microsoft][ODBC SQL Server Driver]Timeout abgelaufen; ODBC.Database


Die ODBC-Ablaufverfolgung zeigt folgendes

usedKasSoBuchSQ ef8-e1c ENTER SQLExecute
HSTMT 09A31EF0
usedKasSoBuchSQ ef8-e1c EXIT SQLExecute with return code -1 (SQL_ERROR)
HSTMT 09A31EF0
DIAG [S1T00] [Microsoft][ODBC SQL Server Driver]Timeout abgelaufen (0)
usedKasSoBuchSQ ef8-e1c ENTER SQLErrorW
HENV 09A31788
HDBC 09A31D48
HSTMT 09A31EF0
WCHAR * 0x0013BE58 (NYI)
SDWORD * 0x0013BEA4
WCHAR * 0x028A2C28
SWORD 4095
SWORD * 0x0013BE90
usedKasSoBuchSQ ef8-e1c EXIT SQLErrorW with return code 0 (SQL_SUCCESS)
HENV 09A31788
HDBC 09A31D48
HSTMT 09A31EF0
WCHAR * 0x0013BE58 (NYI)
SDWORD * 0x0013BEA4 (0)
WCHAR * 0x028A2C28 [ 53] "[Microsoft][ODBC SQL Server
Driver]Timeout abgelaufen"
SWORD 4095
SWORD * 0x0013BE90 (53)
usedKasSoBuchSQ ef8-e1c ENTER SQLErrorW
HENV 09A31788
HDBC 09A31D48
HSTMT 09A31EF0
WCHAR * 0x0013BE58 (NYI)
SDWORD * 0x0013BEA4
WCHAR * 0x028A2CA4
SWORD 4033
SWORD * 0x0013BE90
usedKasSoBuchSQ ef8-e1c EXIT SQLErrorW with return code 100
(SQL_NO_DATA_FOUND)
HENV 09A31788
HDBC 09A31D48
HSTMT 09A31EF0
WCHAR * 0x0013BE58 (NYI)
SDWORD * 0x0013BEA4
WCHAR * 0x028A2CA4
SWORD 4033
SWORD * 0x0013BE90


SQL_NO_DATA_FOUND bringt mich auf einen MS-Problem (
http://support.microsoft.com/kb/319243/de ), was mit MDAC 2.7 SP1
behoben werden soll. Ich habe allerdings schon 2.8.

Ich weiß im Moment nicht weiter ... wo kann ich da ansetzen!?
Jemand eine Idee????


news.albasani.net
 

Lesen sie die antworten

#1 Lutz Uhlmann
31/07/2013 - 16:50 | Warnen spam
Am 31.07.2013 12:53, schrieb Lutz Uhlmann:

Auf diesen verknüpften Tabellen führe ich verschiedene Operationen aus
um Daten hin- und herzuschieben. Im Prinzip ist es eine Art
Synchronisation. Die Aufrufe werden von einer Access-Transaktion der
Buchungs-MDB gekapselt.

...

Set BuchWS = DBEngine.CreateWorkspace("LiefBuch", "admin", "", dbUseJet)
Set BuchDB = BuchWS.OpenDatabase(CurrentDb.Name, False, False)



Anscheinend funkt ide Access-Transaktion des Workspace-Objektes dazwischen.

Entferne ich dich die BeginTrans-, CommitTrans- und Rollback-Aufrufe
làuft alles ohne Fehler durch!

Ich die Sache mal weiter untersuchen. Über Hinweise, Tipps oder
Erklàrungen wàre ich trotzdem dankbar!


Lutz

Ähnliche fragen