一个简单的数据库问题(小妹在线等待!)
一段往数据库插入数据的简单程序,运行时不报错,但数据根本没插到数据库中
// test.cpp : 定义应用程序的类行为。
CDaoDatabase theDatabase;
CtestApp theApp;
BOOL CtestApp::InitInstance()
{ ...
TRY
{
theDatabase.Open(_T("C:\\stock.mdb"),FALSE,FALSE,(""));
}
CATCH(CDaoException,e)
{
e->ReportError();
return FALSE;
}
END_CATCH
...
}
// MainFrm.cpp : CMainFrame 类的实现
...
extern CDaoDatabase theDatabase;
extern CtestApp theApp;
void CMainFrame::OnInitdata()
{
// TODO: 在此添加命令处理程序代码
CString strSQL;
strSQL.Format(_T("INSERT INTO stock(materiel_id,materiel_name,computer_id,contract_NO)"
"VALUES('%s','%s','%s','%s');"),
"01",
"02",
"03",
"04"
);
theDatabase.Execute(strSQL,dbDenyWrite|dbConsistent);
}
问题点数:0、回复次数:4Top
1 楼yuanl(鹰)回复于 2003-09-01 18:15:07 得分 0
写错了
CATCH(CDaoException* e)
Top
2 楼VCP4(左麟右李)回复于 2003-09-01 18:19:35 得分 0
怎么会放在
BOOL CtestApp::InitInstance()
这里的。
一个表的这种情况最好用向导DAO来做(Access97格式,如果不是用工具转换),也没有用CDaoRecordSet来配合。
Top
3 楼VCP4(左麟右李)回复于 2003-09-02 01:26:45 得分 0
可能是strSQL的SQL语句有些问题,参考SQL2000书检查是否正确。
To yuanl(鹰)
CATCH(CDaoException,e))没有写错,她用的是MFC的CATCH。
Top
4 楼awant2k(一点通)回复于 2003-09-02 08:08:54 得分 0
strSQL.Format(_T("INSERT INTO stock(materiel_id,materiel_name,computer_id,contract_NO)"
"VALUES('%s','%s','%s','%s');"),
"01",
"02",
"03",
"04"
);
这个SQL有错误
1) 列名 最好用 [] 括起来
2) 末尾不能有 分号;
3) 当然还要保证 该 行 是表 中的唯一
正确的应该是
strSQL.Format(_T("INSERT INTO stock([materiel_id],[materiel_name],[computer_id],[contract_NO])"
"VALUES('%s','%s','%s','%s')"),
"01",
"02",
"03",
"04"
);
Top




