Ich versuche, die Anwendung auf einem Client-Computer (Win 11 Home) auszuführen und eine Verbindung zu einer Datenbank auf dem Host-Computer herzustellen.
Ich habe eine Reihe von Schritten durchlaufen, ohne meine Anwendung auszuführen, um die Verbindung zu testen und. Es hat eine Weile gedauert, die Dinge zu konfigurieren, aber mit SQL Management Studio kann ich eine Verbindung vom Client-Computer zum Host-Computer herstellen und alle Tabellen sehen. Ich habe in diesem Thread über diesen Prozess gepostet.
Ich habe verschiedene Verbindungsmethoden ausprobiert, sowohl mit SQLConnect() als auch mit SQLDriverConnect() und bin völlig verblüfft. Eine Handvoll der verschiedenen Versuche können Sie hier sehen (einige scheitern natürlich auch auf dem Host):
Code: Select all
//strcpy_s((char*)szConnStrIn, sizeof(szConnStrIn), "DRIVER={ODBC Driver17 for SQL Server};SERVER=SQLEXPRESS;DATABASE=master;Trusted_Connection=Yes;");
//strcpy_s((char*)szConnStrIn, sizeof(szConnStrIn), "DSN=SQLExpress;DATABASE=;Trusted_Connection=Yes;");
//strcpy_s((char*)szConnStrIn, sizeof(szConnStrIn), "DSN=\\SQLExpress;DATABASE=;Trusted_Connection=Yes;");
//strcpy_s((char*)szConnStrIn, sizeof(szConnStrIn), "Server=\\SQLExpress;DSN=SQLExpress;Trusted_Connection=YES;");
//strcpy_s((char*)szConnStrIn, sizeof(szConnStrIn), "Server=tcp:;DSN=SQLEXPRESS;DATABASE=;UId=;PWD=
;Trusted_Connection=NO;TrustServerCertificate=yes;ENCRYPT=no;");
//strcpy_s((char*)szConnStrIn, sizeof(szConnStrIn), "Server=;DSN=SQLEXPRESS;DATABASE=;UId=;PWD=;Trusted_Connection=NO;TrustServerCertificate=yes;ENCRYPT=no;");
//strcpy_s((char*)szConnStrIn, sizeof(szConnStrIn), "Server=tcp:,1433;DSN=SQLEXPRESS;DATABASE=;UId=;PWD=;Trusted_Connection=NO;TrustServerCertificate=yes;ENCRYPT=no;");
strcpy_s((char*)szConnStrIn, sizeof(szConnStrIn), g_sConnectionString);
iReturn = SQLDriverConnect(sqlConnection, AfxGetMainWnd()->GetSafeHwnd(), szConnStrIn, SQL_NTS, szConnStrOut, sizeof(szConnStrOut), &pcbConnStrOut, SQL_DRIVER_NOPROMPT);
//iReturn = SQLConnect(sqlConnection, (SQLCHAR*)dsnName, SQL_NTS, (SQLCHAR*)userID, SQL_NTS, (SQLCHAR*)passwd, SQL_NTS);
DiagnosticOutput(iReturn, "BECSQLDatabase::InitSystem()", sqlConnection);
ErrorOutput("BECSQLDataBase::InitSystem()", sqlConnection);
Der Fehler, den ich von der Diagnose erhalte, ist „Datenquellenname nicht gefunden und kein Standardtreiber angegeben“
Kann jemand vorschlagen, was mir hier fehlt? Die Angabe des Treibers scheint nicht zu helfen, aber vielleicht habe ich den falschen Treiber oder die falsche Syntax.
Mobile version