Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ODBC Fehler bei verknüpften SQL-Server-Abfragen

28 views
Skip to first unread message

Lutz Uhlmann

unread,
Jul 31, 2013, 6:53:09 AM7/31/13
to
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.VKSID=1009"

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 VKSID=1009"

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

Lutz Uhlmann

unread,
Jul 31, 2013, 10:50:05 AM7/31/13
to
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

Lars P. Wolschner

unread,
Aug 1, 2013, 12:51:21 AM8/1/13
to
Lutz Uhlmann <ne...@invalid.invalid>:

> 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!

Zumindestens sind mit ODBC-Arbeitsbereichen keine verschachtelten
Transaktionen nutzbar. Allerdings w�rden sie meiner Erfahrung nach zu
keinen St�rungen f�hren.

--
Mit freundlichen Gr��en
Lars P. Wolschner
0 new messages