我用delphi 7+mysql5.0  +myODBC 写了个程序现在调用存储过程都是用
sqlstring:='call 存储过程';
ADOConnection1.Execute(sqlstring);
的方式的.
但是这种方式不能取到存储过程返回的数据,ADOQuery.add('call 存储过程');
ADOQuery.open;
以上的方式好像也那不到数据,我测试过把ADOQuery连到一个datasource在接到datagrid时是程序出错的.而且由于MyODBC的某些不明原因 ,StoredProc控件是肯定用不到的了,因为不能靠控件的向导连到数据库.
我想知道我现在要如何才能取到存储过程中返回的数据呢?

解决方案 »

  1.   


    1.
    sp.ProcedureName:=ProName;
    Sp.Parameters.clear;
    Sp.Close;
    Sp.Parameters.CreateParameter('ad1', ftString, pdInput , 10, NULL);
    Sp.Parameters.CreateParameter('ad2', ftString, pdInput , 100, NULL);
    Sp.Parameters.CreateParameter('ad3', ftString, pdOutput , 255, NULL);2.
    赋值
    sp.Parameters[0].value :=ss;
    sp.Parameters[1].value :=dd;sp.prepared:=true;
    sp.ExecProc;aaaa:=StorPro.Parameters.parambyname('d3').Value;
      

  2.   

    MyODBC 默认的配置 不支持返回结果集
      

  3.   

    谢谢大家的回答.
    2楼的大虾的方法我试试看,但是我以前试过用storedPrco控件,但是都是用不到的.3楼的大虾,myODBC不是还有很多人用吗,难道就没有解决用存储过程的方法?那大家是怎么处理我现在的问题的?