欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

t-sql读写文件

程序员文章站 2022-04-12 21:20:35
t-sql读写文件 declare @FilePath nvarchar(400),@xmlstr varchar(8000); Declare @INT_ERR int --...
t-sql读写文件

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