数据库中(Access)有一表,其中一列类型为:短日期.
如果表为空没有记录时插入第一条记录就会出错,但是查看数据库中发现记录又添加成功了的。然后再添加记录就不会有问题了,开始用MySQL时是这个问题,现在改用Access还是这个问题。我都要疯了,大虾们救急了!指点一下!非常感谢!
如果表为空没有记录时插入第一条记录就会出错,但是查看数据库中发现记录又添加成功了的。然后再添加记录就不会有问题了,开始用MySQL时是这个问题,现在改用Access还是这个问题。我都要疯了,大虾们救急了!指点一下!非常感谢!
解决方案 »
- 除了使用sleep函数外,如何能够让cpu的占用率较低呢?能否控制最高的cpu占用率?
- 在SDI、MDI(非基于对话框)的MFC程序中,如何方便、灵活的放置大量的控件在CVIEW或CSCROLLVIEW上?
- 在新建的一个mdi工程中,为什么不为menu的新建菜单加任何事件,运行点击它也有响应呢?
- 求救椭圆检测
- 有谁有vc++的下载,高分相送
- 我用UDP发了数据包,但接受不到,哪位大哥能帮帮忙呀?
- 关于VB调用VC的DLL的问题!
- Delphi和VB中的COM互用问题
- 如何修改文本文件内容?
- 如何将自己的程序加入到ie的工具栏,象netants,金山词霸那样?
- 如何取得新加入数据库表中的条目的ID
- 请教:带验证的邮件发送程序运行中出现的一个奇怪问题??
在你映射的CRecordSet类中,VC会将该字段映射成一个CTime的变量,将该变量改为COleDateTime类型的即可,当然在给起赋值的时候也需要用COleDateTime。
CTime类经常出一些莫名其妙的错误,不知为什么。如果将对话框中的时间控件映射成CTime的变量的话,在操作的过程中也容易出错。所以我一般使用COleDateTime
在程序中添加记录的做法是:
CBillSet rst;
if (!rst.Open())
rst.Open();
int num=0;
while (!rst.IsEof())
{
num++;
rst.MoveNext();
}
rst.AddNew();
rst.m_Num=num;
CTime time(2003,6,20,0,0,0);
rst.m_NowDate=time;
rst.Update();
rst.Close();如果数据库中没有记录时就出错了,但是记录添加又成功了。
如果是直接用SQL语句来插入,我该怎么写?
谢谢大虾们指教了!再次感谢楼上热心的大虾们!Thanks!
用SQL语句插入:
CDatabase * pDatabase = new CDatabase; TRY
{
pDatabase->OpenEx(_T("DSN=ODBCName;UID=***;PWD=***"));
}
CATCH (CDBException, e)
{
delete pDatabase;
return;
}
END_CATCH Sql.Format("insert into TableName(Num) values(123)"); pDatabase->ExecuteSQL(Sql); pDatabase->Close();
delete pDatabase;
CExchangeDB::CExchangeDB(CDatabase* pdb)
: CRecordset(pdb)
{
//{{AFX_FIELD_INIT(CExchange4DB)
m_nID = 0;
m_sReceiver = _T("");
m_nAmount = 0;
m_sEmployee = _T("");
m_RecTime = (0,0,0,0,0,0); //m_RecTime为CTime型,需要手动添加初始化语句
m_bConfirm = FALSE;
m_ConTime = (0,0,0,0,0,0); //m_ConTime为CTime型,需要手动添加初始化语句
m_nFields = 7;
//}}AFX_FIELD_INIT
m_nDefaultType = snapshot;
}