判断ExecuteSQL执行是否成功

zzxxdd 2009-01-15 11:19:41
CString sql;
sql = "update table_name set.................."
db.我这样写是可以执行通过的,数据库也能更改成功
现在想向用户提示更改成功,迷茫了,不知道用什么方法可以判断ExecuteSQL(sql)执行是否成功

请高手帮帮忙~

有人告诉我用
try
{
}
catch()
{
}
刚接触VC,不会用,惭愧~
...全文
1196 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
小雨点 2009-01-23
  • 打赏
  • 举报
回复
同意2楼,说得对!!
analysefirst 2009-01-16
  • 打赏
  • 举报
回复
# 
// 执行SQL语句,Insert Update _variant_t
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
// _variant_t RecordsAffected;
try
{
// 是否已经连接数据库
if(m_pConnection == NULL)
OnInitADOConn();
// Connection对象的Execute方法:(_bstr_t CommandText,
// VARIANT * RecordsAffected, long Options )
// 其中CommandText是命令字串,通常是SQL命令。
// 参数RecordsAffected是操作完成后所影响的行数,
// 参数Options表示CommandText的类型:
//adCmdText-文本命令;adCmdTable-表名
// adCmdProc-存储过程;adCmdUnknown-未知
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}



void ADOConn::ExitConnect()
{
// 关闭记录集和连接
if (m_pRecordset != NULL)
m_pRecordset->Close();
m_pConnection->Close();
// 释放环境
::CoUninitialize();
}
oyljerry 2009-01-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zzxxdd 的回复:]
引用 3 楼 faith10099 的回复:
try
{
//execsql
}
//执行成功,提示信息
catch()
{
//执行不成功
}

// 弹出对话框表示成功

能不能说具体点
[/Quote]
就是你catch里面没有捕获到错误的话,你在后面就可以弹对话框说成功了
猞猁狲 2009-01-15
  • 打赏
  • 举报
回复
ExecuteSQL(sql)内部如果用ado操作数据库应该这样写,


_RecordsetPtr m_pRs;
bool ExecuteSQL(CString sCommandText)
{
int i = sCommandText.GetLength();
try{
m_pRs.CreateInstance(__uuidof(Recordset));
m_pRs->Open((_bstr_t)sCommandText,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
catch(_com_error& e)
{
return false;
}
return true;
}

if (ExecuteSQL(sql))
AfxMessageBox(_T("更新成功!"))
else
AfxMessageBox(_T("更新失败!"))


zzxxdd 2009-01-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 faith10099 的回复:]
try
{
//execsql
}
//执行成功,提示信息
catch()
{
//执行不成功
}
[/Quote]

能不能说具体点
zzxxdd 2009-01-15
  • 打赏
  • 举报
回复
void ExecuteSQl(LPCSTR lpszSQL); //函数无返回值啊
faith10099 2009-01-15
  • 打赏
  • 举报
回复
try
{
//execsql
}
//执行成功,提示信息
catch()
{
//执行不成功
}
zzxxdd 2009-01-15
  • 打赏
  • 举报
回复
请问怎么提取ExecuteSQL 执行返回值?

连接方式odbc
oyljerry 2009-01-15
  • 打赏
  • 举报
回复
ExecuteSQL 执行返回值,来判断是否成功
fantuan 2009-01-15
  • 打赏
  • 举报
回复
两点:
1、try..catch捕获数据库异常
2、update\delete\insert语句执行后有影响记录数返回,根据返回值做进一步判断

4,011

社区成员

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

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