User DSN mit Borland erstellen



  • Guten Tag
    Damit ich per ODBC auf eine Access Datenbank zugreifen kann, brauche ich eine User DSN. Diese sollte ich in Borland erstellen können um danach die ADOConnection definieren zu können!

    Weiss jemand wie das funktioniert?

    Gruss, Gerhard



  • Was denn nun? ODBC oder ADO? Das sind zwei verschiedene Dinge. Für ADO brauchst Du nur eine entsprechende UDL-Datei.



  • jo und in der *.udl datei muss man einen data source angeben, wenn ich den provider "MSDASQL.1" wähle muss ich unter data source eine user dsn verbindung angebe, welche ich im odbc administrator erstellt habe. und genau diese user dns muss ich aus borland heraus erstellen können, damit's dynamisch wird!

    danke



  • Wozu der Umweg über ADO, wenn Du doch nur ODBC verwenden willst? Der Provider ist 'Microsoft Jet 4.0 ODE DB Provider', dann kann man sich die ODBC Verbindung sparen und direkt die MDB angeben.



  • genau diese variante habe ich auch schon ausprobiert!ich habe Microsoft Jet 4.0 verwendet, dort kann man direkt den Pfad der Datenbank unter Data Source angeben, leider funktionierten die SQL Statements welche ich dann an Access schicke nicht mehr.
    Mit dem MSDASQL Treiber funktionieren sie!

    Mein Programm funktioniert mit diesem ConnectionString einwandfrei:

    ADOConnection2->ConnectionString = "Provider=MSDASQL.1;Data Source=kundendatenbank;Persist Security Info=False;Initial Catalog="C:\test.mdb";";
    

    und mit diesem ConnectionString, bei dem ich als Provider Microsoft Jet 4.0 verwende funktionieren die SQL Statements nicht:

    ADOConnection2->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="C:\test.mdb"";Persist Security Info=False;";
    

    Weisst du wieso sich Borland so verhaltet?



  • oki doki
    nun funktioniert es!!
    es dürfen in der INSERT INTO Answeisung keine Spalten genannt werden, welche einen Leerzeichen dazwischen haben!bei jet ist also ein spaltennamen wie "inspection date" nicht erlaubt!



  • Tabellen- oder Spaltennamen mit Leer- und/oder Sonderzeichen sollte man grundsätzlich vermeiden...
    Normalerweise müssen solche Tabellen- und Spaltennamen dann in Anführungszeichen gesetzt werden. Kann aber sein, dass Access nur Hochkommas (') statt des Anführungszeichens (") annimmt.



  • sql standard sind anführungszeichen bei spalten mit leerzeichen im namen.
    wie aber microsoft ist, hat er hier wieder einen eigenen standard gewählt und man muss die spalten in eckigen klammern schreiben

    sql standard:

    "abc def"

    microsoft:

    [abc def]

    tja


Anmelden zum Antworten