ODBC-Treiber für MS-SQL dynamisch erzeugen



  • Hi zusammen ich will meine DSN dynamisch erzeugen, weiß eigentlich auch wie, nur klappt es bei mir nur mit ACCESS und nicht mit MS SQL Server. Kann mir jemand zu folgenden ACCESS-Werten die equivalenten MS-SQL-Werte sagen?

    #define ODBCDRIVER		"Microsoft Access Driver (*.mdb)"
    #define DSN				"DSN=ACR\0"
    #define DESCRIPTION		"Description=ACR\0"
    #define FILETYPE		"FileType=Access\0"
    #define DBPFAD			"DBQ=H:\\AV\\OA_TEST\\ADMIN\\Tools\\Dokumentenverwaltung_Arbeitsanweisung\\ACR.mdb\0"
    #define SCANROWS		"MaxScanRows=20\0"
    

    So geht es mit ACCESS! Wie müssen meine defines bei MS-SQL aussehen?





  • ich glaub das isses, werd es gleich mal probieren.
    Vielen Dank



  • hm also irgendwie klappt das doch nicht so ganz wie ich das wollte. Ich mach

    SQLConfigDataSource(NULL, // Handle des Fensters, welsches die Registrierung durchführt
    	ODBC_ADD_SYS_DSN, // Ein Datensatz soll hinzugefügt werden
    	ODBCDRIVER,
    	"Server=RAEDV10\0"
    	"Database=dbo.TRWErgebnisse\0"
    	"Uid=anyusr\0"
    	"Pwd=anyusr\0"
    	);
    

    Aber es will nicht funktionieren. Datenquellenname unbekannt!
    Wenn ich es von Hand mache, sagt er mir aber Verbinden mit RADEV10.



  • Fehlt hier nicht der DSN?



  • OK aber so geht es leider auch nicht

    SQLConfigDataSource(NULL, ODBC_ADD_SYS_DSN, 
    	ODBCDRIVER,
    	"DSN = ACR \0"
    	"Description = ACR \0"
    	"Server=RAEDV10 \0"
    	"Database=(Standard) \0"
    	"Uid=anyusr\0"
    	"Pwd=anyusr\0"
    	);
    


  • Und was steht in ODBSTREIBER drin?



  • Ups Sorry

    SQLConfigDataSource(NULL, // Handle des Fensters, welsches die Registrierung durchführt
    	ODBC_ADD_SYS_DSN, // Ein Datensatz soll hinzugefügt werden
    	"SQL Server",
    	"DSN = ACR \0"
    	"Description = ACR \0"
    	"Server=RAEDV10 \0"
    	"Database=(Standard) \0"
    	"Uid=anyusr\0"
    	"Pwd=anyusr\0"
    	);
    


  • Läuft's jetzt? Falls ja, kannst du nochmals den kompletten Code posten?

    Merci



  • nein es läuft leider nicht, er bringt mir immer noch die oben genannte Fehlermeldung. Da werden wohl die Attribute die ich übergebe nicht richtig oder nicht in der richtigen Reihenfolge sein, aber ich finde nirgendwo ne wirkliche Lösung für folgendes Problem.
    Jemand vielleicht noch ne Idee?



  • Hallo

    fehlen da nicht einige ',' ?

    MfG
    Klaus



  • OK kann mir bitte irgendwer mal ein ganz konkretes Beispiel schicken wie ich ne DSN dynamisch erzeuge für einen MS-SQL-Server? Denn so geht es auch nicht:

    SQLConfigDataSource(NULL, // Handle des Fensters, welsches die Registrierung durchführt
    	ODBC_ADD_SYS_DSN, 
    	"SQL Server",
    	"Server=RAEDV10;\0"
    	"Database=dbo.TRWErgenisse;\0"
    	"Uid=anyusr;\0"
    	"Pwd=anyusr;\0");
    


  • Jetzt gehts!! 😃
    Also wer so ein Problem hat:
    ⚠ ⚠ keine Leerzeichen vor oder nach dem =
    ⚠ ⚠ Casesensitive also auch Groß und Kleinschreibung beachten
    Jo dann gibt es noch so sachen beim testen immer schön den DSN Eintrag raus löschen. Ich hatte es vorhin schon mit Uid laufen, jetzt zickt er wieder rum, werde mich dann nochmal mit der Lösung melden wenn es richtig klappt.

    Danke an alle die mit mir gelitten haben und mir geholfen haben das Problem zu beheben. 😃



  • So geht es hier mal meine ganze Fkt:

    void CACRSQLSet::CreateDSN()
    {
    	SQLConfigDataSource(NULL,
    	ODBC_ADD_SYS_DSN, 
    	"SQL Server",
    	"DSN=ACR\0"
    	"Description=ACR\0"
    	"Server=RAEDV10\0"
    	"Database=(Standard)\0"
    	);
    }
    

    Description ging komischer weise nur wenn Database unten steht ohne ging es nicht. UID und PWD hab ich noch nicht raus bekommen wo der hacken liegt, aber vielleicht bekomm ich es ja noch raus, dann melde ich mich wieder!
    🙂 😃 😉 🙂 😃 😉


Anmelden zum Antworten