1:comquery 为TSQLQuery 组件,数据库为SQL Server 2000
2:datetimetostr(now)为将当时的日期和时间转为字符串,但一运行时,会出现“No value for parameter 
57:52”的错误提示。即SQL语句只提取了日期和小时这一段,时间中的小时的冒号后的分和秒不能提取了,把分和秒当成是一个变量了。
3:如何解决这问题呢?with comquery do
begin
    close;
    sql.Clear;
    sql.Add('insert SalesNow Values('+inttostr(num)+','+datetimetostr(now)+','+QuotedStr(combobox1.Text)+','+'0'+','+QuotedStr('使用中')+')');
    ExecSQL;
end;

解决方案 »

  1.   

    应该是少了两个'
    sql.Add( 'insert   SalesNow   Values( '+inttostr(num)+ ', '''+datetimetostr(now)+ ''', '+QuotedStr(combobox1.Text)+ ', '+ '0 '+ ', '+QuotedStr( '使用中 ')+ ') '); 
      

  2.   


    with   comquery   do 
    begin 
            close; 
            sql.Clear; 
            sql.Add('insert into SalesNow  Values(:para1,:para2,:para3,:para4,:para5)');
            Parameters.ParameterByName('para1').value:=num;
            Parameters.ParameterByName('para2').value:=now;
            Parameters.ParameterByName('para3').value:=combobox1.Text;
            Parameters.ParameterByName('para4').value:=0;
            Parameters.ParameterByName('para5').value:='使用中';
            ExecSQL; 
    end;
      

  3.   

     好的。再试试。。把datetimetostr(now)  改为:QuotedStr(datetimetostr(now)试试。
      

  4.   

    应该是少了两个'
    sql.Add( 'insert   SalesNow   Values( '''+inttostr(num)+ ''', '''+datetimetostr(now)+ ''', '+QuotedStr(combobox1.Text)+ ', 0 , '+QuotedStr( '使用中 ')+ ') '); 
      

  5.   

    用参数方式,省去匹配'号的麻烦,刚才方法名写错了with   comquery   do 
    begin 
            close; 
            sql.Clear; 
            sql.Add('insert into SalesNow  Values(:para1,:para2,:para3,:para4,:para5)');
            Parameters.ParamByName('para1').value:=num;
            Parameters.ParamByName('para2').value:=now;
            Parameters.ParamByName('para3').value:=combobox1.Text;
            Parameters.ParamByName('para4').value:=0;
            Parameters.ParamByName('para5').value:='使用中';
            ExecSQL; 
    end;
      

  6.   

    还在测试中。
    num是数字型,now是时间型,ideation_shang 的方法出现类型不对提示。
      

  7.   

    你的数据库前两个字段是什么类型? 如是数字和时间就可以 如果是char或者varchar使用你原来的用的方法
    inttostr(num) datetimetostr(now)赋值就行
      

  8.   

    依顺序是:numberic,datetime,char,money,char
      

  9.   

    纯SQL语句就这样:insert SalesNow values(2234,2007-11-13 15:01:20,'K66',0,'使用中')
      

  10.   

    ACCESS库吧?时间这样写
    15::.1::20
      

  11.   

    CREATE TABLE SalesNow (
    a numeric(18, 0) NULL ,
    b datetime NULL ,
    c char (10),
    d money NULL ,
    e char (10) 
    )with   ADOQuery1   do
    begin
            close;
            sql.Clear;
            sql.Add('insert SalesNow  Values(:para1,:para2,:para3,:para4,:para5)');
            Parameters.ParamByName('para1').value:=1;
            Parameters.ParamByName('para2').value:=now;
            Parameters.ParamByName('para3').value:='aaaa';
            Parameters.ParamByName('para4').value:=34;
            Parameters.ParamByName('para5').value:='使用中';
            ExecSQL;
    end;
    我已经测试过了 没问题
      

  12.   

    时间型可以直接用 now 就行了
      

  13.   

    with   comquery   do 
    begin 
            close; 
            sql.Clear; 
            sql.Add( 'insert   SalesNow   Values( '+QUOTEDSTR(inttostr(num))+ ', '+QUOTEDSTR(datetimetostr(now))+ ', '+QuotedStr(combobox1.Text)+ ', '+ QUOTEDSTR('0')+ ', '+QuotedStr( '使用中 ')+ ') '); 
            ExecSQL; 
    end;
      

  14.   

    自己解决了。FloatToStr(Now)这样就行了,Delphi时间类型是一个Double类型。