已经N天都没有解决这个问题了,大家集思广益下!

解决方案 »

  1.   

    直接用Connect对象的Execute方法执行下面的SQL语句   
      recordsetprt   =   connectptr->Execute("select   my_function(myvalue)   from   dual");   
      产生的结果集就是函数结果
      

  2.   

    Execute(VARIANT *rEecordaAddected,VARIANT *Parameters,long Options)
    这是Execute的语法 如上调用根本不能编译 
    请再次指教
      

  3.   

    创建函数:
    CREATE OR REPLACE  FUNCTION "CAST"."TEST_W" test_w
      (    prm1 IN integer ,prm2 in varchar2    ) RETURN   integer
      is
      div integer;
      begin
      div:=1;
      return div;
    end;
    调用:
    char *p_limit_name="COIL_DM_INNER";
     int maxmin=0;
     m_conn->Execute ("select test_w(maxmin,p_limit_name) from dual");
    错误代码:
    不能转化Execute的第一个参数
      

  4.   

    CString strSQL(_T(""));
    char *p_limit_name="COIL_DM_INNER";
    int maxmin=0;strSQL.Format(_T("select test_w(%d,'%s') from dual"), maxmin, p_limit_name);
    m_conn->Execute(...);
      

  5.   

    char *p_limit_name="COIL_DM_INNER";
     int maxmin=0;
      _variant_t ra;this->m_record  = m_conn->Execute( "select test_w(maxmin,,p_limit_name) from dual",&ra,adCmdText);现在能够编译过去,但是运行到Execute时,提示内存使用
      

  6.   

    我已经调试通了
    但是还有一个问题 我是在vc的win32控制台上运用的。不识别CString,
    我怎么把变量char *p_limit_name="COIL_DM_INNER"; int maxmin=0;
    带入到Execute( "select test_w(maxmin,,p_limit_name) from dual"..)中,
    使其成为select test_w(o,"COIL_DM_INNER") from dual呢?谢谢各位
      

  7.   

    begin
     my_function(myvalue);
    end;
      

  8.   

    char pszSQL[255] = {'\0'}; sprintf(pszSQL, "select test_w(%d,'%s') from dual", maxmin, p_limit_name);
    printf(pszSQL);
      

  9.   

    多谢各位了 
    特别是 21bird
      

  10.   

    怎么给你分阿 21bird 
    想加qq,我的是22849939
      

  11.   

    我还有一个问题,怎么样从_variant_t的变量中
    取得其中的字符串??