RT,开过一贴,感觉描述的不详细,再开一贴

解决方案 »

  1.   

    你刚才那个贴没引用,所以不知道你回复我了,现在回复你那个问题,图片、文件那些不能直接“塞”进表里面,要转换成二进制。有函数可以做,但是比如1M的图片转换成二进制还是1M,不知道现在有没有技术去压缩了。但是05的时候还是原样存进去,取出来也要转换。有点类似加密和解密的过程。由于图片、视频这些算是大对象类型lob,所以一直都不建议直接存储在SQLServer内部。而建议存路径,程序去找这个路径即可。这样节省了转换和再次转换的开销。也减少了数据库的大小。
      

  2.   

    1、建立过程
    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 (40),
    @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_str2、建表和初始化数据
    create table picture (编号 int,image列名 image)
    go
    insert picture values(1,0x) -- 必须的,且不是null
    insert picture values(2,0x) -- 必须的,且不是null
    go3、读入
    sp_textcopy '你的服务器名','sa','你的密码','库名','picture','image列名','c:\图片.bmp','where 编号=1','I' --注意条件是 编号=1sp_textcopy '你的服务器名','sa','你的密码','库名','picture','image列名','c:\bb.doc','where 编号=2','I' --注意条件是 编号=2go4、读出成文件
    sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','O' --注意条件是 编号=1sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.doc','where 编号=2','O' --注意条件是 编号=2
    go如果报textcopy不是可执行文件的话,你就到
    C:\Program Files\Microsoft SQL Server\MSSQL\Binn
    目录下拷备 textcopy.exe到:
    C:\Program Files\Microsoft SQL Server\80\Tools\Binn
      

  3.   

    sp_textcopy是很早之前的东西咯,而且你不用这样存吧,就把路径当作字符串直接存到一个表的列上就可以拉。可以存相对路径可以存绝对路径,只要你的程序能读取就可以了。