读书人

vc sql2000 连接数据库失败! Unknown

发布时间: 2012-12-15 15:16:03 作者: rapoo

vc sql2000 连接数据库失败! Unknown error 0x800A0CC1
连接数据库失败!
错误信息:Unknown error 0x800A0CC1


http://bbs.csdn.net/topics/30156411
这显然是一个错误号而不是错误的地址。

msdn的解释如下:Item cannot be found in the collection corresponding to the requested name or ordinal.

见http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdaenumdm_2.asp

对于ado不是很熟,在往下就不知道了。

代码

sql="select * from test";
m_pRecordset = m_AdoConn.GetRecordSet((_bstr_t)sql);

try
{
m_pRecordset-> AddNew();
m_pRecordset-> PutCollect( "ID ", _variant_t("1"));
m_pRecordset-> Update();
}catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
} catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}


执行到 m_pRecordset-> PutCollect( "ID ", _variant_t("1"));
报错

什么原因啊?

[最优解释]
ID列名是否正确。
[其他解释]
sql="select * from test";
m_pRecordset = m_AdoConn.GetRecordSet((_bstr_t)sql);
取没取出来东东很值得怀疑啊
[其他解释]
ID列名是正确。。。。
[其他解释]
sql="select * from test";
m_pRecordset = m_AdoConn.GetRecordSet((_bstr_t)sql);
取没取出来东东很值得怀疑啊

作用是 选择到test表,要给该表添加新记录
[其他解释]
直接用_CommandPtr去执行条插入语句不就行了?你这么弄我觉得明显是给得到的数据集里面添加,和给数据表添加完全两码事吧?
[其他解释]
"select * from test",sqlserver是这么选择表的?我怎么觉得是select 、use
[其他解释]
用m_pRecordset-> PutCollect( "ID ", _variant_t("1"));为什么实现不了
[其他解释]

引用:
用m_pRecordset-> PutCollect( "ID ", _variant_t("1"));为什么实现不了

这又不是往你的表里面插的吧?
[其他解释]
m_pRecordset-> PutCollect( "ID ", _variant_t("1"));插到test表
[其他解释]
m_pRecordset->CursorLocation = adUseClient;
m_pRecordset->Open("select * from test", // 查询表中所有字段
m_AdoConn.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
m_pRecordset-> MoveFirst();
m_pRecordset->Requery(adOptionUnspecified);
m_pRecordset-> AddNew();
m_pRecordset-> PutCollect( "ID ", _variant_t("1"));
m_pRecordset-> Update();

[其他解释]
error C2039: 'GetInterfacePtr' : is not a member of 'ADOConn'
[其他解释]
try
{
m_pRecordset-> AddNew();
m_pRecordset-> PutCollect( "ID ", _variant_t("1"));
m_pRecordset-> Update();
} catch(_com_error *e)

m_pRecordset-> PutCollect( "ID ", _variant_t("1"));
改为
m_pRecordset-> PutCollect( "ID", _variant_t("1")); ID里面不能有空格

[其他解释]
谢谢hfz8867879、 oyljerry、大家,结贴给分

读书人网 >VC/MFC

热点推荐