Verbindung mit SQL Server herstellen / SQLDRIVERCONNECT
-
Hallo,
ich versuche verzweifelt eine Verbindung mit SQL Server Express herzustellen und nutze dafür folgenden Quellcode:
SQLDriverConnect (sqlconnectionhandle, NULL, (SQLWCHAR*) "DRIVER=SQL Server;SERVER=laptop\\sqlexpress;Trusted_Connection=yes", SQL_NTS, (SQLWCHAR*) OutConnStr, 255, &OutConnStrLen, SQL_DRIVER_NOPROMPT)
Ich bekomme immer einen SQL_ERROR zurück.
[Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben --- IM002
Ich habe die verschiedensten Varianten im Connectstring getestet, aber ohne Erfolg.
Gehe ich über SQL_DRIVER_PROMPT und wähle aus den installierten ODBC Treibern (systemseuerung --> Verwaltung --> Datenquellen (ODBC)) aus, funktioniert es einwandfrei.
SQLDriverConnect (sqlconnectionhandle, this->GetSafeHwnd, (SQLWCHAR*) "DRIVER=SQL Server;SERVER=laptop\\sqlexpress;Trusted_Connection=yes", SQL_NTS, (SQLWCHAR*) OutConnStr, 255, &OutConnStrLen, SQL_DRIVER_PROMPT)
Das heißt, dass ich nicht allzu weit weg sein kann...
Eventuell verstehe ich etwas falsch mit dem Datenquellennamen oder beim Standardtreiber, so wie die Fehlermeldung lautet.
Wo finde ich denn den korrekten Datenquellennamen und den Standardtreiber in den Einstellungen?
Danke und Grüße
BOA
-
Hier gibst Beispiele:
http://www.connectionstrings.com/sql-server-2005#p3Ansonsten wie immer in der MSDN:
http://msdn.microsoft.com/en-us/library/ms811006.aspx
-
Hi Martin,
danke für Deine Hinweise.
Beide Seiten habe ich beim Googlen kennengelernt, bevor ich hier gepostet habe.Gerade in "http://www.connectionstrings.com/sql-server-2005#p3" hatte ich große Hoffnungen gesetzt.
Keine der dort aufgeführten Varianten hat funktioniert.
Du hast mich auf den Abschnitt "SQL Server Native Client 10.0 ODBC Driver" gelinkt. War das Absicht, denn es ist ja nicht der erste Abschnitt...
Falls ja, warum?Ich weiß schlicht nicht, wo ich in den Systemeinstellungen prüfen muss, welcher "Driver" der richtige ist...
Grüße und Danke
BOA
-
Hi,
der Vollständigkeit halber.
Ich habe die Lösung gefunden. Es war ein Konvertierungsfehler meinerseits.
SQLDriverConnect (sqlconnectionhandle, NULL, [b](SQLWCHAR*) [/b]"DRIVER=SQL Server;SERVER=laptop\\sqlexpress;Trusted_Connection=yes", SQL_NTS, (SQLWCHAR*) OutConnStr, 255, &OutConnStrLen, SQL_DRIVER_NOPROMPT)
Tausche ich (SQLCHAR*) gegen _T() funktioniert es sofort....
SQLDriverConnect (sqlconnectionhandle, NULL, [b]_T[/b]("DRIVER=SQL Server;SERVER=laptop\\sqlexpress;Trusted_Connection=yes"), SQL_NTS, (SQLWCHAR*) OutConnStr, 255, &OutConnStrLen, SQL_DRIVER_NOPROMPT)
Die Erkentnis kam mir übrígens, als ich mit der funktionierenden Variante den Rückgabestring "OutConnStr" ausgewertet habe und dort gesehen habe, dass die Konvertierung mit (SQLWCHAR*) Leerzeichen in den Connectionstring einfügte.
D R I V E R = S Q L S e r v e r ; S E R V E R = l a p t o ....
Kaum macht man es richtig, schon funktioniert es, würde mein Lehrer sagen...
Grüße
BOA