【发布时间】:2015-06-02 08:09:48
【问题描述】:
我正在编写函数来调用 Oracle 中的存储过程。当尝试调用 SQLConnectA 时,它会失败,并且 SQLGetDiagRec 返回一些奇怪的数字,这些数字看起来像内存地址而不是诊断消息。产生此错误的代码是
ret = SQLConnectA(hORAdbc, (SQLCHAR*)DCDSN.c_str(), DCDSN.length(), (SQLCHAR*)DCUSR.c_str(), DCUSR.length(), (SQLCHAR*)DCPWD.c_str(), DCPWD.length());
if (ret != SQL_SUCCESS) {
rc = SQLGetDiagRec(SQL_HANDLE_DBC, hORAdbc, 1, SqlState, &NativeError, Msg, sizeof(Msg), &MsgLen);
appfile << "MAIN:SQLConnectA hORAdbc> SQLSTATE: " << SqlState << " NativeError: " << NativeError << " Msg: " << Msg << endl;
return 0;
}
注意:appfile 是 ofstream 对象(用于记录的文本文件)
这种行为的原因在哪里?
【问题讨论】: