delphi用存储过程参数有关问题?

delphi用存储过程参数问题???
ALTER     procedure   dbo.getbh     @lx   char(1),@bh   char(12)   output   as  
                 
     
        Close;
Parameters.ParamByName( '@lx ').Value:=mysel;
Execproc;
returnstr:=Parameters.ParamValues[ '@bh '];总是提示参数类型不对???

------解决方案--------------------
// 改为
returnstr := Parameters.ParamByName( '@bh ').Value;
------解决方案--------------------
类型不好?
-------
在程序中赋值ProcedureName,需要手工动态创建过程的参数!
------解决方案--------------------
在我这里测试没问题~
procedure TForm1.Button1Click(Sender: TObject);
var
SS:String;
begin
ss:= 'SDF ';
with ADOStoredProc1 do
begin
ProcedureName:= 'getbh;1 '; //注意存储过程名
Parameters.ParamByName( '@lx ').Value:=ss;
ExecProc;
ShowMessage(Parameters.ParamByName( '@bh ').Value);
end;
end;