none
Zugriff von Access auf SQL Server 2005 (64bit)

    Allgemeine Diskussion

  • Hallo zusammen,

    ich habe folgende Herausforderung:

    aus einem SQL-Server 2005 (64bit) auf WINDOWS Server 2008 R2 (64bit) versuche ich die Befüllung einer MS Access DB über sp_OAMethod zu steuern. Mit dem Aufruf  master.dbo.sp_OAMethod @ado_objekt, 'Execute', @dummy OUTPUT, @sql_stmt will ich Insert-Befehle an eine MDB senden, die sich dann die Daten aus dem SQL-Server in die Tabellen der MDB füllt.

    Die Verbindung an die Access-DB funktioniert (ich konnte per INSERT einen Wert in eine Access-Tabelle schreiben). Jedoch sind eine Vielzahl von verschiedenen Verbindungsversuchen auf den SQL-Server fehlgeschlagen.

    Es handelt sich um eine MDB im ACCESS 2000 Format.

    Hat irgendjemand hilfreiche Ideen? Vielen Dank schon einmal vorab!

    Viele Grüße

    Martin

    Donnerstag, 25. August 2011 07:33

Alle Antworten

  • Hallo zusammen,

    ich habe folgende Herausforderung:

    aus einem SQL-Server 2005 (64bit) auf WINDOWS Server 2008 R2 (64bit) versuche ich die Befüllung einer MS Access DB über sp_OAMethod zu steuern. Mit dem Aufruf  master.dbo.sp_OAMethod @ado_objekt, 'Execute', @dummy OUTPUT, @sql_stmt will ich Insert-Befehle an eine MDB senden, die sich dann die Daten aus dem SQL-Server in die Tabellen der MDB füllt.

    Die Verbindung an die Access-DB funktioniert (ich konnte per INSERT einen Wert in eine Access-Tabelle schreiben). Jedoch sind eine Vielzahl von verschiedenen Verbindungsversuchen auf den SQL-Server fehlgeschlagen.

    Es handelt sich um eine MDB im ACCESS 2000 Format.

    Hat irgendjemand hilfreiche Ideen? Vielen Dank schon einmal vorab!

    Viele Grüße

    Martin


    ... Ach ja, zwei kleine Ergänzungen noch: die MDB liegt auf dem selben Server, auf dem der SQL-Server läuft. Auf diesem Server ist KEIN Office installiert.

    Martin

    Donnerstag, 25. August 2011 07:51
  • Hallo,

    MCof wrote:

    aus einem SQL-Server 2005 (64bit) auf WINDOWS Server 2008 R2 (64bit)
    versuche ich die Befüllung einer MS Access DB über sp_OAMethod zu
    steuern.

    Das waere eigentlich eine Frage fuer's SQL-Server-Forum gewesen.

    Mit dem Aufruf  master.dbo.sp_OAMethod @ado_objekt, 'Execute',
    @dummy OUTPUT, @sql_stmt will ich Insert-Befehle an eine MDB senden, die
    sich dann die Daten aus dem SQL-Server in die Tabellen der MDB füllt.

    Die Verbindung an die Access-DB funktioniert (ich konnte per INSERT
    einen Wert in eine Access-Tabelle schreiben). Jedoch sind eine Vielzahl
    von verschiedenen Verbindungsversuchen auf den SQL-Server
    fehlgeschlagen.

    Ohne diese SP besonders zu kennen: BOL sagt, man muesse Member der sysadmin
    role sein. Ist das bei dir der Fall?

    Ansonsten, gibt es einen Grund, warum du diesen doch etwas ausgefallenen
    Weg verwendest, um Daten nach Access zu schicken?

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Donnerstag, 25. August 2011 08:02
    Moderator
  • Hallo Peter,

    vielen Dank für die rasche Antwort. Zu Deinen Fragen:

    - Ich bin Member der sysadmin-Gruppe.

    - Diesen Weg habe ich mir leider nicht aussuchen können. Ich migiere gerade die bestehende Access Anbindung und bin inzwischen etwas ratlos.

    Ich habe meine Frage ins Access-Forum gestellt, da es sich für mich als ein Verbindungsproblem von Access zum SQL-Server darstellt. Die Verbindung zu Access scheint zu funktionieren, nur der Rückweg - das Insert into <<ACCESSTABELLE>> SELECT <<SQL_Server-Tabelle>> -schlägt fehl. Ich habe bereits verschiendste Connectionstrings ausprobiert, leider stets ohne Erfolg. Inzwischen weiss ich gar nicht mehr, was ich alles versucht habe. :-(

    Viele Grüße

    Martin

    Donnerstag, 25. August 2011 08:18
  • Hallo,

    MCofalka wrote:

    Ich habe meine Frage ins Access-Forum gestellt, da es sich für mich als
    ein Verbindungsproblem von Access zum SQL-Server darstellt. Die
    Verbindung zu Access scheint zu funktionieren, nur der Rückweg - das
    Insert into <<ACCESSTABELLE>> SELECT <<SQL_Server-Tabelle>> -schlägt
    fehl.

    Naja, vordergruendig vielleicht, aber du nutzt dafuer Methoden vom SQL
    Server, und die schlagen seitens SQL Server fehl.

    Ich habe bereits verschiendste Connectionstrings ausprobiert,
    leider stets ohne Erfolg.

    Ich hab ein bisschen gestoebert und es sieht aus, als muesse man fuer den
    Zugriff von 64-bit eine 32-bit mdb mit einem 32-bit-Treiber zugreifen. Hier
    wird ein Workaround erklaert:

    http://information-management-enabled.blogspot.com/2005/11/access-database-from-sql-200564.html

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Donnerstag, 25. August 2011 14:11
    Moderator
  • Guten Morgen Peter,

    sorry wegen der späten Rückmeldung. Ja, dese Ansätze habe ich auch verfolgt. Leider ohne Erfolg. Auch das Anlegen einer 32-Bit DSN hat keinen Erfolg gebracht. Inzwischen haben wir das Ändern des Exports ins Auge gefasst, sodass wir unter Verwendung von OpenDataSource die Access Datenebanken füllen.

    Vielen Dank für die Mühe.

    Viele Grüße und einen guten Start in die Woche.

    Martin

    Montag, 29. August 2011 05:48
  • Hallo Martin,

    warum verwendest Du nicht ein SSIS-Paket?

    Damit hast Du die vollständige Kontrolle und kannst die Daten auch zeitgesteuert verteilen.

    BTW: sp_oa... solltest Du nach Möglichkeit nicht verwenden, da diese Prozeduren synchron verarbeitet werden.

    Damit kannst Du dir im worst case das System halt lahmlegen.
    Auch ein Grund, warum man xp_sendmail auf DECOM hat und stattdessen Database Mail verwenden soll :D


    Uwe Ricken

    MCITP Database Administrator 2005
    MCITP Database Administrator 2008
    MCITS Microsoft SQL Server 2008, Database Development

    db Berater GmbH
    http://www-db-berater.de
    Montag, 29. August 2011 15:36