有关数据库编译链接通过,运行发生错误的问题
源码如下:
void CTestDlg::OnAdd()
{
// TODO: Add your control notification handler code here
UpdateData(true);
CString query_num;
GetDlgItemText(IDC_NUM, query_num);
CString sql;
_variant_t vAffected;
sql.Format("SELECT count(*) as counts FROM Table2 WHERE num='%s'",query_num);
m_pRecordset=theApp.m_pConnection->Execute(_bstr_t(sql),&vAffected,adCmdText);
m_intCounts=m_pRecordset->GetCollect("counts").intVal;
m_pRecordset->Close();///关闭记录集
m_pRecordset.Release();
if (m_intCounts>0)
{
AfxMessageBox("模块编号已经存在,请重新输入模块编号!");
}
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->AddNew();
m_pRecordset->PutCollect("num",_variant_t(m_strNum));
m_pRecordset->PutCollect("time",_variant_t(m_tTime));
m_pRecordset->PutCollect("20",_variant_t((long)m_intT1));
m_pRecordset->PutCollect("22",_variant_t((long)m_intT2));
m_pRecordset->PutCollect("24",_variant_t((long)m_intT3));
m_pRecordset->PutCollect("26",_variant_t((long)m_intT4));
m_pRecordset->PutCollect("28",_variant_t((long)m_intT5));
m_pRecordset->Update();
AfxMessageBox("插入成功!");
m_pRecordset->Close();///关闭记录集
// 更新显示其库内容
Refresh();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
程序主要分为两个部分,上半部分主要判断在数据库中是否存在相同编号,如果存在则给出提示并返回,下半部分就是在数据库中添加一个新的记录。
程序链接编译都通过,但是在运行的时候当添加新记录的时候会出现RUNTIME ERROR
通过分块调试,两部分的功能都可以实现,但是一合起来就出错了,请大家帮忙指点,不胜感谢!!!