0

VC++ では、ODBC を使用してデータベースに次の文字列で接続しました。

SQLDriverConnect (sqlconnectionhandle, 
             NULL, 
             L"Driver={SQL Server};Server=serverIP, 1433;Database=DBName;Uid=aaa;Pwd=bbb;",
             SQL_NTS, 
             retconstring, 
             1024, 
             NULL,
             SQL_DRIVER_NOPROMPT))

私の質問は、ハードコーディングせずに一般的に userName と userPw を入力する方法です。

ここで、L は Unicode を意味します。

例: (この例は機能しません)

SQLWCHAR userName = L"aaa";
SQLWCHAR userPw = L"bbb";
SQLWCHAR connString = L"Driver={SQL Server};Server=serverIP, 1433;Database=DBName;Uid=" + userName + ";Pwd=" + userPw + ";",

連結文字列の例を次に示します:(動作します!)

wchar_t* subString = L" currentDate = '2013-01-04' ";

SQLWCHAR queryString[] = L"select * from Table1 WHERE ";
wcscat_s(queryString, subString );
4

2 に答える 2

0

最後に、SQLBindParameterを使用してSQLStatementをバインドし、SQLExecDirectを使用してステートメントを実行しました。

eg: SQLExecDirect(sqlstatementhandle, queryString, SQL_NTS)
于 2013-01-15T08:41:45.490 に答える
0

L"stringName" は、これが Unicode 文字列であることを意味します。SQLDriverConnectA を使用すると問題を解決できます。

例えば:

SQLDriverConnectA(sqlconnectionhandle, 
         NULL, 
         "Driver={SQL Server};Server=serverIP, 1433;Database=DBName;Uid=aaa;Pwd=bbb;",
         SQL_NTS, 
         retconstring, 
         1024, 
         NULL,
         SQL_DRIVER_NOPROMPT))
于 2013-01-16T07:48:56.863 に答える