我使用delphi xe5 dbexpress+Clientdataset连接MySQL的
ClientDataset1.Close;
ClientDataset1.CommandText:= 'CALL PageProc(''*'',''MT_Info'','' '','' order by Frame_no'',3,50,@RecCount,@PageCount)';
ClientDataset1.Open;
是可以返回数据集的,但没办法获取@RecCount,@PageCount这两个输出参数的值。ClientDataset1.Close;
ClientDataset1.CommandText:= 'CALL PageProc(''*'',''MT_Info'','' '','' order by Frame_no'',3,50,:RecCount,:PageCount)';
ClientDataset1.Open;
改成这样是可以检测到参数,但出现
OUT or INOUT argument 7 for routine ly4s.PageProc is not a variable or NEW pseudo-variable in BEFORE trigger.
这个错误。请问怎样能获取数据集的同时又能获取输出参数的值呢?

解决方案 »

  1.   

    你需要再运行一下 select @RecCount,@PageCount; 和到参数。call proc(@x);
    select @x;
      

  2.   

    ClientDataset1.Close;
    ClientDataset1.CommandText:= 'CALL PageProc(''*'',''MT_Info'','' '','' order by Frame_no'',3,50,@RecCount,@PageCount)';
    ClientDataset1.Open;
    ClientDataSet2.Close;
    ClientDataSet2.CommandText:='select @PageCount as aValue';
    ClientDataSet2.Open;
    Edit1.Text:=ClientDataSet2.FieldByName('aValue').AsString;
    我试了,结果是空白的。不知道这样写是否正确。