Delphi中常常有用TStoredProc组件调用存储过程的语句。
通常的调试方法是跟踪代码中传入的实参,配合数据库中存储过程定义的形参,一一对应,进行调试。
对于参数数量少的情况,这种方法没什么不妥,但对于有几十个参数的存储过程,甚至传参顺序和定义顺序不同的情况,一一对应实参形参就变得很麻烦。
一个小技巧,可以通过代码来生成“形参-实参”对,进行调试。
var aList:TStringList;
aName,aValue:String;
astor:TStoredProc;
I:integer;
begin
with astor do
begin
for I:=0 to parameters.count -1 do
begin
aName:=parameters.items[I].displayName;
aValue:=parameters.items[I].value;
if VarIsEmpty(parameters.items[I].value) then aValue:='Unassigned';
else if VarIsNull(parameters.items[I].value) then aValue:='null';
else aValue:=VarToStr(parameters.items[I].value);
alist.add(aName+'='+aValue);
end;
end;
end;