海市蜃楼古代人图片:我的在oracle中使用trigger调用dll的源码

来源:百度文库 编辑:中财网 时间:2024/04/19 06:31:43

我的在oracle中使用trigger调用dll的源码[问题点数:200分,结帖人:ZHENG017]

  • ZHENG017
  • 等 级:
  • 结帖率:
楼主发表于:2002-10-31 08:47:23 新建一个空的win32   dynamic_link   library   project.取名为testdll.
加入testdll.cpp.源程序如下:
#include  
int   __stdcall   DllMain(HANDLE,DWORD,LPVOID)
{ return   1;
}
short   test(void)
{
      return   system( "dir   e:   >   e:\\mydire.txt ");  
}
加入testdll.def:如下:
LIBRARY   "testdll.dll "
EXPORTS
test   @1
then   click   the   bulid.get   the   testdll.dll.copy   to   e:\
打开sql   plus.登录(最好不要用internal身份登录).
建立一个包:
SQL>   create   or   replace   library   wz_test
    2     as   'e:\testdll.dll ';
    3     /
建一个function:
SQL>   create   or   replace   function   wz_funtest
    2     return   binary_integer
    3     as
    4     external
    5     library   wz_test
    6     name   "test "
    7     language   c
    8     parameters   (return   short);
    9     /
建一个表
SQL> create   table   ff(addr   varchar2(20));
建立一个trigger:
SQL>   create   or   replace   trigger   my_test_trigger   after   insert   on   ff
    2     declare
    3     my_result   binary_integer;
    4     begin
    5     my_result   :=wz_funtest;
    6     end;
    7     /
现在
SQL> insert   into   ff   values( 'chengdu ');
然后在e盘看看是不是多了一个文件.
可以把我的dll中test函数改一下:用FindWindowEx,SendMessage跟自己程序通信或者直接用socket通信.
嘻嘻,如果有转载的话,请署上zheng017的大名哈..