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 回答