新建一个空的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的大名哈..
加入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的大名哈..
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12378643/viewspace-619918/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12378643/viewspace-619918/