SQL Server中Image Data Type的使用技巧
---- 一、在表中添加图形
---- Image 数据类型不同于其它数据类型,不能用Insert 、Update的标准SQL语法进行图形的添加和修改。需用到SQL Server中的TEXTPTR 、WRITETEXT、UPDATETEXT等函数进行图形的添加和修改。
---- 首先假设在库Test中建立一张表test_image,此表中有两个字段,分别为int_id(INT),image_text (IMAGE),用来存储图形编号及图形信息。其语法如下:
CREATE TEALE test_image(
int_id INT NULL ,
image_text IMAGE NULL
)
---- 第一步往表中插入一条记录,并初始化PR_INFO字段。其语法如下:
INSERT INTO test_image VALUES (1,0xfffffff)
---- 第二步往表中写入图形信息。其语法如下:
DECLARE @@tmp_data varbinary(16)
SELECT @@tmp_data = TEXTPTR(image_text) FROM test_image WHERE int_id=1
WRITETEXT test_image.image_text @@tmp_data 0x4749463839610500050080000081bbc800000021f90400000000002c0000000005000500000204848fa958003b
---- 其中0x47494638396105….. 为图形的十六进制数据,可以通过C 、Java等工具获得。注意在写入图形信息前必须先将此数据库的 'select into/bulkcopy' 属性设置为 True ,其语法如下:
sp_dboption test,'select into/bulkcopy',True
---- 若想修改图形数据可用UPDATETEXT函数修改,其语法如下:
DECLARE @@tmp_str varbinary(16)
SELECT @@tmp_data = TEXTPTR(image_text) FROM test_image WHERE int_id = 1
UPDATETEXT test_image.image_text @@tmp_data 0x4749463839610500050080000081bbc800000021f90400000000002c0000000005000500000204848fa958003b
---- 二、在主页中显示图形
<%
Response.Buffer = TRUE
Response.ContentType = "image/gif"
connString ="DRIVER=SQL Server;Database=TEST;SERVER=why;UID=wzw;password=abc"
set conn = SERVER.CreateObject("ADODB.connection")
conn.open connString
Set oRs = Conn.Execute("SELECT Pr_Info FROM Im_Info WHERE Pr_Id=1")
PicSize = oRs("Pr_Info").ActualSize
Pic = oRs("Pr_Info").GetChunk(PicSize)
Response.BinaryWrite Pic
Response.End
set oRs=nothing
set conn=nothing 'www.aspxuexi.com
%>
---- 设置属性 Response.Buffer=TRU和Response.ContentType = "image/gif" ,再连接数据库取出图形,在加以显示。
正确运行后应该是显示一个5*5的图片
from:asp学习网/title:SQL Server中Image Data Type的使用技巧/ time:2007-7-7 22:25:44
本文主题SQL Server