CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

Update 数据库错误!各位大虾帮帮忙!

楼主CunningBoy(南迁的候鸟)2003-11-03 23:19:50 在 Delphi / 数据库相关 提问

if   FormMain.ADOConnection1.Connected   then  
      begin  
          with   FormMain.ADOQuery4   do  
          begin  
              if   Active   then  
                  Close;  
   
              SQL.Clear;  
                SQL.Add('UPDATE   Information   SET');  
              SQL.Add('Time='   +   DateTimeToStr(StrToDateTime(FormatDateTime('yyyy-mm-dd   hh:nn:ss',   Now)))   +     ',');  
  //             SQL.Add('Time='   +   DateTimeToStr(Now)   +   ',');  
              SQL.Add('CH4Concent='   +   FloatToStr(concent)   +   ',');  
              SQL.Add('pressure='   +   FloatToStr(pressure)   +   ',');  
              SQL.Add('tfl='   +   FloatToStr(tfl));  
              SQL.Add('WHERE'   +'(CoalID='     +   #39   +   coalid   +   #39   +   ')   And'   +   '(WorkID='     +   #39   +   workid   +   #39   +   ')   And'   +   '(DeviceID='   +   #39   +   deviceid   +   #39   +   ')');  
   
              try  
                  ExecSQL;  
              except  
                  exit;  
              end;  
   
          end;  
      end;  
   
  程序运行后出错:  
  Project   Safty.exe   are   raised   exception   class   EoleException   with   message   'Parameter   对象被不正确的定义。提供了不一致或不完整的信息。'       Process   stopped.   Use   Step   or   Run   to   continue  
   
  请各位大虾帮帮忙看看该如何修改!  
  我用单步调试时,发现是SQL.Add('Time='   +   DateTimeToStr(StrToDateTime(FormatDateTime('yyyy-mm-dd   hh:nn:ss',   Now)))   +     ',')这句的问题。 问题点数:100、回复次数:12Top

1 楼winsock2000(风筝)回复于 2003-11-03 23:27:50 得分 10

time='''+FormatDateTime('yyyy-mm-dd   hh:nn:ss',   Now)+'''Top

2 楼zhxr2003(Grancy)回复于 2003-11-04 17:16:55 得分 15

对于VARCHAR型日期型数据,需字符串处理.QuotedStr()  
  如楼上给你的时间前后加引号  
   
  SQL.Text   :='Update   Information   Set   Time='  
                    +   QuotedStr(FormatDateTime('yyyy-mm-dd   hh:nn:ss',   Now))    
                    +   ',CH4Concent='   +   FloatToStr(concent)    
                    +   ',pressure='   +   FloatToStr(pressure)    
                    +   ',tfl='   +   FloatToStr(tfl)  
                    +   '   WHERE   (CoalID='     +   QuotedStr(coalid)    
  +   ')  
    And   (WorkID='     +   workid   +   #39   +   ')   And'   +   '(DeviceID='   +   #39   +   deviceid   +   #39   +   ')');  
  Top

3 楼zhxr2003(Grancy)回复于 2003-11-04 17:18:42 得分 15

具体情况根据你的数据类型而定了  
  SQL.Text   :='Update   Information   Set   Time='  
                    +   QuotedStr(FormatDateTime('yyyy-mm-dd   hh:nn:ss',   Now))    
                    +   ',CH4Concent='   +   FloatToStr(concent)    
                    +   ',pressure='   +   FloatToStr(pressure)    
                    +   ',tfl='   +   FloatToStr(tfl)  
                    +   '   WHERE   (CoalID='     +   QuotedStr(coalid)    
                    +   ')   And   (WorkID='     +   QuotedStr(workid)    
                    +   ')   And   (DeviceID='   +   QuotedStr(deviceid)   ')';  
   
   
  Top

4 楼angle097113(深思不解)回复于 2003-11-04 18:05:20 得分 10

QuotedStr(FormatDateTime('yyyy-mm-dd   hh:nn:ss',   Now))Top

5 楼upingking()回复于 2003-11-04 19:46:58 得分 10

如果是sql   server应该没问题.如果是access应该是  
  SQL.Add('Time=#'   +   DateTimeToStr(StrToDateTime(FormatDateTime('yyyy-mm-dd   hh:nn:ss',   Now)))   +     '#,')Top

6 楼CunningBoy(南迁的候鸟)回复于 2003-11-04 20:56:36 得分 0

我用的是ACCESS,也按照“upingking()”的方法做了,还是不行,提示出错:  
  Project   Safty.exe   are   raised   exception   class   EoleException   with   message   'Parameter   对象被不正确的定义。提供了不一致或不完整的信息。'       Process   stopped.   Use   Step   or   Run   to   continueTop

7 楼CunningBoy(南迁的候鸟)回复于 2003-11-05 20:23:03 得分 0

各位大虾帮帮忙吧,我的头都大了Top

8 楼Shiyl(云淡风清 卷舒自在)回复于 2003-11-05 21:56:48 得分 10

function   FormatDateTime(const   Format:   string;   DateTime:   TDateTime):   string;  
  既然是生成的是string型那么可以试着    
  SQL.Add('Time='''   +FormatDateTime('yyyy-mm-dd   hh:nn:ss',   Now)   +   ''',');  
  没有试过哦  
  呵呵就当灌水^o^Top

9 楼pengdali()回复于 2003-11-05 21:57:18 得分 15

access   try:  
   
   
  if   FormMain.ADOConnection1.Connected   then  
      begin  
          with   FormMain.ADOQuery4   do  
          begin  
              if   Active   then  
                  Close;  
   
              SQL.Clear;  
                SQL.Add('UPDATE   Information   SET');  
              SQL.Add('Time=#'   +   DateTimeToStr(StrToDateTime(FormatDateTime('yyyy-mm-dd   hh:nn:ss',   Now)))   +     '#,');  
  //             SQL.Add('Time=#'   +   DateTimeToStr(Now)   +   '#,');  
              SQL.Add('CH4Concent='   +   FloatToStr(concent)   +   ',');  
              SQL.Add('pressure='   +   FloatToStr(pressure)   +   ',');  
              SQL.Add('tfl='   +   FloatToStr(tfl));  
              SQL.Add('WHERE'   +'(CoalID='''   +   coalid   +   ''')   And'   +   '(WorkID='''   +   workid   +   ''')   And'   +   '(DeviceID='''   +   deviceid   +''')');  
   
              try  
                  ExecSQL;  
              except  
                  exit;  
              end;  
   
          end;  
      end;Top

10 楼miszyf(miszyf)回复于 2003-11-06 09:54:46 得分 5

好像MM表示月份吧,而非mm.Top

11 楼miszyf(miszyf)回复于 2003-11-06 09:57:53 得分 5

分钟应该用mm吧。Top

12 楼superlionet(彼岸)回复于 2003-11-06 10:16:47 得分 5

我好象记得time   不能用做字段吧。   你换个字段名称看看Top

相关问题

  • 各位大哥帮忙,数据库恢复错误
  • 数据库错误,急需各位帮助
  • 怎样捕获数据库update的错误? on line waiting!
  • 如何捕获数据库UPDATE的错误
  • 我用UPDATE语句来修改数据库 哪里有错误?
  • 数据库连接错误
  • 数据库链接错误??
  • 数据库 错误 急!!!!!!!!!!!!!!!!
  • 数据库出现错误
  • 数据库写入错误:

关键词

  • sql
  • coalid
  • concent
  • tfl
  • workid
  • floattostr
  • quotedstr
  • deviceid
  • formatdatetime
  • pressure

得分解答快速导航

  • 帖主:CunningBoy
  • winsock2000
  • zhxr2003
  • zhxr2003
  • angle097113
  • upingking
  • Shiyl
  • pengdali
  • miszyf
  • miszyf
  • superlionet

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo