当表不为空时任何操作都正常.
但是当表为空时,插入操作就出错误.
具体为下:
//插入新数据
CString strSQL;
CString Tempsertnum;
Tempsertnum.Format("%04s",m_workernumstr);
strSQL.Format("insert into worker(WorkerNum,WorkerName) values ('%s','%s')",Tempsertnum,m_workernamestr);
try
{
theApp.m_pCon->Execute(_bstr_t(strSQL),NULL,adCmdText);
}
catch (_com_error &e)
{
CString str = (char *)e.Description();
::MessageBox(NULL, "工号重复,请重新输入","提示",MB_OK | MB_ICONWARNING);
return;
}
//然后是重新显示list control中的数据:
ShowData();void PWorker::ShowData()
{
//数据库操作
try
{
theApp.m_pRs_worker->Open(_variant_t("worker"), _variant_t((IDispatch *)theApp.m_pCon,true),adOpenKeyset,adLockOptimistic,adCmdTable);
}
catch (_com_error &e)
{
CString str = (char *)e.Description();
::MessageBox(NULL,"无法打开worker表。","提示", MB_OK | MB_ICONWARNING);
return;
}
...
}在增加新数据后,错误提示:"无法打开worker表。" 应该是表示表打开读取失败 为什么 请各位指点,谢谢
但是当表为空时,插入操作就出错误.
具体为下:
//插入新数据
CString strSQL;
CString Tempsertnum;
Tempsertnum.Format("%04s",m_workernumstr);
strSQL.Format("insert into worker(WorkerNum,WorkerName) values ('%s','%s')",Tempsertnum,m_workernamestr);
try
{
theApp.m_pCon->Execute(_bstr_t(strSQL),NULL,adCmdText);
}
catch (_com_error &e)
{
CString str = (char *)e.Description();
::MessageBox(NULL, "工号重复,请重新输入","提示",MB_OK | MB_ICONWARNING);
return;
}
//然后是重新显示list control中的数据:
ShowData();void PWorker::ShowData()
{
//数据库操作
try
{
theApp.m_pRs_worker->Open(_variant_t("worker"), _variant_t((IDispatch *)theApp.m_pCon,true),adOpenKeyset,adLockOptimistic,adCmdTable);
}
catch (_com_error &e)
{
CString str = (char *)e.Description();
::MessageBox(NULL,"无法打开worker表。","提示", MB_OK | MB_ICONWARNING);
return;
}
...
}在增加新数据后,错误提示:"无法打开worker表。" 应该是表示表打开读取失败 为什么 请各位指点,谢谢
表不空时不出错,空时才出错...
试试看
另外是不是那句open出错?
MessageBox(str);
即抛出异常:"对象打开时不允许操作" 请帮忙
{
theApp.m_pRs_worker->Open(_variant_t("worker"), _variant_t((IDispatch *)theApp.m_pCon,true),adOpenKeyset,adLockOptimistic,adCmdTable);
}
catch (_com_error &e)
{
CString str = (char *)e.Description();
MessageBox(str);
return;
}
就是打开数据库的那句抛出异常,但是初始化DLG时我也会调用这个去读取数据库中的信息来显示,然后再关闭.这次插入再显示就是再次打开了.只有空表插入再打开才抛出异常