t-sql读写文件

来源:互联网 发布:程控切纸机编程表 编辑:程序博客网 时间:2024/06/10 21:32
declare @FilePath nvarchar(400),@xmlstr varchar(8000);
 Declare @INT_ERR int ----错误代码,0 成功
 Declare @INT_FSO int ----FSO对象标志
 Declare @INT_OPENFILE int ----文本文件对象标志
 Declare @STR_CONTENT varchar(8000) ----文件内容
 DECLARE @output varchar(255)
 DECLARE @hr int
 DECLARE @source varchar(255)
 DECLARE @description varchar(255)
 select @FilePath = logid from optlog;
 set @FilePath = 'f:/' + @FilePath + '.xml';
 --set @FilePath='f:/mp.xml'
 --set @STR_CONTENT = @xmlstr
 select @STR_CONTENT = xmlinfo from optlog;
 --创建FSO对象
 --甚至可以是我们自己写的dll控件都可以
 EXEC @INT_ERR = sp_OACreate 'Scripting.FileSystemObject', @INT_FSO OUTPUT
 if(@INT_ERR <> 0)
 BEGIN
  EXEC sp_OAGetErrorInfo @INT_FSO
  RETURN
 END
 -----文件路径
 Declare @STR_FILENAME nvarchar(50)
 Set @STR_FILENAME = @FilePath
 ---FSO.OpenTextFile(FileName, 1, FALSE),第二个参数1表示只读,第三个参数false表示文件不存在时不创建
 ----创建文本文件对象
 ----FSO的所有方法都可以用下面类似方式创建,可以实现文件的任意操作,非常方便
 EXEC @INT_ERR=SP_OAMETHOD @INT_FSO,'CreateTextFile',@INT_OPENFILE OUTPUT,@STR_FILENAME
 if(@INT_ERR <> 0)
 BEGIN
  EXEC sp_OAGetErrorInfo @INT_OPENFILE,@source OUT, @description OUT
   SELECT @output = '  Source: ' + @source
    PRINT @output
    SELECT @output = '  Description: ' + @description
    PRINT @output
  RETURN
 END
 ----读取文件,内容放到@STR_CONTENT
 ----读到了文件内容,后面的处理就好办了
 EXEC @INT_ERR=SP_OAMETHOD @INT_OPENFILE,'Write',null,@STR_CONTENT
 if(@INT_ERR <> 0)
 BEGIN
  EXEC sp_OAGetErrorInfo @INT_FSO, @description OUT
SELECT @output = '  Source: ' + @source
    PRINT @output
    SELECT @output = '  Description: ' + @description
    PRINT @output
  RETURN
 END
 ----销毁创建的对象
 EXEC @INT_ERR=SP_OADESTROY @INT_OPENFILE
 EXEC @INT_ERR=SP_OADESTROY @INT_FSO