或者使用查询: with query do begin close; sql.clear; sql.Add('exec sp_week_analyse 12,23,45'); ExecSQL ; close; end;
给你一个调用存储过程的例子: with ADOStoredProc1 do begin Active:=False; ProcedureName:='p_fpsj_make'; Parameters.Clear; with parameters.AddParameter do begin DataType := ftVarBytes; Direction := pdInput; Name:='@sflxbh'; end; with parameters.AddParameter do begin DataType := ftVarBytes; Direction := pdInput; Name:='@yhbh'; end; with parameters.AddParameter do begin DataType := ftBytes; Direction := pdInput; Name:='@zdlb'; end; with parameters.AddParameter do begin DataType := ftInteger; Direction := pdOutput; Name:='@ireturn'; end; if not Prepared then Prepared:=True; Parameters.ParamByName('@sflxbh').Value := sflxbh; parameters.ParamByName('@yhbh').Value := yhbh; Parameters.ParamByName('@zdlb').Value := ; Parameters.ParamByName('@ireturn').Value := ; ExecProc; end;
create procedure OW_Proc_Sql
@SqlID varchar(128),
@P0 varchar(128),
@P1 varchar(128),
@P2 varchar(128),
@P3 varchar(128),
@P4 varchar(128),
@P5 varchar(128),
@P6 varchar(128),
@P7 varchar(128),
@P8 varchar(128),
@P9 varchar(128)as
begin
declare
@Text varchar(2000),
@retcode int
select @Text = @SqlID
........
end
StoredProc1.DatabaseName:='testpy';
StoredProc1.StoredProcName:='sp_week_analyse;1';
StoredProc1.Params[1].ParamType := ptInput;
StoredProc1.Params[1].AsString := 'D20040301,D20040302,D20040304,D20040305';
StoredProc1.Params[2].ParamType := ptInput;
StoredProc1.Params[2].AsString := 'È«Íø';
StoredProc1.Params[3].ParamType := ptInput;
StoredProc1.Params[3].AsString := '7-23';
StoredProc1.Prepare;
StoredProc1.ExecProc;
with query do
begin
close;
sql.clear;
sql.Add('exec sp_week_analyse 12,23,45');
ExecSQL ;
close;
end;
with ADOStoredProc1 do
begin
Active:=False;
ProcedureName:='p_fpsj_make';
Parameters.Clear;
with parameters.AddParameter do
begin
DataType := ftVarBytes;
Direction := pdInput;
Name:='@sflxbh';
end;
with parameters.AddParameter do
begin
DataType := ftVarBytes;
Direction := pdInput;
Name:='@yhbh';
end;
with parameters.AddParameter do
begin
DataType := ftBytes;
Direction := pdInput;
Name:='@zdlb';
end;
with parameters.AddParameter do
begin
DataType := ftInteger;
Direction := pdOutput;
Name:='@ireturn';
end;
if not Prepared then Prepared:=True;
Parameters.ParamByName('@sflxbh').Value := sflxbh;
parameters.ParamByName('@yhbh').Value := yhbh;
Parameters.ParamByName('@zdlb').Value := ;
Parameters.ParamByName('@ireturn').Value := ;
ExecProc;
end;
好熟悉的sflxbh yhbh 啊!