2013-01-15 63 views
0

是一個VC++ ODBC連接字符串,它是Unicode。如何使其具有通用性?例如:我可以輸入用戶名,密碼爲不同的數據庫。ODBC連接字符串

SQLDriverConnect (sqlconnectionhandle, 
      NULL, 
      L"Driver={SQL Server};Server=123.1.78.100, 1433;Database=DB1;Uid=user123;Pwd=pw123;", 
      SQL_NTS, 
      retconstring, 
      1024, 
      NULL, 
      SQL_DRIVER_NOPROMPT) 

我想這一點,但不工作:

string serverIp = "123.1.78.100, 1433"; 
string db_name = "DB1"; 
string user_id = "uesr123" 
string pwd = "pw123"; 


string ss; 
      ss.append("Driver={SQL Server};Server="); 
      ss.append(serverIP); 
      ss.append(";Database="); 
      ss.append(dbName); 
      ss.append(";Uid="); 
      ss.append(uId); 
      ss.append(";Pwd="); 
      ss.append(pw); 
      ss.append(";"); 

SQLDriverConnect (sqlconnectionhandle, 
      NULL, 
      (wchar_t*)ss.c_str(), 
      SQL_NTS, 
      retconstring, 
      1024, 
      NULL, 
      SQL_DRIVER_NOPROMPT) 
+0

請告訴我錯在哪裏在您的通用連接使代碼之前?有什麼樣的錯誤?如果是這樣,請附上錯誤信息。 – Dipak

+0

錯誤消息「數據源名稱找不到和未指定默認驅動程序」 – hkdeveloper758

+0

這意味着你沒有創建一個同名的數據庫...創建連接到數據庫之前,創建它。並嘗試一下。 – Dipak

回答

0

我想是這樣的:(而對於所提到的數據庫是存在那裏。)它工作得很好。

String ss; 
      ss = ("Driver={SQL Server};Server="); 
      ss = ss + (serverIp); 
      ss = ss + (";Database="); 
      ss = ss + (db_name); 
      ss = ss + (";Uid="); 
      ss = ss + (uId); 
      ss = ss + (";Pwd="); 
      ss = ss + (pwd); 
      ss = ss + (";"); 

確保創建有關數據庫的名字...的製作與數據庫的連接

+0

通過使用SQLDriverConnectA()可以解決問題 – hkdeveloper758