[gelöst]BC 16.5 - SQL direkt schreiben

22. März 2021 19:18

Hallo allerseits,

um die Datenübertragung von unseren sehr alten Navision 3.6 nach Dynamics durchzuführen, möchten wir die Daten direkt in die neue Dynamics SQL-Datenbank schreiben. Die mitgelieferten Tools sind zu langsam, da es um sehr große Datenmengen geht. Wir haben dazu in Nav 3.6 eine Routine geschrieben, die mittels ADORecordset per UPDATE in die Dynamics SQL-Datenbank beschreibt.

Das geschieht natürlich nicht direkt in die entsprechenden Tabellen, sondern über eine Temp-Tabelle, die dann im Anschluss auf dem Dynamics-System "ausgepackt" und in die jeweiligen Zieltables geschrieben wird. Das funktioniert soweit alles gut - aber es gibt einen kleinen Wermutstropfen:

Nach dem Schreiben in die SQL-Datenbank sind die Datensätze in der SQL-Datenbank vorhanden. Man kann sie mit entsprechenden SQL-Tools (z.B. SQL-Server Management Studio) lesen. In Dynamics sind die Datensätze allerdings zunächst nicht sichtbar. Erst, wenn man in der Dynamics-Datenbank ein MODIFY auf einen bestehenden, älteren Datensatz macht, dann tauchen die neu von Nav3.6 geschriebenen Datensätze auf.

Muss da im ADO nach dem UPDATE des Recordsets noch irgend ein zusätzliches "UPDATE" gemacht werden?
Zuletzt geändert von elf am 23. März 2021 10:02, insgesamt 1-mal geändert.

Re: BC 16.5 - SQL direkt schreiben

22. März 2021 19:25

Hallo,

das Zauberwort in Dynamics dürfte "SELECTLATESTVERSION" lauten.

Gruß Fiddi

Re: BC 16.5 - SQL direkt schreiben

22. März 2021 21:10

elf hat geschrieben:...Die mitgelieferten Tools sind zu langsam, da es um sehr große Datenmengen geht. Wir haben dazu in Nav 3.6 eine Routine geschrieben, die mittels ADORecordset per UPDATE in die Dynamics SQL-Datenbank beschreibt.

Das geschieht natürlich nicht direkt in die entsprechenden Tabellen, sondern über eine Temp-Tabelle, ...

Du brauchst dich nicht zu rechtfertigen. Wenn du weißt was du tust, kannst du auch direkt in die Zieltabellen schreiben. Ich habe auch ca 25t Artikel ohne Probleme übernommen.


elf hat geschrieben:... Erst, wenn man in der Dynamics-Datenbank ein MODIFY auf einen bestehenden, älteren Datensatz macht, dann tauchen die neu von Nav3.6 geschriebenen Datensätze auf.

Muss da im ADO nach dem UPDATE des Recordsets noch irgend ein zusätzliches "UPDATE" gemacht werden?


Bei mir hilft entweder ein Neustart des NAV-Dienstes oder einmal "F5" in einer betreffenden Page. Aber ich kann mir vorstellen, dass SELECTLATESVERSION einen Effekt haben könnte.

Re: BC 16.5 - SQL direkt schreiben

23. März 2021 10:01

Danke, SELECTLATESTVERSION hats gebracht.