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'
GO4 读出成文件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已经启用】

解决方案 »

  1.   

    问题先贴这里了,我google了很多资料都不能解~  吃饭自习去。晚上回来希望能有大牛光顾
    在这里先谢谢了
      

  2.   

    textcopy已经过时了2005直接用openrowset读入
    用bcp读出(2000也可以用bcp读出)不会就查MSDN
      

  3.   

    谢谢 莫逆,但是openrowset是把图片以二进制形式储存到数据库中,不是说这样会影响数据库的搜索效率吗?
    不知现在有没有好的方法只把路径储存进数据库里吗?
      

  4.   

    晕,textcopy不就是存二进制吗,存路径你搞那么复杂干什么?我刚想提醒你说textcopy屁用没有,保存二进制形式,前台程序直接存取二进制流不是更省事。