读书人

vc6.0查询数据库中数据总是出现有关

发布时间: 2012-12-14 10:33:08 作者: rapoo

vc6.0查询数据库中数据,总是出现问题Unknown error 0x800A0BCD
代码如下:
下面代码的主要是想查询数据库中是否有sim元素,大家帮帮忙看看,先谢谢啦!

bool CConDB::SearchDB(CString telnum)
{
CoInitialize(NULL);
_ConnectionPtr m_pAppConn;
HRESULT hResult;
try
{
hResult = m_pAppConn.CreateInstance(("ADODB.Connection"));///创建Connection对象
if(SUCCEEDED(hResult))
{
m_pAppConn->Open("Provider=SQLOLEDB.1;Server=221.119.113.44,6960;DATABASE=Lbs_test;UID=sa;PWD=123abc;","","",adModeUnknown);
::WritePrivateProfileString("查询数据库故障","连接数据库","成功",".\\log.txt");
}
//日志文件中,数据库连接成功,问题应该出现在一下代码
_CommandPtr m_pCommand;
_RecordsetPtr m_pRecordset;
m_pCommand.CreateInstance("ADODB.Command");

_variant_t vNULL;
vNULL.vt = VT_ERROR;
vNULL.scode = DISP_E_PARAMNOTFOUND;///定义为无参数
m_pCommand->ActiveConnection = m_pAppConn;///非常关键的一句,将建立的连接赋值给它
m_pCommand->CommandText = "SELECT * FROM T_TRAJECTORY_CURRENT";///命令字串

m_pRecordset = m_pCommand->Execute(&vNULL,&vNULL,adCmdText);///执行命令,取得记录集
m_pRecordset->MoveFirst();
while(m_pRecordset->adoEOF)
{

_variant_t var;
var = m_pRecordset->GetCollect(("SIM"));
if((var.vt!=VT_NULL)&&(telnum.Compare((LPCTSTR)_bstr_t(var))==0))
{
//CString strtemp;
//strtemp = (LPCTSTR)_bstr_t(var);
//::WritePrivateProfileString("故障检查","查询的sim卡号",strtemp,".\\log.txt");
return true;

}
else
{
m_pRecordset->MoveNext();
}
return false;
}

}

catch(_com_error e)///捕捉异常
{
::WritePrivateProfileString("查询数据库故障","查询卡异常",e.ErrorMessage(),".\\log.txt");

}

}
[最优解释]
捕获改成这样看是什么错误

try
{
//你的ADO代码
}
catch (_com_error& e)
{
CString strMsg;
strMsg.Format(_T("错误描述:%s\n错误消息%s"),
(LPCTSTR)e.Description(),
(LPCTSTR)e.ErrorMessage());
AfxMessageBox(strMsg);
}

[其他解释]
这句话while(!m_pRecordset->adoEOF)是这样的,刚才贴错了
[其他解释]
引用:
这句话while(!m_pRecordset->adoEOF)是这样的,刚才贴错了
捕获数据库异常Unknown error 0x800A0BCD表示数据库的表为空!
[其他解释]
引用:
捕获改成这样看是什么错误
C/C++ code
try
{
//你的ADO代码
}
catch (_com_error& e)
{
CString strMsg;
strMsg.Format(_T("错误描述:%s\n错误消息%s"),
(LPCTSTR)e.Description(),
(LPCTSTR)e.ErrorMessage());
Afx……
错误提示Unknown error 0x800A0BCD应该是数据库为空,谢谢你的回复,这个问题解决了,现在的新问题是异步多线程,插入数据库的一张表中,一张插入实时数据,一张插入最新的当前数据,问题出现了判断当前表的是否存在上一个元素,返回true,还是false,然后程序就乱了???肿么办,哪里出现问题了

读书人网 >VC/MFC

热点推荐