var
row,i:integer;
begin
with dm_book.jtemp do
begin
  close;
  sql.Clear;
  sql.Add('insert into book_sale(orders_id,book_id,book_code,book_name,sale_quantity,book_price,sale_summoney,card_no,sale_time) ');
  sql.Add('values (:orders_id,:book_id,:book_code,:book_name,:sale_quantity,:book_price,:sale_summoney,:card_no,:sale_time)');
  //,book_position,adminuser
  //,:book_position,:adminuser
  parameters.ParamByName('orders_id').Value:=888;
  parameters.ParamByName('book_id').Value:=666;
  parameters.ParamByName('book_code').Value:=StringGrid1.Cells[0,1];//条形码
  parameters.ParamByName('book_name').Value:='sdfsdf';stringgrid1.Cells[1,1];//书名
  parameters.ParamByName('sale_quantity').Value:=strtoint(stringgrid1.Cells[6,1]);//'数量
  parameters.ParamByName('book_price').Value:=strtofloat(stringgrid1.cells[4,1]);//单价
  parameters.ParamByName('sale_summoney').Value:=strtofloat(stringgrid1.Cells[7,1]);//金额
  parameters.ParamByName('card_no').Value:=888; //FormatDateTime
  parameters.ParamByName('sale_time').Value:=strtodate('2002-2-2');
  {parameters.ParamByName('book_position').Value:=stringgrid1.Cells[8,1];//位置
  parameters.ParamByName('adminuser').Value:='888';
  }prepared;
  execsql;
  beep;
  Button5.Click;
end;
{for row:=1 to stringgrid1.RowCount do
  for i:=0 to stringgrid1.ColCount do
  begin  end;
}end;

解决方案 »

  1.   

    parameters.ParamByName('sale_time').Value:='2002-2-2';
      

  2.   

    parameters.ParamByName('sale_time').Value:=EncodeDate(2002,2,2);
      

  3.   

    //parameters.ParamByName('book_name').Value:='sdfsdf';stringgrid1.Cells[1,1];//书名                          ~~~~~~~~~~
    上面标示的地方你是注销了吧?在数据库里面,你的时间字段是什么类型?
      

  4.   

    parameters.ParamByName('sale_time').Value:=date;//error
    parameters.ParamByName('sale_time').Value:=EncodeDate(2002,2,2);//error
    parameters.ParamByName('sale_time').Value:='2002-2-2';//error
    parameters.ParamByName('sale_time').Value:=now;//error
    parameters.ParamByName('sale_time').Value:=strtodate(edit1.text);//error???????为什么?谢谢
    'sale_time'字段在sql2000中是datetime类型
      

  5.   

    parameters.ParamByName('sale_time').asDateTime:=strtodate(edit1.text);//
      

  6.   

    parameters.ParamByName('sale_time').asDateTime参数没有asdatetime的属性 :)
      

  7.   

    试试在‘//’这句前加上下面的代码
    Parameters.ParamByName('sale_time').DataType :=ftDate;
    parameters.ParamByName('sale_time').Value:=date;//