如何使用Sybase ASE数据库的扩展存储过程?
来源:互联网 发布:网络运营部面试 编辑:程序博客网 时间:2024/05/09 00:54
使用ASE已经有很长时间了,在使用过程中,不断深入的了解了它的各种功能,但是对于扩展存储过程基本上没有书籍中有讲到过,论坛上似乎也没有出现过此类问题,但是它确实能够解决部分特殊问题,而且功能是十分强大的,我专门对此进行了研究,现将结果与大家共享.
有时候大家可能会有这种需求,就是需要对服务器进行某些操作,比如拷贝文件,启动或者停止某些服务和程序等.一般这种情况下,PB就无能为力了,只有辅助于众多的API函数,并且往往要通过服务器操作系统复杂的权限控制,然后还要执行某些操作,这不是一般PB开发者能够从容做到的.扩展存储过程为我们提供了一个便利的方法.
1.常见的扩展存储过程:
xp_cmdshell:以命令行的方式在服务器端执行某些操作.命令行的功能是非常强大的,几乎上可以做任何事情.
2.mail系列的扩展存储过程.
3.自定义的存储过程,为了实现某些特殊的功能.
下面我们主要以xp_cmdshell来说明如何使用扩展存储过程:
首先扩展存储过程其调用方式和普通过程的调用方式是一样的;
同样,必须有权限才能调用扩展过程;
对于xp_cmdshell还有个特殊的地方:它执行了更加严格的权限控制,即使有sa权限,缺省情况下也不能被执行,必须使用sp_configure 修改服务器配置"xp_cmdshell context" 为0,重新启动服务器,才有了这个权限.
下面我们开始通过xp_cmdshell,获取服务器的时间,很简单:
打开pb的数据库画板,用sa用户连接上数据库,输入:
exec xp_cmdshell 'date';
系统将返回服务器时间.
然后我们执行一个拷贝,将c:盘的文件test.txt拷贝到d:盘:
exec xp_cmdshell "copy c:/test.txt d:/test.txt";
最后我们来看看自定义的存储过程如何实现(没有合适的dll,没有试过):
假设我现在在客户端需要将服务器的屏幕拷贝下来,保存到硬盘,
首先将要使用的dll拷贝到系统目录下,比如xp是widows/system32下;
其次创建扩展存储过程,用scview打开扩展存储过程创建向导,输入过程名等于dll中要调用的函数名,比如我要使用的dll函数名为DScreenToBmp,然后指定dll的名称,比如ScreenToBmp.dll,创建完成.
然后在pb的数据库画板中调用此扩展过程:
exec DScreenToBmp ''c:/aa.bmp";
执行完成后,将会在c:/下看到被拷贝的服务器图片.
- 如何使用Sybase ASE数据库的扩展存储过程?
- Sybase ASE数据库使用ADO.net访问存储过程方法详解
- sybase ASE 导出数据库的所有存储过程、触发器到文件
- 也说说Sybase ASE数据库的基本使用
- Sybase存储过程的使用
- 关于Sybase ASE数据库的命名来历
- SYBASE ASE上排查问题自定义存储过程
- 如何快速导出SYBASE的存储过程
- 如何查看sybase存储过程的内容?
- 如何查看sybase存储过程的内容
- Sybase ASE段不能自动扩展空间的问题
- Sybase ASE的字符集
- Sybase ASE的字符集
- Sybase ASE的字符集
- sybase存储过程的建立和使用
- Sybase存储过程的建立和使用
- 使用存档数据库archive database实现Sybase ASE对象级别的恢复
- 使用存档数据库archive database实现Sybase ASE对象级别的恢复
- JSTL使用入门(续1)
- Leaving Las Vegas---Sting
- 不用辅助节点,实现单链表的反转。
- C++大师Lippman:我对中国程序员的忠告
- 我想我要走了……
- 如何使用Sybase ASE数据库的扩展存储过程?
- 从一个程序中启动和关闭另一个程序
- 一生
- 看了一晚上的huibian
- 进程句柄方面的问题
- 今天真开心
- XML Application
- 继续
- 男人、女人,爱情,还有我