急求助,ClientDataSet如何调用Oracle的存储过程?(100分)

  • 主题发起人 主题发起人 steve0531
  • 开始时间 开始时间
S

steve0531

Unregistered / Unconfirmed
GUEST, unregistred user!
c/s结构,客户端如何使用ClientDataSet调用如下在Oracle中定义的函数? <br><br>Oracle中定义的函数如下: <br>CREATE OR REPLACE FUNCTION PR_GETLOGINID(LOGINID VARCHAR2, ILEN INTEGER) RETURN VARCHAR2 IS <br>&nbsp; ICOUNT INTEGER; <br>&nbsp; RESULT VARCHAR2(100); <br>BEGIN <br>&nbsp; SELECT COUNT(*) INTO ICOUNT FROM SYSUSERLIST WHERE FLOGINID=LOGINID; <br>&nbsp; IF ICOUNT = 0 THEN <br>&nbsp; &nbsp; RESULT := LOGINID; <br>&nbsp; ELSE <br>&nbsp; &nbsp; SELECT LOGINID &amp;brvbar; &amp;brvbar; '-' &amp;brvbar; &amp;brvbar; NVL(MAX(SUBSTR(FLOGINID,ILEN+2,LENGTH(FLOGINID)-ILEN-1))+1,1) INTO RESULT <br>&nbsp; &nbsp; &nbsp; FROM SYSUSERLIST WHERE FLOGINID LIKE LOGINID &amp;brvbar; &amp;brvbar; '-%'; <br>&nbsp; END IF; <br>&nbsp; RETURN(RESULT); <br>END PR_GETLOGINID; <br><br>还望不啬赐教,我调用几次都不成功。 <br>请给一下客户端使用ClientDataSet调用的代码,非常感谢。
 
ddddddddddd
 
中间你用ADOSTOREPROC控件,然后中设好DS后,客户端的CDS连接些相关的DS即可.另外,你不用CDS也可以,中间层写接口方法,客户端直接调即可
 
新了解了一个方法,可以用select PR_GETLOGINID(..) from dual 来调用,哪种方法好些?各有什么优缺点?
 
接受答案了.
 
后退
顶部