各位帮忙看看哪里出错了? 数据库操作
代码如下,要求实现功能是:将数据库里班次信息表里的发车时间和系统时间比较,然后在备注里显示是否已经发车。
我运行结果出问题了,所有备注的信息却是第一行比较的结果,只是把第一行备注信息填入到了其他所有备注
void CBus::sql_AutoUpdate()
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SELECT语句
_bstr_t vSQL;
vSQL = "SELECT * FROM 班次信息";
//执行SELETE语句
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
//返回各列的值
if (m_pRecordset->adoEOF)
{
return;
}
else
{
strRunTime = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("发车时间");
}
/////////////////////////////获得系统当前时间
COleDateTime;
COleDateTime datetime;
datetime=COleDateTime::GetCurrentTime();
CString str2=datetime.Format("%Y-%m-%d %H:%M:%S");
////////////////////////////时间比较
COleDateTime t;
t.ParseDateTime( strRunTime );
COleDateTime p;
p.ParseDateTime( str2 );
if( t<=p)
{
CString csql;
csql="select * from 班次信息";
csql="update 班次信息 set 备注 ='此班车已发出!' ";
//执行UPDATE语句
_bstr_t vSQL= _bstr_t(csql);
m_AdoConn.ExecuteSQL(vSQL);
}
else
{
CString csql;
csql="select * from 班次信息 ";
csql="update 班次信息 set 备注 = '未发车!' ";
//执行UPDATE语句
_bstr_t vSQL= _bstr_t(csql);
m_AdoConn.ExecuteSQL(vSQL);
}
//断开与数据库的连接
m_AdoConn.ExitConnect();
}