如何使用Sybase ASE数据库的扩展存储过程 - 面向对象网,数据库,sybase,学习,对象 - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > 数据库 > sybase > 正文

如何使用Sybase ASE数据库的扩展存储过程

来源: www.bianceng.cn 阅读:

使用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";

Tags:
相关文章列表: