在做添加数据的时候,“商品单位”这个字段的值居然写不进数据内,但系统又没有任何出错的提示,并且其它的字段都能成功写入,在翻查数据库时,也没发现字段设置有什么问题,百思不得其解,请求各位大神指点迷津。
     以下是该段代码:procedure TSPRKXX.SpeedButton1Click(Sender: TObject);  //商品数量添加begin        with DM.QSPRK do
        begin
        Close;
        SQL.Add('insert into InStoreProduct(入库编号,商品编号,商品名称,所属类别,商品规格,商品单位,单价,入库数量,总价,经手人姓名,入库日期,备注)');
        SQL.Add('Values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l)');
         Parameters.ParamByName('a').Value:='RK'+Edit1.Text + FormatDateTime('yyyymmdd',Now());   //入库编号
         Parameters.ParamByName('b').Value:=Trim(Edit2.Text);         //  商品编号
         Parameters.ParamByName('c').Value:=Trim(ComboBox2.Text);     //  商品名称
         Parameters.ParamByName('d').Value:=Trim(Edit3.Text);       // 所属类别
         Parameters.ParamByName('e').Value:=Trim(Edit4.Text);       //商品规格
         Parameters.ParamByName('f').Value:=Edit5.Text;       //商品单位   就是该字段写不进数据库         Parameters.ParamByName('g').Value:=StrToFloat(Trim(Edit6.Text));     //单价  
         Parameters.ParamByName('h').Value:=StrToInt(Trim(Edit7.Text));     //入库数量
         Parameters.ParamByName('i').Value:=StrToFloat(Trim(Edit8.Text));     //总价
         Parameters.ParamByName('j').Value:=Edit11.Text;  //经手人编号         Parameters.ParamByName('k').Value:=StrToDateTime(Trim(Edit10.Text));
         Parameters.ParamByName('l').Value:=Memo1.Text;           //备注
         ExecSQL;
          ShowMessage('添加商品数量成功!')
         end;
end;
   

解决方案 »

  1.   

    检查下商答品单位字段的类型和长度,另edit5.text是否录入字符。
      

  2.   

    跟别的不一样,没有trim
      

  3.   

    建议你采集一下sql语句,然后在sql环境运行一下,看看哪里的问题:
    在ExecSQL;之前增加一句:
    memo2.lines.add(sql.text);
    自己增加一个memo2控件,运行后贴出memo2中的sql语句,就知道哪里的问题了。
    这种办法很适用检查错误。另外,其他的就应该是1#所说的字段长度问题了,或者edit的序号对应问题了。
      

  4.   

    1、with DM.QSPRK do
          close;
         sql.clear;
        sql.add();
        sql.execsql;
        end;
      把clear加上
    2、Edit5.Text换成一个固定值试试,比如“测试单位”。
      

  5.   

    加入一条代码
    showmessage(Edit5.text);
    执行检查是否Edit5.tex无字符。
      

  6.   

    1、数据库表里的字段类型是什么?长度多少?
    2、跟踪一下,到这行时,Edit5.text的值是什么
    先弄清楚这些,告诉我们