如何执行SQL命令语句?

sxtigerVC 2004-06-22 02:20:59
我用OLE DB写了一段数据连接程序,分别定义了如下内容:
IDBInitlize,IDBCreateSession,IDBCreateCommand,ICommand,ICommandtext.目的是执行一条SQL语句,现在的问题是,在执行完一条语句后,我想执行每二条语句,但如果我重新设置ICommandText执报错,SetCommandText不成功。请问那位有建议或意见,谢谢!
...全文
224 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxtigerVC 2004-06-22
  • 打赏
  • 举报
回复
我执行的这个没有记录集,只是创建一个数据库。
sxtigerVC 2004-06-22
  • 打赏
  • 举报
回复
错误就是非法操作了。
sxtigerVC 2004-06-22
  • 打赏
  • 举报
回复
pCreateCommand->CreateCommand(NULL,IID_ICommandText,(IUnknown
**)&pCommandText);

//执行UPDATE命令
pCommandText->SetCommandText(DBGUID_DBSQL,wSQL);
hr=pCommandText->Execute(NULL,IID_IRowset,NULL,&cNumRows,
(IUnknown**)&pRowset);

if FAILED(hr)
bHasErr=TRUE;
else
printf("\n执行SQL:%S",wSQL);

//执行SELECT命令
pCommandText->SetCommandText(DBGUID_DBSQL,wCmdString);
hr=pCommandText->Execute(NULL,IID_IRowset,NULL,&cNumRows,
(IUnknown**)&pRowset);
if FAILED(hr)
bHasErr=TRUE;
else
printf("\n执行SQL:%S",wCmdString);


和上面的语句几乎是一样的。
只是我在第二个SETCOMMANDTEXT时就返回 hr 失败。
Kudeet 2004-06-22
  • 打赏
  • 举报
回复
是什么错误信息!
你可以直接用记录集来返回啊
sxtigerVC 2004-06-22
  • 打赏
  • 举报
回复
楼上说先前的关闭是什么意思,关闭什么,pCommandText?
sxtigerVC 2004-06-22
  • 打赏
  • 举报
回复
hr = pCommandText->Execute(NULL,IID_IRowset,NULL,&lRows,(IUnknown**)&pRowset);
hr = pCommandText->SetCommandText(DBGUID_DBSQL,wszSQLCreate);//这句就出错了。
hr = pCommandText->Execute(NULL,IID_IRowset,NULL,NULL,(IUnknown**)&pRowset);
if(FAILED(hr))
{
m_strPrompt = _T("数据库创建失败!错误代码:exectue");
UpdateData(FALSE);
return;
}
vclzy 2004-06-22
  • 打赏
  • 举报
回复
同意楼上的
Kudeet 2004-06-22
  • 打赏
  • 举报
回复
有没有把先前的关闭后再执行第二句!

4,017

社区成员

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

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