日期:2014-05-16  浏览次数:21095 次

access update语句
sql:='update dzhyb set jdbzw=1 and jdkssj='''+sheet2shijian+''' where chehao='''+trim(edit1.Text)+''' and ((zhanneisj is null) or (zhanneisj=''''))';
  出错,如果原来日期时间那里有值,就弹错误,说标准表达式中数据类型不匹配。如果原来那里为空,往里修改值,就什么反应没有,内容也没有录进去。

当把这两个换个位置,改成'update dzhyb set jdkssj='''+sheet2shijian+''' and jdbzw=1 ,结果是,如果原来数据表里有值,时间就变成1899-12-29和0:00:00(显示为1899-12-30),如果没有值,就没有变化。标志位没有变。

把这两个任何一个去掉,更新正常。

------解决方案--------------------
用SHOWMESSAGE显示一下sql中的内容
------解决方案--------------------
sheet2shijian 的时间格式是什么?
------解决方案--------------------
呵呵,在DELPHI中,日期不能用#,要用单引号