为什么不能关(ADO),Why,Why,Why,Why,Why,Why,Why

Miken 2001-02-14 05:31:00
我用SQL语句在库中插入一个新表后,想关闭它,却总是出错?
_RecordsetPtr m_pRecordset;
_ConnectionPtr m_pConnection;
try{
m_pConnection->ConnectionString = L"driver={sql server};server=(local);Database=skii;UID=sa;PWD=;";
m_pConnection->Open("","","",-1);
m_pRecordset->Open("CREATE TABLE newBill(is_new INTEGER,bill_id CHAR(13))",
(IDispatch*)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
if (m_pRecordset)
{
m_pRecordset->Close(); //在这里将错误
}
m_pConnection->Close();
}
catch(_com_error* e)
{
AfxMessageBox(e->ErrorMessage());
}
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhq2000 2001-02-15
  • 打赏
  • 举报
回复
大哥!Recordset 是用来存放结果集的,不是用来发操作命令的。直接使用Connection或Command! 在你的程序中,Recordset的状态是不可用的,调用Close当然出错啦!所以不用关闭。
改成:

m_pConnection->Execute("CREATE TABLE newBill(is_new INTEGER,bill_id CHAR(13))", &vtMissing , adCmdText);

//or
_CommandPtr pAdoCmd(__uuidof(Command));
pAdoCmd->ActiveConnection = m_pConnection;
pAdoCmd->CommandText = "CREATE TABLE newBill(is_new INTEGER,bill_id CHAR(13))";
pADoCmd->CommandType = adCmdText;
pAdoCmd->Execute(&vtMissing , &vtMissing , adCmdText);

Command 是用来执行SQL命令或Stored Procedures 的!
bigjim 2001-02-14
  • 打赏
  • 举报
回复
错误现象是什么,有什么提示?
Miken 2001-02-14
  • 打赏
  • 举报
回复
拜托各位高手,赐教,赐教,赐教!!!

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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