InParam :TParams;
提供的函数为
function ExecProc(const ProcName: AnsiString; const InParam: Variant): Integer;如果直接调用
ExecProc('SP_Name', InParam)
编译通不过
如何将InParam转为Variant?在线等!

解决方案 »

  1.   

    delphi中Variant也是一种数据类型 Tparams 继承自tcollection 是个集合类 继承自tojbect 他们之间的转换 是没办法的。除非你按照execproc 中variants参数类型解析InParam 组合成所需信息
      

  2.   

    ExecProc  你这个存储过程 函数是谁写的? delphi自带的?
      

  3.   

    我也查过相关资料,是不可转换的可又不敢确定。。
    ExecProc是别人提供的啊。我现在头疼啊。。
    本来按理说传参数应该是TParams,但偏偏是Variant,搞得我不清楚到底是应该怎么是将TParams转为Variant,还是按规定的写Variant传入。。
      

  4.   

    DBClient单元PackageParams函数
    var
    InParam :TParams;
    VarInParam:Variant
    VarInParam :=  PackageParams(InParam);
      

  5.   

    既然有打包方法PackageParams
    就应该有解包方法,找找吧
      

  6.   

    PackageParams应该可以,试试,看它的函数是否会出错。
      

  7.   

    找源码啊,DBClient单元PackageParams声明下面就是UnpackParams
    function PackageParams(Params: TParams; Types: TParamTypes = AllParamTypes): OleVariant;
    procedure UnpackParams(const Source: OleVariant; Dest: TParams);