各位大侠!用sql语句怎样照片存入sql server数据库

解决方案 »

  1.   

    我建议存图片路径.
    如果想存入数据库,参考下面的内容:ntext、text 和 image
    用于存储大型非 Unicode 字符、Unicode 字符及二进制数据的固定长度和可变长度数据类型。Unicode 数据使用 UNICODE UCS-2 字符集。ntext可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-92 中的同义词是 national text。text服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。image可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间。 注释
    下面的函数和语句可以与 ntext、text 或 image 数据一起使用。函数 语句 
    DATALENGTH  READTEXT 
    PATINDEX SET TEXTSIZE 
    SUBSTRING UPDATETEXT 
    TEXTPTR WRITETEXT 
    TEXTVALID   
      

  2.   

    一般建议存储路径 方便程序调用不过也可以用二进制数据流varbinary可以用ntext text image 2005以上还可以用varbinary(max)
      

  3.   

    假如你有一张testTable表有两个字段,如:FileName varchar(255)
    ExternalFile varbinary
    当想存储文件到表里面,可以使用SQL语句如:Insert into TestTable(FileName , ExternalFile)
    Select 'PitureName', BulkColumn FROM OPENROWSET(
    Bulk N'C:\FileLocation\PitureX.jpg', SINGLE_BLOB)可参考: http://www.microsoft.com/technet/prodtechnol/sql/2000/reskit/part3/c1161.mspx?mfr=true
      

  4.   

    不建议LZ将图片存成二进制流
    如果数据量较大的话,对于数据库服务器来讲的话是个不小的压力,建议将存放图片的路径做为字符串保存在字段中,然后通过查询反馈的图片路径对其进行相应的操作,
    这样一个方便管理,另外一方面在数据量比较大的情况下,也不会因为数据的执行效率问题造成不必要的麻烦。以上只是个人的一点意见,也许不专业,但是可以给LZ一些参考。
      

  5.   

    能帮忙解释一下select后面的语句吗?openrowset 和single_blob表示什么
      

  6.   

    保存到数据库 确实不是个好主意 那还不如保存到xml 或者txt 等等
    如果一定要保存到 数据 我建议在保存到数据库之前 把图片文件转成二进制文件在传 
    一个图片转成二进制以后 大小估计要增加30% 也不是什么好事。我估计唯一的好处就是传输之前不用在把图片转成二进制。其中性能,没有具体测试过。远点的还有 压缩 解压缩了
    随便说说。呵呵。