2013-01-15 2 views
0

은 여기에 하나의 VC++ ODBC 연결 문자열이며 유니 코드입니다. 그것을 일반화하는 방법? 예 : 사용자 이름, 다른 데이터베이스의 암호를 입력 할 수 있습니다. 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