怎么用 sp_oacreate 'adodb.stream',sp_oacreate 'Microsoft.XMLHTTP'

andyliy 2007-01-21 07:54:56
想实现的功能是去网站上下个文件

那个大哥帮个忙
...全文
446 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2007-01-22
  • 打赏
  • 举报
回复
sp_OACreate...
返回的结果最多只能到8000字节, 所以想用它来实现下载文件, 理论上是可以做到的, 但文件一般不太可能才8K这么小吧?
所以不太现实.
fish_yht 2007-01-22
  • 打赏
  • 举报
回复
没接触过
帮顶
关注
happydreamer 2007-01-22
  • 打赏
  • 举报
回复
sp_OACreate等系统储存过程调用File System Object组件来读写
happydreamer 2007-01-22
  • 打赏
  • 举报
回复
参考一下


示例代码:
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=@strPath+'\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
y_dong119 2007-01-22
  • 打赏
  • 举报
回复
这个因该是应用程序实现吧,数据库好像不行哈
andyliy 2007-01-22
  • 打赏
  • 举报
回复
参考一下


示例代码:
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=@strPath+'\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

这个我看过了,
ReViSion 2007-01-21
  • 打赏
  • 举报
回复
哈哈,帮顶

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧