有一个张表名为jsdchang1,我想更新这个表里的数据,更新的字段来自于另一个.
我写了一个存储过程想用循环来完成,一条一条的更新,我的代码如下:
窗体上我分别放了三个控件adoquery,adotable,adostoredproc,
原来的程序如下:
var
i:integer;
company:string;
 for i :=1 to Adotable1.FieldCount  do
  begin
    adotable1.Open;
    company:=adotable1.FieldByName('unitname').Value;     adostoredproc1.ExecProc ;
     adotable1.Next;
     adotable1.close;
  end;
存储过程如下:下面这个存储过程我想往里面传两个表名参数,因为是要更新六个表.
CREATE PROCEDURE dbo.proUpdateJsd 
AS
declare @tabjsd varchar(20)
declare @tabcompany varchar (20)
exec('UPDATE '+@tabjsd+
'SET parentname =(SELECT company_name FROM '+@tabcompany
 +'WHERE '+@tabcompany+'.company_subname = '+@tabjsd+'.unitname), 
    parentid =
          (SELECT parentid
         FROM '+@tabcompany+
         'WHERE '+@tabcompany+'.company_subname = '+@tabjsd+'.unitname)
   companyid=(select company_id from '+@tabcompany+'where '+@tabcompany+'.company_subname ='+@tabjsd+'.unitname)')
GO问题有如下几个:
我怎么使adostoredpro1传递参数,这个循环我怎么写?

解决方案 »

  1.   

    sp_PartMoney.Connection := con_SystemLog;
      sp_PartMoney.Close;
      sp_PartMoney.ProcedureName := 'PrGm_GetCash';
      sp_PartMoney.Parameters.Refresh;
      sp_PartMoney.Parameters.ParamByName('@inbSilverCloudNet').Direction := pdoutput;
      sp_PartMoney.Parameters.ParamByName('@inbSilverCloudNet').Value := inbSilverCloudNet;  sp_PartMoney.Parameters.ParamByName('@inb99Bill').Direction := pdoutput;
      sp_PartMoney.Parameters.ParamByName('@inb99Bill').Value := inb99Bill;  sp_PartMoney.Parameters.ParamByName('@inbSilver168').Direction := pdoutput;
      sp_PartMoney.Parameters.ParamByName('@inbSilver168').Value := inbSilver168;  sp_PartMoney.Parameters.ParamByName('@inbSilverSMS').Direction := pdoutput;
      sp_PartMoney.Parameters.ParamByName('@inbSilverSMS').Value := inbSilverSMS;  sp_PartMoney.Parameters.ParamByName('@inySort').Value := lSort;  sp_PartMoney.Parameters.ParamByName('@dtmBgnDate').Value := BgnDate1.Date;
      sp_PartMoney.Parameters.ParamByName('@dtmEndDate').Value := EndDate1.Date;
      sp_PartMoney.ExecProc;
      

  2.   

    Direction默认是input的,如果不需要返回该参数的结果,可以不设置。