日期:2014-05-17  浏览次数:20542 次

关于SQL SERVER2005通过存储图片的问题
SQL 存储图片: 1 建立存储过程

USE college
GO
CREATE PROCEDURE sp_textcopy(
@srvname varchar(30),
@login varchar(30),
@password varchar(30),
@dbname varchar(30),
@tbname varchar(30),
@colname varchar(30),
@filename varchar(30),
@whereclause varchar(30),
@direction char(1)
)
AS
DECLARE @exec_str varchar(255)
SELECT @exec_str =
' textcopy /s '+ @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' / ' + @direction
EXEC master..xp_cmdshell @exec_str


2 建表和初始化数据

USE college
CREATE TABLE picture (编号 int,图片 image)
GO
INSERT picture values(1,0x)  
INSERT picture values(2,0x)  
GO


3 读入

USE college
GO
sp_textcopy '数据库名称','用户名','密码','数据库名','表名','图片','D:\美图\2.jpg','where 编号=1','I'
GO
sp_textcopy '数据库名称','用户名','密码','数据库名','表名','图片','D:\美图\3.jpg','where 编号=2','I'
GO



4 读出成文件

USE college
GO
sp_textcopy '数据库名称','用户名','密码','数据库名','表名','图片','D:\美图\2.jpg','where 编号=1','O'
GO
sp_textcopy '数据库名称','用户名','密码','数据库名','表名','图片','D:\美图\3.jpg','where 编号=2','O'
GO


我按这个一步一步走的过程中,第三步 提示output 为NULL 第四步也提示为NULL
为什么会这样呢?我哪里不对呢?
【xp_cmdshell已经启用】
------解决方案--------------------
textcopy已经过时了

2005直接用openrowset读入
用bcp读出(2000也可以用bcp读出)

不会就查MSDN