数据库已经联接上,而且txtSQL已经在SQL中运行是正确,但为何这样执行总是返回FALSE.请大侠赐教!

yutingiee 2004-11-01 05:04:09
_variant_t RecordsAffected;
try
{
if(SUCCEEDED(m_pConnection->Execute(_bstr_t(txtSQL),&RecordsAffected,adCmdText)))
return TRUE;
}
catch (_com_error e)
{
TRACE(_T(":( 数据库执行错误: %s\n"), e.ErrorMessage());
return FALSE;
}


--------------用ADO的方法如下,在Open处报错?----------------

try
{
m_pRecordSet->Open(_variant_t("SELECT * FROM Plate_"+ mstr), // 查询DemoTable表中所有字段
m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
m_pRecordSet->AddNew();
m_pRecordSet->PutCollect("Come_Datetime", _variant_t(plate.GetDateTime()));
m_pRecordSet->PutCollect("Plate_Number", _variant_t(plate.GetPlateCode()));
m_pRecordSet->PutCollect("plate_Type", _variant_t(plate.GetPlateType()));
m_pRecordSet->PutCollect("Image_Path", _variant_t(plate.GetFileName()));
m_pRecordSet->PutCollect("SrcComputer", _variant_t(plate.GetLocalIP()));
m_pRecordSet->PutCollect("Car_Position", _variant_t(plate.GetChannelID()));
m_pRecordSet->Update();
m_pRecordSet->Close();
return TRUE;
}
catch(_com_error *e)
{
TRACE(_T(":( 数据库执行错误: %s\n"));
return FALSE;
}
...全文
61 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yutingiee 2004-11-02
  • 打赏
  • 举报
回复
现在改了一下变成在Update()处弹出此错误.
yutingiee 2004-11-02
  • 打赏
  • 举报
回复
非常感谢二位,如果用m_pConnetion->excute怎么样做??用又如何做,不够另加分,
谢谢!
yutingiee 2004-11-02
  • 打赏
  • 举报
回复
to:: tabby(-_-! .. 内存泄漏) :是内存错误...Unhandled excetion in CFTPSOCKET.exe(Kernel32.Dll):0xE06D7363:Mircrosoft C++ Exception....

to:bohut(伯虎) ( ) :
_variant_t((IDispatch *)theApp.m_pConnection

_pRecordSet->Open(_variant_t("SELECT * FROM Plate_"+ mstr), // 查询DemoTable表中所有字段
_variant_t((IDispatch *)theApp.m_pConnection,// 获取库接库的IDispatch指针
true,
adOpenDynamic,
adLockOptimistic,
adCmdText);

m_pConnetion不是在theapp中定义的而是dialog中,将程序改成如下.
m_pRecordSet->Open(_variant_t(txtSQL), // 查询DemoTable表中所有字段
_variant_t((IDispatch *)m_pConnection),// // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
只能带5个参数,情况依旧.
内存泄漏 2004-11-02
  • 打赏
  • 举报
回复
报的什么错误?你把catch的内容改写一下,把异常内容写出来。。。。。
catch(_com_error &e)
{
AfxMessageBox(e.Description());
}
bohut 2004-11-02
  • 打赏
  • 举报
回复
_variant_t((IDispatch *)theApp.m_pConnection

_pRecordSet->Open(_variant_t("SELECT * FROM Plate_"+ mstr), // 查询DemoTable表中所有字段
_variant_t((IDispatch *)theApp.m_pConnection,// 获取库接库的IDispatch指针
true,
adOpenDynamic,
adLockOptimistic,
adCmdText);
yutingiee 2004-11-02
  • 打赏
  • 举报
回复
tabby(-_-! .. 内存泄漏) ,还是不行,在open处报错,直接用Execute方法可以这样做吗,如何做?
内存泄漏 2004-11-01
  • 打赏
  • 举报
回复
你初始化了COM没有?在打开数据库之前添加CoInitialize(NULL);试试看。。。。。

4,011

社区成员

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

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