各位高手:
目前我遇到一个问题,就是在用ADO成功打开某dbase数据库文件并正确显示其内容后,若是用以前删除SQL Server7.0某数据库中某TABLE中的记录一样的方法做(是成功的),则出现“[Microsoft][ODBC dBase 驱动程序]无法从指定的数据表中删除”的出错信息,因而无法执行删除。 问题代码如下:
HRESULT hr; this->Move(ulRecNo); // 记录移到给定的行号上
if (this->m_pMySet->Supports(adDelete))
{
try
{
hr = this->m_pMySet->Delete(adAffectCurrent);
hr = this->m_pMySet->Update();
}
catch(_com_error e)
{
::AfxMessageBox(e.Description());
// e.Description()在ADO访问dBase数据表时,显示
// “[Microsoft][ODBC dBase 驱动程序]无法从指定的数据表中删除”
}
if (FAILED(hr))
{
::AfxMessageBox("错误:删除失败");
return FALSE;
}
} 各位高手能否帮我解决这个问题?
目前我遇到一个问题,就是在用ADO成功打开某dbase数据库文件并正确显示其内容后,若是用以前删除SQL Server7.0某数据库中某TABLE中的记录一样的方法做(是成功的),则出现“[Microsoft][ODBC dBase 驱动程序]无法从指定的数据表中删除”的出错信息,因而无法执行删除。 问题代码如下:
HRESULT hr; this->Move(ulRecNo); // 记录移到给定的行号上
if (this->m_pMySet->Supports(adDelete))
{
try
{
hr = this->m_pMySet->Delete(adAffectCurrent);
hr = this->m_pMySet->Update();
}
catch(_com_error e)
{
::AfxMessageBox(e.Description());
// e.Description()在ADO访问dBase数据表时,显示
// “[Microsoft][ODBC dBase 驱动程序]无法从指定的数据表中删除”
}
if (FAILED(hr))
{
::AfxMessageBox("错误:删除失败");
return FALSE;
}
} 各位高手能否帮我解决这个问题?
解决方案 »
- CListCtrl CheckBox编辑
- 窗口隱藏, 但是沒有 WS_DISABLED 屬性
- 我在2003上的vc.net环境下写的程序打包后可在xp上可运行,但在win98下不能运行,问题出在哪?
- 为什么 msdn不一下子就出完呢,每年都要出几次,VC不是N年以前就出了吗?当年出的时候就出一个完结版的MSDN不行吗?
- 急,当ACDSEE在创建一个大图片文件的时候(很慢),我怎样得知文件什么时候创建完毕?
- @@斑竹请别删@@
- 菜鸟的问!
- CDockablePane在SDI中设置边框0
- 用了#pragma comment(lib,"...")以后,就可以不需要包含dll工程里面的.h文件了?
- 揪心..........
- 谁有用扩展dll做的例程,给我一份--50分
- 字符串问题!
看一下是hr = this->m_pMySet->Delete(adAffectCurrent);的问题
还是hr = this->m_pMySet->Update();的问题
我记得好像删除不需要更新吧。
我是使用Sql语句做删除的
gl_pConnection->BeginTrans();
ExecuteScriptCommandText(m_sDataDelete);
gl_pConnection->CommitTrans();void ExecuteScriptCommandText(LPCTSTR lpctszCmdText)
{
//把从文本里读取出来的脚本提交到服务器执行
_CommandPtr pCommand;
_variant_t varNull;
varNull.vt=VT_ERROR;
varNull.scode=DISP_E_PARAMNOTFOUND;
HRESULT hr;
try{
hr=pCommand.CreateInstance(__uuidof(Command));
if(SUCCEEDED(hr))
{
pCommand->ActiveConnection=gl_pConnection;
pCommand->CommandType=adCmdText;
pCommand->CommandText=_bstr_t(lpctszCmdText);
pCommand->Execute(&varNull,&varNull,adCmdUnknown);
}
}
catch(_com_error &e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description()); CString csError;
csError.Format("编号:%08x\n编号含义:%s\n源代码:%s\n描述:%s\n",
e.Error(),e.ErrorMessage(),(LPCTSTR)bstrSource,(LPCTSTR)bstrDescription);
MessageBox(NULL,(LPCTSTR)csError,"[ExecuteScriptCommnadText]由#import引进的对象出现异常",MB_OK|MB_ICONSTOP);
gl_pConnection->RollbackTrans();
}
catch(...)
{
MessageBox(NULL,"不可捕捉的异常","[ExecuteScriptCommnadText]由#import引进的对象出现异常",MB_OK|MB_ICONSTOP);
gl_pConnection->RollbackTrans();
}
}