我的在oracle中使用trigger调用dll的源码[问题点数:200分,结帖人:ZHENG017]
| 楼主发表于:2002-10-31 08:47:23 新建一个空的win32 dynamic_link library project.取名为testdll. 加入testdll.cpp.源程序如下: #include <windows.h> 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的大名哈.. | |
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。