两个问题:
1:如何将select从表A得到的数据写入表B中?(我现在写进数据库的是整行select语句,不是select得到的数据)[select 银行帐号 from userinfo  where 银行帐号 like '%66134052']。
2:如何得到表A最大ID+1,得到表A新的编号?var str,str1,str2,str3:string;
    s1:integer;
begin
if messagedlg('你确认要给此帐户下发数据吗?',mtConfirmation,[mbyes,mbno],0)=mryes then
if length(edit10.text)<2 then
begin
messagedlg('请输入本次注入的金额!',mterror,[mbok],0);
edit10.SetFocus;
end
else
begin
s1:=1;
with query2 do
begin
str:='select 银行帐号 from userinfo  where 银行帐号 like '+'''%'+edit4.Text+'''';
str1:='select 银行帐号 from userinfo  where 商家名称 like '+'''%'+''+edit4.Text +'%'+'''';
str2:='select max(ID) 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+s1';
parambyname('c').AsString:=trim(edit10.text);
parambyname('d').Asdatetime:=strtodatetime(str3);
execsql;
edit10.Clear;
messagedlg('资金注入成功!',mtinformation,[mbok],0);
form3.show;
form2.hide;
end;
end;
end;

解决方案 »

  1.   

    1.
    if RadioButton1.Checked then
    begin
    str:='select 银行帐号,通知单号=(select max(id)+1 from money),注入资金='+edit10.text+',注入时间=getdate() into money  from userinfo  where 银行帐号 like '+'''%'+edit4.Text+'''';
    end
    else
    begin
    str:='select 银行帐号,通知单号=(select max(id)+1 from money),注入资金='+edit10.text+',注入时间=getdate() into money  from userinfo  where 商家名称 like '+'''%'+edit4.Text+'''';
    end;
    2.你可以自增字段实现啊。
      

  2.   

    INSERT INTO b(bfield1,bfield2)
           SELECT afield1, afield2
           FROM a
      

  3.   

    改成:
    str:=' into money  select 银行帐号,通知单号=(select max(id)+1 from money),注入资金='+edit10.text+',注入时间=getdate() from userinfo  where 银行帐号 like '+'''%'+edit4.Text+'''';
      

  4.   

    var str,str1,str2,str3:string;
        s1:integer;
    begin
    if messagedlg('你确认要给此帐户下发数据吗?',mtConfirmation,[mbyes,mbno],0)=mryes then
    if length(edit10.text)<2 then
    begin
    messagedlg('请输入本次注入的金额!',mterror,[mbok],0);
    edit10.SetFocus;
    end
    else
    begin
    s1:=1;
    with query2 do
    begin
    {
    str:='select 银行帐号 from userinfo  where 银行帐号 like '+'''%'+edit4.Text+'''';
    str1:='select 银行帐号 from userinfo  where 商家名称 like '+'''%'+''+edit4.Text +'%'+'''';
    str2:='select max(ID) 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;
    'sql.add( into money  select 银行帐号,通知单号=(select max(id)+1 from money),注入资金='+edit10.text+',注入时间=getdate() from userinfo  where 银行帐号 like '+'''%'+edit4.Text+'''');
    end
    else
    begin
    'sql.add( into money  select 银行帐号,通知单号=(select max(id)+1 from money),注入资金='+edit10.text+',注入时间=getdate() from userinfo  where 商家名称like '+'''%'+edit4.Text+'''');
    end;
    {
    parambyname('b').Asstring:='str2+s1';
    parambyname('c').AsString:=trim(edit10.text);
    parambyname('d').Asdatetime:=strtodatetime(str3);
    }
    execsql;
    edit10.Clear;
    messagedlg('资金注入成功!',mtinformation,[mbok],0);
    form3.show;
    form2.hide;
    end;
    end;
    end;
      

  5.   

    var str,str1,str2,str3:string;
        s1:integer;
    begin
    if messagedlg('你确认要给此帐户下发数据吗?',mtConfirmation,[mbyes,mbno],0)=mryes then
    if length(edit10.text)<2 then
    begin
    messagedlg('请输入本次注入的金额!',mterror,[mbok],0);
    edit10.SetFocus;
    end
    else
    begin
    s1:=1;
    with query2 do
    begin
    close;
    sql.Clear;
    if RadioButton1.Checked then
    begin
     sql.add(' into money  select 银行帐号,通知单号=(select max(id)+1 from money),注入资金='+edit10.text+',注入时间=getdate() from userinfo  where 银行帐号 like '+'''%'+edit4.Text+'''');
    end
    else
    begin
    sql.add(' into money  select 银行帐号,通知单号=(select max(id)+1 from money),注入资金='+edit10.text+',注入时间=getdate() from userinfo  where 商家名称like '+'''%'+edit4.Text+'''');
    end;
    execsql;
    edit10.Clear;
    messagedlg('资金注入成功!',mtinformation,[mbok],0);
    form3.show;
    form2.hide;
    end;
    end;
    end;