帮忙看看是什么原因

javavc 2005-02-17 05:05:00
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance(__uuidof(Recordset));
try{
AfxMessageBox("hdddasssh");
m_pRecordset->Open("SELECT * FROM user",
_variant_t((IDispatch*)m_pConnection,true),
adOpenDynamic,
adLockOptimistic,
adCmdText); //程序运行到这的时候出现一个runtime error
AfxMessageBox("hasssh");
}
catch(_com_error *e){
AfxMessageBox(e->Description());
}

在vc中用ADO连接数据库,m_pConnection是_ConnectionPtr,初始化没问题
m_pConnection.CreateInstance(__uuidof(Connection));
try{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);
}
catch(_com_error e){
AfxMessageBox("数据库连接失败,确认数据库Demo.mdb是否在当前路径下!");
return FALSE;
}

菜鸟问题,帮帮忙,100的送
...全文
147 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
javavc 2005-02-18
  • 打赏
  • 举报
回复
问题已经解决.3x
hjunxu 2005-02-18
  • 打赏
  • 举报
回复
那么请在执行这个话前面看看你的参数是否有效,会不会你不小心在哪里改变了值。或者压根就搞错了对象
javavc 2005-02-18
  • 打赏
  • 举报
回复
...........很多方法我都试过乐,就是找不到问题所在
hjunxu 2005-02-18
  • 打赏
  • 举报
回复
楼主你这样写“catch(_com_error *e)”有问题的。他抛出的是个_com_error对象,你当指针用啊。
所以catch(_com_error e)或catch(_com_error& e)
javavc 2005-02-18
  • 打赏
  • 举报
回复
回复人: sboom(+-LingCh-+)(怪你过分美丽) ( ) 信誉:90
HRESULT hr=m_pRecordset.CreateInstance(__uuidof(Recordset));

SUCCEEDED(hr)成功乐, 这个问题猥琐乐1天乐,100分啊,大家都来顶
dasiu 2005-02-18
  • 打赏
  • 举报
回复
ADODC的更新UPDATE(VARIANT,VARIANT)中变量的默认数值是什么?如果更新,不带参数为什么提示参数不足?如何解决。。。
hjunxu 2005-02-18
  • 打赏
  • 举报
回复
要么m_pConnection是非法的,要么m_pRecordset是非法的。
sboom 2005-02-18
  • 打赏
  • 举报
回复
HRESULT hr=m_pRecordset.CreateInstance(__uuidof(Recordset));
看看hr是什么
sboom 2005-02-17
  • 打赏
  • 举报
回复
::coInitiallize()
::coUninitialliz()
没有调用吧.
hyamw 2005-02-17
  • 打赏
  • 举报
回复
username, userpass都是什么类型的字段?
m_pConnection->Execute((_bstr_t)("INSERT INTO USER (username,userpass) VALUES(1,2)"),NULL,adCmdText);//都是数值?
javavc 2005-02-17
  • 打赏
  • 举报
回复
我将上面的程序换成
CString sql;
sql.Format("INSERT INTO USER (username,userpass) VALUES('%s','%s')",
m_username,m_userpass);
try{
m_pConnection->Execute((_bstr_t)("INSERT INTO USER (username,userpass) VALUES(1,2)"),NULL,adCmdText);
}

在try中产生异常,说是INSERT语法错误,并且告诉我表已经存在.

一直都用java操作数据库,没想到vc访问数据库这么麻烦,汗................
javavc 2005-02-17
  • 打赏
  • 举报
回复
to: wxshzf(oldriver)
你说的我都加入了,我是按照例子写的.

to: xjtuzhw
我只是写一个简单的例子,你说的内存释放指的是哪个方面?
xjtuzhw 2005-02-17
  • 打赏
  • 举报
回复
贴出来的语句没有错误的,查一下指针和内存释放的问题吧
wxshzf 2005-02-17
  • 打赏
  • 举报
回复
首先要导入msado.dll
其次可能还要有AfxInitOle()函数

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧