如题
有没有可以直接将图片存进数据库的方法 
越简单越好

解决方案 »

  1.   

    顺便说  我的SQL是2005的版本
      

  2.   

    建表的时候 图片那儿 是用image类型么
      

  3.   

    存路径 数据类型可以选择varchar
      

  4.   


    image--是SQL05之前的版本時使用的類型
    直接操作,在SQL05以上版本用varbinary(max)--類型
    SQL2000用
    方法:
    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_str  2、建表和初始化数据
    create table 表名 (编号 int,image列名 image)
    go
    insert 表名 values(1,0x)    -- 必须的,且不是null
    insert 表名 values(2,0x)    -- 必须的,且不是null
    go3、读入
    sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','I' --注意条件是 编号=1sp_textcopy '你的服务器名','sa','你的密码','库名','表名','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\BinnSQL2005直接用
    INSERT INTO myTable(FileName, FileType, Photo) 
       SELECT 'Roy1.jpg' AS FileName, 
          '.JPG' AS FileType, 
          * FROM OPENROWSET(BULK N'C:\Roy1.jpg', SINGLE_BLOB) AS Document 
      

  5.   

    引用 7 楼 sych888 的回复:存路径 数据类型可以选择varchar
    怎么看存储的路径是否正确呢?
      

  6.   

    if object_id('tb')is not null drop table tb
    go
    create table tb
    (
     [Filename] varchar(20),
     filetype varchar(20), 
     [Document] varbinary(max)
    )
    go
    insert tb select '分布式事務.jpg','.jpg',* 
    from openrowset(bulk 'C:\Documents and Settings\sunadmin\桌面\臨時文件夾\分布式事務.jpg'
    ,single_blob)as[Document]
    select * from tb
    /*
    Filename             filetype             Document
    -------------------- -------------------- -----------
    分布式事務.jpg            .jpg                 0xFFD8FFE000104A4649460001010100...............
    */
      

  7.   

    学习INSERT ..... SELECT FROM OPENROWSET(BULK..)