none
Access_DB Anbindung mit Variable RRS feed

  • Frage

  • Nutze OLEDB-Anbindung

    dbProv =

    "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\NM_View\KB_DB.mdb"

     

    ' dbSource1 = " Data Source="

     

    ' dbSource2 = str_KB01 + "\KB_DB.mdb;"

     

    ' dbSource3 = ";Jet OLEDB:Database Password ="

     

    ' dbSource3 = ";Jet OLEDB:Database Password = KB"

    Con.ConnectionString = dbProv

     

    ' & dbSource1 & dbSource2

     

    ' & dbSource3

    und möchte eigentlich die Pfadangabe als Variable(aus INI-Datei) übergeben. Bei der Entwicklungsumgebung kein Problem. Bei Nutzung auf anderem System kommt die Meldung "Installierbares ISAM nicht gefunden". Also erst einmal den Connection-String fest verdrahtet - siehe oben - und die variable Lösung auskommentiert. Das funktioniert. Hilft mir aber auf Dauer nicht weiter.

    Was muss ich anpassen?

     

    Danke im Voraus

    Mittwoch, 17. November 2010 10:35

Antworten

  • Hallo zusammen,

    Eure Vermutung mit der dem INI-Eintrag war richtig. Bei meiner händischen INI war alles korrekt, bei der INI, die per Setup eingerichtet wurde und den Verweis auf das Arbeitsverzeichnis sicherstellen sollte, war zusätzlich ein "=" eingefügt, sodaß es bei der Soruce-Angabe zu einem Fehler kam.

    Herzlichen Dank für Eure Bemühungen

    Gruß Norbert

    • Als Antwort markiert Norbert Mende Freitag, 19. November 2010 06:24
    Freitag, 19. November 2010 06:21

Alle Antworten

  • Hi,

    da fehlt AFAICS nur "Provider=Microsoft.Jet.OLEDB.4.0;" im ConnectionString.

    Wenn der Rest eh statisch ist, könntest Du es bspw. so machen:

    dbProv = String.Format( "Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}\KB_DB.mdb; Jet OLEDB:Database Password=KB;", <VariableFürPfad> )

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Mittwoch, 17. November 2010 11:11
    Moderator
  • Hallo Stefan,

    habe Deinen String eingebaut, funktioniert auf dem Entwicklungsrechner, auf dem Zielrechner leider wieder das unbefriedigende Ergebnis "Installierbarers ISAM nicht gefunden". Als die Variable wieder fest verdrahtet, dann läuft es.

    Fällt Dir dazu noch etwas ein?

    Gruß Norbert

    Donnerstag, 18. November 2010 06:16
  • Hallo Norbert,

    habe Deinen String eingebaut, funktioniert auf dem Entwicklungsrechner, auf dem Zielrechner leider wieder das unbefriedigende Ergebnis "Installierbarers ISAM nicht gefunden". Als die Variable wieder fest verdrahtet, dann läuft es.

    wenn die Strings absolut identisch sind, kann das nicht sein. Da dürfte dann eher doch was in deinem Code (oder dieser ominösen Ini-Datei) nicht stimmen.

    Nur zur Sicherheit:

      dbProv = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\NM_View\KB_DB.mdb; Jet OLEDB:Database Password=KB;"

    funktioniert?

      dbProv = String.Format( "Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}\KB_DB.mdb; Jet OLEDB:Database Password=KB;", "D:\NM_View" )

    funktioniert nicht?

    Oder steht evtl. in der Ini-Datei was ganz anderes?

    Lass dir mal dbProv ausgeben. Wenn der String identisch ist und mit einer fixen Variante funktioniert, muss er mit der anderen Variante auch funktionieren, ansonsten sind die Strings eben doch nicht identisch.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Donnerstag, 18. November 2010 07:35
    Moderator
  • Hallo Norbert,

    ergänzend zu Stefans Antworten:

    Tue Dir selbst einen Gefallen und verwende den OleDbConnectionStringBuilder
    Weiteres siehe auch: Arbeiten mit Verbindungszeichenfolgen

    Der Jet Treiber wiederum ist auf allen aktuellen Betriebssystemen enthalten.
    Nur für ganz alte Schätzchen wäre noch erforderlich:
    So erhalten Sie das aktuelle Service Pack für die Microsoft Jet 4.0-Datenbank-Engine

    Gruß Elmar

    Donnerstag, 18. November 2010 13:54
    Beantworter
  • Hallo zusammen,

    Eure Vermutung mit der dem INI-Eintrag war richtig. Bei meiner händischen INI war alles korrekt, bei der INI, die per Setup eingerichtet wurde und den Verweis auf das Arbeitsverzeichnis sicherstellen sollte, war zusätzlich ein "=" eingefügt, sodaß es bei der Soruce-Angabe zu einem Fehler kam.

    Herzlichen Dank für Eure Bemühungen

    Gruß Norbert

    • Als Antwort markiert Norbert Mende Freitag, 19. November 2010 06:24
    Freitag, 19. November 2010 06:21
  • Hallo Norbert,

    da dein Posting ja nicht die Antwort beinhaltet, sondern nur die Erklärung, wäre es prima, wenn Du das/die Posting(s) als Antwort markieren könntest, die dich zur Lösung gebracht haben.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Freitag, 19. November 2010 07:24
    Moderator