大家来帮忙看看:关于Access的DateTime型字段的更新问题

Snakeguo 2002-07-02 09:47:34
ADOCommand1.CommandText := Format('update affair set checker = ''%s'', checktime = #%s# where afno = ''%s''', ['system', DateTimeToStr(Now), '001']);
ADOCommand1.Execute;

以上报错:
Parameter 对象被不正确地定义。提供了不一致或不完整的信息。

但若改为:
ADOCommand1.CommandText := Format('update affair set checker = ''%s'', checktime = #%s# where afno = ''%s''', ['system', DateTimeToStr(Date), '001']);
ADOCommand1.Execute;
则正常执行

CheckTime字段在Access中设定为常规日期,为什么会这样?谢谢!
...全文
45 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Snakeguo 2002-07-02
  • 打赏
  • 举报
回复
谢谢pazee(耙子)兄的提醒,我现在干脆将checktime = #%s#改为checktime = :checktime,把它改作参数再指定,问题解决。(为什么早没有想到^_^)

好,结贴。
耙子 2002-07-02
  • 打赏
  • 举报
回复
如果使用ado那么日期不用##用''就好了。
我想你出现这个问题的原因在于日期中的 :,
你应该知道Parameters的ParamByName 是根据 :xxx 来完成替换的,
你的日期中正好有 2002-05-10 12:30:40
他没有正确理解你的:,以为是参数呢。

你关闭了Prepaired看看。

如果事件不是必需的,你换成DateToStr可能好些

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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