注册 登录
编程论坛 SQL Server论坛

使用SQL语句能否将图片插入到数据库中?

power6d 发布于 2006-06-13 10:29, 3469 次点击
请问能否使用SQL语句将一张图片插入到数据库中?
21 回复
#2
林升2006-06-14 09:15

现阶段还不可以,不过以后就有可能了,,哈哈

#3
小笨笨2006-06-15 13:10

用sql2000可以,不过图片不能太大。我试过一次,插入一张图片的时候,只插入了一半,还有一半插入不了了。

sql2005和vs2005相结合了,就可以用vs2005来插入图片。

#4
power6d2006-06-19 14:12

那用SQL语句到底怎么写啊?

#5
3las2006-06-20 15:30

以前用access的时候曾经做过类似项目
mssql的话image类型应该可以解决这个问题
最大长度为 2^31 - 1 (2,147,483,647) 个字节
应该是够用了.

#6
LouisXIV2006-06-20 23:44

方法:
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
go

3、读入
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','I' --注意条件是 编号=1

sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bb.doc','where 编号=2','I' --注意条件是 编号=2

go

4、读出成文件
sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\图片.bmp','where 编号=1','O' --注意条件是 编号=1

sp_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

#7
小笨笨2006-06-21 08:26
好办法啊。
#8
power6d2006-06-21 09:12
[IMG]D:\power6d.jpg[/IMG]

帮我看看这算插入成功了吗?
#9
LouisXIV2006-06-21 09:15


不要在BBS上贴硬盘图片

没有一个BBS是支持的,除了你自己没有人可以看见
#10
power6d2006-06-21 09:30

1。TEXTCOPY Version 1.0
2。DB-Library version 8.00.194
3。Data copied into SQL Server image column from file 'D:\power6d.gif'.
4。NULL

共输出这四行结果。算插入成功了吗?

#11
LouisXIV2006-06-21 09:32
你自己再导出来看看不就知道了

数据库里是2进制代码保存的
#12
LouisXIV2006-06-21 09:37
没有人会建议你这样做,效率低下不说,数据库还会额外变大
#13
power6d2006-06-21 09:43
那一般制作网站所用到的这么多图片都该怎么保存进数据库的啊?总不能写死吧。
#14
LouisXIV2006-06-21 09:50
基本上都是分数据库和图片库2个地方放置

数据库内只有图片的属性(图片名,大小,格式等)以及在图片库内的对应路径

直接通过路径从图片库调用指定图片
#15
power6d2006-06-21 09:53
哦。明白了。谢谢啊。
#16
a_zhe6192006-08-18 11:19

真是高手 强

#17
duyong0072006-08-18 17:08
可不可以直接上传到服务器文件目录保存阿
#18
videolearner2006-08-25 10:35
我在使用6楼的方法时,为什么会出现如下错误?
无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 'test..xp_cmdshell'。仍将创建该存储过程。
未能找到存储过程 'test..xp_cmdshell'。
test是我建的数据库。
#19
videolearner2006-08-25 10:42
LouisXIV,你在14楼里说的方法,是不是要用某种语言如c++来通过数据库中的路径去找图片库中的图片。
现在刚接触这些东西,好多都不懂。
#20
神经塔2006-08-26 20:03

长见识了

#21
videolearner2006-08-28 08:35
3q,  I have solved this problem!
#22
nxcgh20062006-09-22 10:53

版 主 解 讲 精彩
学到东西了
谢谢了

1