我用的数据库是sql sever.
我的"yonghu"表中有一个触发器,作用是每次在表中添加一行时,能自动算出行"content"(char)中数据的长度,并把结果自动放入这个表的另外一列"length"中.
在sql sever中添加一行时触发器的功能可以实现.
但在delphi中用我写的添加程序时发现触发器算出的长度比正确长度多了2.
我输入用的是memo1.我的触发器程序是:
CREATE TRIGGER tr_yonghu ON yonghu 
FOR INSERT,update
AS
update yonghu set 长度=len([短信内容]) where 号码 in (select 号码 from inserted)我的添加程序是:
procedure TForm3.Button3Click(Sender: TObject);
begin
    if edit1.text='' then
    begin
    showmessage('请输入号码!');
    abort;
    end;
    adoquery1.Insertrecord([edit1.text,memo1.text]);//memo1中的内容是给"content"的.
     begin
         showmessage('已成功添加!');
         abort;
     end;
end;我是菜鸟,又没分了,希望好心人帮帮我,谢谢!

解决方案 »

  1.   

    如果在查询分析器中执行Insert语句结果正确,则说明触发器是正确的Delphi中的Memo是不是多添加一个回车换行符($0D $0A)在后面?增加的这个长度应该是这个
      

  2.   

    可以这样子,
    1)在adoquery1.Insertrecord([edit1.text,memo1.text]);
    语句之前可以用Showmessage(memo1.text)的方式看看memo1.text到底是什么内容,和你预想的啊有出入
    2)你不妨可以在memo1.text加上trim()函数,是否有空格啊