存储过程的问题,请大虾帮忙,在线等待中!
海洋‘s 2002-08-23 11:09:31 存储过程的问题,请大虾帮忙,在线等待中!
我想根据我输入的数据值,从另一个表中取得该表的CW的值,具体如下:
jh ypbh yplx djsd1 djsd2 cw
大北1 556106 岩心 5561.06
大北1 557218 岩心 5572.18
大北1 557246 岩心 5572.46
大北1 557256 岩心 5572.56
大北1 557260 岩心 5572.6
大北1 557271 岩心 5572.71
在上边的数据中,Cw的值是通过用户输入djsd1,djsd2的值后,当鼠标移动到CW上时,CW的值自动添加,即从另一个表AZ17中取得,数据如下:
jh djsd2 cw jcgxmc hd djsd2
大北1 200 Q 190.86 200
大北1 3687 N2k 3487 3687
大北1 4342 N1-2k 655 4342
大北1 5283.05 N 5083.05 5283.05
大北1 5283.5 N1j 941.5 5283.5
大北1 5451 E2-3 167.5 5451
大北1 5451 E2-3s 167.5 5451
大北1 5570 XS 5570 5570
当用户输入DJSD1的值为200的时候,CW的值从AZ17中取得Q,那么Q就是该DJSD1和DJSD2所对应的层位。当然,有时候可能是用户只输入一个DJSD1,而DJSD2没有数据,这样也可以
从AZ17中取得CW的值;有时候可能是用户只输入一个DJSD2,而DJSD1没有数据同样CW的值也从Az17中取得。
为此,我写了一个函数,保存在服务器端,如下:
CREATE OR REPLACE FUNCTION get_cw(
v_jhid VARCHAR2, n_djsd number)
RETURN VARCHAR2 IS
v_cw VARCHAR2(20);
sql_stmt VARCHAR2(1000);
BEGIN
sql_stmt:='SELECT cw FROM az17 '||
'WHERE djsd2=(SELECT MIN(djsd2) FROM az17 WHERE djsd2>=:1 AND jh=:2) and rownum=1';
EXECUTE IMMEDIATE sql_stmt INTO v_cw using n_djsd,v_jhid;
RETURN v_cw;
END;
我想在客户端调用这个函数,用来实现上边的功能,代码写在窗口中的DW_1的temChanged事件中呢,还是写在其他什么事件中呢,具体怎么写呢?谢谢