:RC2は値を取得する一方SQLDriverConnectをエラーなし診断出力
int DatabaseHelper::ConnectDatabase()
{
SQLSMALLINT i, MsgLen;
SQLWCHAR SqlState[6];
SQLRETURN rc2;
SQLINTEGER NativeError[1];
SQLWCHAR Msg[SQL_MAX_MESSAGE_LENGTH];
retCode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlEnvHandle);
if (retCode != SQL_SUCCESS)
return retCode;
retCode = SQLSetEnvAttr(sqlEnvHandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
if (retCode != SQL_SUCCESS)
return retCode;
retCode = SQLAllocHandle(SQL_HANDLE_DBC, sqlEnvHandle, &sqlConnectionHandle);
if (retCode != SQL_SUCCESS)
return retCode;
retCode = SQLDriverConnect(sqlConnectionHandle, NULL, (SQLWCHAR*)L"Driver={SQL Server Native Client 11.0};Server = 192.168.56.56\SQLEXPRESS;Database = PCTOOLS; Uid = sa; Pwd = delphi2006; ", SQL_NTS, retConString, 1024, NULL, SQL_DRIVER_NOPROMPT);
i = 1;
rc2 = SQLGetDiagRec(SQL_HANDLE_STMT, sqlConnectionHandle, i, SqlState, NativeError,
Msg, sizeof(Msg), &MsgLen);
return retCode;
}
実行している場合は、RETCODEは、値-1を取得-2。 SqlState、NativeError、またはMsgに返される値はありません(初期化されていない値のままです)。 私はVisual C++ 2015を使用しています。
そして、あなたがCとthat'sa問題を考える++ ? –