procedure TgoodsForm.Button2Click(Sender: TObject);
begin
  with ADOQueryNew do
  begin
    Close;
    SQL.Clear;
    SQL.Add('if not exists(select 1 from ut_Goods where GoodsNO=:z) ');
    SQL.Add('insert into ut_Goods(GoodsNO,GoodsName,GoodsBar,GoodsUnit,SupplierNO,GoodsMemo) values(:a,:b,:c,:d,:e,:f)');
    Parameters.ParamByName('z').Value:=Trim(Edit2.Text);
    Parameters.ParamByName('a').Value:=Trim(Edit2.Text);
    Parameters.ParamByName('b').Value:=Trim(Edit3.Text);
    Parameters.ParamByName('c').Value:=Trim(Edit4.Text);
    Parameters.ParamByName('d').Value:=Trim(Edit5.Text);
    Parameters.ParamByName('e').Value:=Trim(Copy(TntComboBox1.Text,1,4));
    Parameters.ParamByName('f').Value:=Trim(Memo1.Lines.Text);
    ExecSQL;
    ShowMessage('添加成功!');
  end;
  Button1.Click;
end;

解决方案 »

  1.   

    夠了,我设的是nvarchar(500),
    还有我在TntMemo里只输入“光驱”,只会进去“光”,只是两个字哦
      

  2.   

    是不是TntControl有特别的设置?
      

  3.   

    如果是123abc等非汉字的话就可全录进去
      

  4.   

    你的Memo1里是不是有换行回车符啊?
      

  5.   

    这不是录入控制的BUG,而是ADO的BUG
      

  6.   

    那如何处理?我测试
    1,update时可以,没问题
    2,insert只录入一个字段时可以,真怪了
      

  7.   

    TntComboBox1  是不是要把它设为unicode 的类型才行