SQLSERVER 2005 实现文件读写操作

 

运行下面的脚本可以再D盘新建一个nipsan.txt的文件,然后可以向文件输入“HELLO,MS SQL SERVER 2000 .I LOVE YOU”

Code
DECLARE   @object   int
  DECLARE   @hr   
int
  DECLARE   @src   varchar(
255),   @desc   varchar(255)
  Declare   @tmp   
int
  declare   @msg   varchar(
3000)
 
  SET   @msg
='Hello.   MS   SQL   Server   2000.   I   Love   you!!!'       --這字串將會被寫到SQL   Server的安裝目錄下的Nipsan.Txt文件里面
 
  
/*     取得SQL   Server的安裝路徑*/
  declare   @strPath     nvarchar(
512)
--  Exec   sp_MSGet_Setup_paths   @strPath   OUTPUT
  Set   @strPath
='d:'+'\Nipsan.Txt'       --組成文件名
 
 
  
--創建Scripting組件實例
  EXEC   @hr   
=   sp_OACreate   'Scripting.FileSystemObject',   @object   OUT
  IF   @hr   
<>   0
  BEGIN
        EXEC   sp_OAGetErrorInfo   @object,   @src   OUT,   @desc   OUT
        SELECT   hr
=convert(varbinary(4),@hr),   Source=@src,   Description=@desc
          RETURN
  END
 
  
--創建文件
  EXEC   @hr   
=   sp_OAMethod   @object,   'CreateTextFile',   @tmp   OUTPUT   ,   @strPath
  IF   @hr   
<>   0
  BEGIN
        EXEC   sp_OAGetErrorInfo   @object
          RETURN
  END
  
--把@msg寫到文件里面去
  EXEC   @hr   
=   sp_OAMethod   @tmp,   'Write',NULL,   @msg
  IF   @hr   
<>   0
  BEGIN
        EXEC   sp_OAGetErrorInfo   @object
          RETURN
  END
  
--關閉文件
  EXEC   @hr   
=   sp_OAMethod   @tmp,   'Close',NULL
  IF   @hr   
<>   0
  BEGIN
        EXEC   sp_OAGetErrorInfo   @object
          RETURN
  END
  
-----------寫文件操作Demo完成---------------------------------------------------------------
 
--打開文件
  EXEC   @hr   
=   sp_OAMethod   @object,   'OpenTextFile',   @tmp   OUTPUT   ,@strPath
  IF   @hr   
<>   0
  BEGIN
        EXEC   sp_OAGetErrorInfo   @object
          RETURN
  END
 
  SET   @msg
=''
  
--讀文件
  EXEC   @hr   
=   sp_OAMethod   @tmp,   'Read',   @msg   OUT,3000
  IF   @hr   
<>   0
  BEGIN
        EXEC   sp_OAGetErrorInfo   @object
          RETURN
  END
  
-----讀文件操作Demo完成
 
 
  SELECT   @msg   AS   RESULT
 

 

在运行上面的脚步会报一些错误,解决办法运行下面的的脚步:

Code
exec sp_configure 'show advanced options',1
go
reconfigure
go
exec sp_configure 
'Ole Automation Procedures',1
go
exec sp_configure 
'Ad Hoc Distributed Queries',1
go
exec sp_configure 
'show advanced options',0
go
reconfigure
go

你可能感兴趣的:(sqlserver)