MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 17.10.2018, 11:45   #1
thomasreick
MOF User
MOF User
Standard T-SQL : MSSQL 2012 - Servertabelle mit lokaler Tabelle aus Access aktualisieren bzw. anfügen

Hallo zusammen.
Folgendes Vorhaben:
In Access liegt eine lokale Tabelle, mit deren Inhalten eine auf dem Server befindliche Tabelle aktualisiert bzw. ergänzt werden soll.
Der Server ist per ODBC angebunden, ein direkter Serverimport per SSIS ist leider nicht möglich.
  • "Normale" Aktualisierungsabfrage/-Aktualisierungsstatement für alle DS die per JOIN matchen
  • Neu anzufügende Datensätze per LEFT JOIN ermitteln. Dazu den LEFT-Join-String an eine Prüffunktion senden die per DAO prüft ob rs.EOF (Rückgabe= FALSE) oder nicht (Rückgabe=TRUE). Auf den Rückgabewert wird dann enstsprechend reagiert.
  • Bei Rückgabe=TRUE die per LEFT JOIN ermittelten neuen DS in lokale temporäre Tabelle schreiben
  • Inhalte aus temporärer Tabelle an Zieltabelle per Anfügeabfrage anfügen
  • am Ende alle temporären Objekte entfernen

Die Aktionen werden dann jeweils per
Code:

CurrentDb.Execute sSql, dbFailOnError
ausgeführt

Welche Möglichkeiten sind besser / performanter als diese hier skizzierten Schritte?

__________________

Ich bitte um Input.

Vielen Dank

Thomas Reick
thomasreick ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.10.2018, 19:58   #2
Josef P.
MOF Guru
MOF Guru
Standard

Hallo!

Falls die lokale Tabelle eine überschaubare Datenmenge hat, könntest du alle Datensätze in eine Temp- oder Transfer-Tabelle übertragen und dann alles per Prozedur im Server abarbeiten.

mfg
Josef
Josef P. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.10.2018, 08:21   #3
thomasreick
Threadstarter Threadstarter
MOF User
MOF User
Standard

Guten Morgen Josef,

danke für deine Nachricht, das hört sich nach einem guten Plan an.
Aber: Könntest du mir hier bitte einen Ansatz geben ?
  • Was ist für dich eine "überschaubare" Datenmenge?
  • Wie "übertrage" ich eine lokale Access-Tabelle in den Server?
Die Tabelle. um die es geht ist zwischen 1.000 und 4.000 Datensätze groß und wird in unregelmäßigen Zeitabständen aktualisert (Saisonales Update einer Artikelliste)

Fragen über Fragen....

__________________

Ich bitte um Input.

Vielen Dank

Thomas Reick

Geändert von thomasreick (18.10.2018 um 08:24 Uhr). Grund: Listenformatierung
thomasreick ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.10.2018, 11:42   #4
Josef P.
MOF Guru
MOF Guru
Standard

Zitat:

Was ist für dich eine "überschaubare" Datenmenge?
[..]
Die Tabelle. um die es geht ist zwischen 1.000 und 4.000 Datensätze groß

Das halte ich für eine kleine Datenmenge, die schnell übertragen werden sollte. (Ich geh davon aus, dass keine Bilder oder andere große Binärbrocken im DS enthalten sind.)

Zitat:

Wie "übertrage" ich eine lokale Access-Tabelle in den Server?

Im Prinzip ist das ziemlich egal.
Entweder per Recordsetschleife oder über eine verknüpfte Tabelle.
Letzteres wird vermutlich einfacher und übersichtlicher sein.

Du könntest Temp-Tabellen wie ##TabName verwenden oder du legst eine bleibende Tabelle in der DB an.
Ich bevorzuge für ähnliche Übertragungen eine dauerhaft gespeicherte Tabelle, die dann als Log-Tabelle dient, um im Bedarfsfall die Übertragung überprüfen zu können. Als Kennung für den jeweiligen Übertragungsvorgang verwende ich gerne eine GUID, die dann in jedem Detail-Datensatz enthalten ist.

Prinzip:
1. guid = ...
2.
Code:

insert into Transfertabelle (Transferguid, ...) 
select guid, ... from LokaleTabelle
3. Datenabgleich
Code:

exec TRANS.SyncDaten @TransferGuid = guid
mfg
Josef
Josef P. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:53 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.