storedproc:
   create procedure testproc
          @name char(8)
   as
   insert into tablename  
   values(@name)delphi program:
   storedproc1.storedprocname:=testproc;
   ..........when storedproc1.active=true
system message: didn't find testproc ...
并且STOREDPROC1的PARAMS也对参数设置了。
当TESTPROC中不带参数时,没有错误;
究竟怎么回事?

解决方案 »

  1.   

    把你激活storeprocedure1的程序贴出来看一看!!
      

  2.   

    storedproc1.parambyname('@name').asstring:=abc;
    storedproc1.prepare;
    storedproc1.execproc;这有问题吗?
      

  3.   

    干嘛一定要用STOREDPROC组件?用query组件就挺好:
    1、用一个TDATABASE控件连到数据库。
    2、用一个TQUERY控件query1连到上面的TDATABASE控件。
    3、query1.close;
       query1.sql.clear;
       query1.sql.add('exec testproc '+name参数字串);
       query1.execsql;
      

  4.   

    当你使用sybase时用TQuery没有问题,但用Oracle时你必须用TStoreProc
      

  5.   

     storedproc1.parambyname('@name').asstring:=abc;
     abc是什么?变量吗?加个引号试试????
      

  6.   

    将STOREDPROC组件设为静态的吧,也就是给这个存储过程专门用一个组件,所有的属性均在设计时设好.
      

  7.   

    在CB中调用存储过程的方法,在Delphi照写就是了。AnsiString GetNewID(AnsiString IDPara,AnsiString DType,AnsiString DType_B)
    {
       TStoredProc *StoredProc1;
       StoredProc1 = new TStoredProc(NULL);   StoredProc1->DatabaseName="yourdatabasename";
       StoredProc1->StoredProcName="dbo.P_GETNEWID";   StoredProc1->Params->CreateParam(ftString, "@IDPara", ptInput);
       StoredProc1->Params->CreateParam(ftString, "@DType", ptInput);
       StoredProc1->Params->CreateParam(ftString, "@DType_B", ptInput);
       StoredProc1->Params->CreateParam(ftInteger, "@ID_N", ptOutput);
       StoredProc1->Params->CreateParam(ftString, "@ID_S", ptOutput);   StoredProc1->ParamByName("@IDPara")->AsString=IDPara;
       StoredProc1->ParamByName("@DType")->AsString=DType;
       StoredProc1->ParamByName("@DType_B")->AsString=DType_B;
       try
       {
          StoredProc1->ExecProc();
       }
       catch(Exception * mye)
       {
          ErrorBox(mye->Message.c_str());
          delete StoredProc1;
          return "";
       }   AnsiString Retv;
       Retv = StoredProc1->ParamByName("@ID_S")->AsString;
       delete StoredProc1;   return Retv;}
      

  8.   

    to stockwalker :
      用QUERY组件没有问题。thanks! 
    TO NONONONO:
       CB我没有试,还是要谢谢你;
    还有其他各位,一并谢了!现在STOREDPROC的问题我已经解决了:
    原因:
        在SQL SERVER中支持STOREDPROC重名,她自动用
    STOREDPRCO NAME;1(2,3)来标示,我用的STOREDPROC
    没有重名,但DELPHI里STOREDPROC1里自动还是把TESTPROC;1
    作为过程名,只要改成TESTPROC,重设以下参数,就OK了;