t-sql读写文件

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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐