sqlserver sp_OACreate使用例子
原文:http://www.cftea.com/c/2007/08/4C224V473WENBZ77.asp T-SQL 中是可以调用 OLE 的,将这一功能应用到触发器、存储过程等对象中,SQL Server 运用变得更贴近我们的功能,更加满足我们的需要。 T-SQL 中有七个存储过程是围绕本节内容进行的,我们只介绍其中最常用的四个存储过程,其余内容您可以参见 SQL Server 联机丛书。 -->sp_OACreate 创建 OLE 对象实例。 -->sp_OAMethod 调用 OLE 对象的方法。 -->sp_OAGetErrorInfo 获取 OLE 自动化错误信息。 DECLARE @errCode int DECLARE @fso int EXEC @errCode = sp_OACreate 'Scripting.FileSystemObject',@fso OUT /*等效于:set fso = Server.CreateObject("Scripting.FileSystemObject")*/ if @errCode <> 0 BEGIN DECLARE @description varchar(256) EXEC sp_OAGetErrorInfo @fso,NULL,@description OUT PRINT @description /*SQL 查询分析器中有效*/ END DECLARE @exists bit EXEC sp_OAMethod @fso,'FileExists',@exists OUT,'C:foo.txt' /*等效于:exists = fso.FileExists("C:foo.txt")*/ PRINT @exists /*SQL 查询分析器中有效*/ DECLARE @f int EXEC sp_OAMethod @fso,'CreateTextFile',@f OUT,'C:foo.txt',1 /*等效于:set f = fso.CreateTextFile("C:foo.txt",true)*/ EXEC sp_OAMethod @f,'Write','写一行内容' /*等效于:f.Write("写入内容")*/ EXEC sp_OAMethod @f,'Close' /*等效于:f.Close*/ EXEC sp_OADestroy @f /*等效于:set f = nothing*/ EXEC sp_OADestroy @fso /*等效于:set fso = nothing*/ 上述中 bit 类型的值 1 表示 true,bit 类型的值 0 表示 false。 示例将判断 C 盘下是否存在 foo.txt,并且创建一个 foo.txt,并向其中写入一行文字。 代码似乎有些多,不过您有兴趣一定要仔细看完,因为并不复杂,而且它涵盖了最常用的代码。 讲解 sp_OACreate 创建 OLE 对象实例。 扩展 T-SQL 中还可以利用 sp_addextendedproc 向 SQL Server 注册新扩展存储过程的名称,但是 SQL Server 2005 联机丛书中已经说明将在后续版本中删除该功能,不建议我们继续使用该存储过程,所以这里不介绍 sp_addextendedproc。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |