begin
with query2 do
begin
str:='select 银行帐号 from userinfo  where 银行帐号 like '+'''%'+''+edit4.Text +'''';
str1:='select 银行帐号 from userinfo  where 商家名称 like '+'''%'+''+edit4.Text +'%'+'''';
str2:='select max(通知单编号) from money';
str3:=formatdatetime('',now);
close;
sql.Clear;
sql.add('insert into money(银行帐号,通知单编号,注入资金,注入时间)values(:a,:b,:c,:d)');
if RadioButton1.Checked then
begin
parambyname('a').Asstring:=str;
end
else
begin
parambyname('a').AsString:=str1;
end;
parambyname('b').Asstring:=str2;
parambyname('c').AsString:=trim(edit10.text);
parambyname('d').Asdatetime:=strtodatetime(str3);
execsql;

解决方案 »

  1.   

    我加长了,可以写进了,但是写进去的不是str所代表的内容,而是
    select 银行帐号 from userinfo  where 银行帐号 like '%00000000'
    是这句代码哪里错了吗?
      

  2.   

    怎么写进去的是整个 SQL语句呢?
      

  3.   

    插入的字符长度比数据库字段长度要长,所以就Insert不进去了,
      

  4.   

    把你的begin 以下的代码换成下面的就行了str1:='select 银行帐号 from userinfo  where 商家名称 like '+'''%'+''+edit4.Text +'%'+'''';
    str2:='select max(通知单编号) as bb from money';
    str3:=formatdatetime('',now);
    close;
    sql.Clear;
    sql.add('insert into money(银行帐号,通知单编号,注入资金,注入时间) select * from (:a) a,(:b)b,(:c)c,(:d)d');
    if RadioButton1.Checked then
    begin
    parambyname('a').Asstring:=str;
    end
    else
    begin
    parambyname('a').AsString:=str1;
    end;
    parambyname('b').Asstring:=str2;
    parambyname('c').AsString:='select '+trim(edit10.text)+' as cc';
    parambyname('d').Asdatetime:='select '+strtodatetime(str3)+' as dd';
    execsql;