各位帮忙看看哪里出错了? 数据库操作

sitiao2009 2010-05-02 04:59:08
代码如下,要求实现功能是:将数据库里班次信息表里的发车时间和系统时间比较,然后在备注里显示是否已经发车。
我运行结果出问题了,所有备注的信息却是第一行比较的结果,只是把第一行备注信息填入到了其他所有备注

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();
}
...全文
94 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sitiao2009 2010-05-05
  • 打赏
  • 举报
回复
vSQL1 = "UPDATE 班次信息 SET 备注 = '该班次已发车!' WHERE 发车时间 <=(SELECT GETDATE())";
vSQL2 = "UPDATE 班次信息 SET 备注 = '未发车!' WHERE 发车时间 >(SELECT GETDATE())";
sitiao2009 2010-05-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 leitianjun 的回复:]
[/Quote]
谢谢你的提醒,我现在已经解决了呵呵
其实很简单的,是我的T-SQL语句没有学好

void CBus::sql_AutoUpdate()
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SELECT语句
_bstr_t vSQL1,vSQL2;
vSQL1 = "UPDATE 班次信息 SET 备注 = '该班次已发车!' WHERE 发车时间 >(SELECT GETDATE())";
vSQL2 = "UPDATE 班次信息 SET 备注 = '未发车!' WHERE 发车时间 <(SELECT GETDATE())";
//执行SELETE语句
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL1);
m_pRecordset = m_AdoConn.GetRecordSet(vSQL2);
}

这样就搞定了对数据库的批处理啦 哈哈
  • 打赏
  • 举报
回复
update 班次信息 set 备注 = '未发车!' //这条也是,都是对整张表进行的UPDATE更新操作,一定注意后面的where 条件语句,例如 where time>'2005-01-01'的,给改一下。
  • 打赏
  • 举报
回复
update 班次信息 set 备注 ='此班车已发出!' //语句问题,

应处理如下:
根据条件进行修改某一条记录,象你这样的语句,只要条件成立,就执行这条语句,所以就把所有备注都改了。

update 班次信息 set 备注 ='此班车已发出!' where 条件='xxx条件';

如果条件满足后,在进行加上where 判断语句才行!!!
sitiao2009 2010-05-03
  • 打赏
  • 举报
回复
没人会吗?
sitiao2009 2010-05-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yincheng01 的回复:]
帖子都沉底了!只能帮楼主顶到上面,以期更多高手帮楼主解决难题!
[/Quote]
泄泻啦 哈哈
尹成 2010-05-02
  • 打赏
  • 举报
回复
帖子都沉底了!只能帮楼主顶到上面,以期更多高手帮楼主解决难题!
sitiao2009 2010-05-02
  • 打赏
  • 举报
回复
来人呐!!!!!!!!!
内容概要:本研究围绕水面无人艇(USVs)集群协同作战的数学建模与策略优化展开,利用Matlab进行算法实现与仿真验证。研究建立了USVs集群在复杂海洋环境下的运动学与动力学模型,融合编队控制、路径规划、任务分配及避障等关键技术,构建了完整的协同作战框架。通过引入改进的智能优化算法(如改进秃鹰算法),对集群的协同策略进行优化,旨在提升多艇系统的任务执行效率、协同精度与环境适应性,确保其在目标搜索、区域覆盖、协同攻击等作战场景中实现高效、稳定与鲁棒的群体智能行为。研究涵盖了从底层动力学建模到顶层协同决策的全过程,为无人艇集群的实际应用提供了理论依据和技术方案。; 适合人群:具备一定编程基础和控制理论知识,从事无人系统、智能优化、自动化或军事仿真等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究多智能体系统(MAS)的协同控制与优化策略;②开发基于Matlab的无人艇集群仿真平台;③优化复杂环境下多机器人系统的任务分配与路径规划算法;④探索智能优化算法在军事仿真和群体智能中的应用。; 阅读建议:此资源以Matlab代码实现为核心,紧密结合理论模型与工程实践。建议读者在学习过程中,不仅要理解数学模型的推导与算法的优化逻辑,更要动手运行和调试所提供的代码,通过可视化仿真结果来加深对集群协同行为的理解,并尝试修改参数或算法结构以探究不同策略的效果,从而达到理论与实践相结合的最佳学习效果。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧