SQL Server中Image Data Type的使用技巧

王朝mssql·作者佚名  2004-10-26
窄屏简体版  字體: |||超大  

---- MS SQL Server 是微软公司推出的大型数据库软件,在NT平台上拥有近一半的数据库市场,特别是在SQL Server 7.0推出后,其发展势头更加迅猛。SQL Server中Image数据类型是用来存储图形的。在此我谈谈怎样增、删、改此类型数据及在主页中读出此类型数据。

---- 一、在表中添加图形

---- Image 数据类型不同于其它数据类型,不能用Insert 、Update的标准SQL语法进行图形的添加和修改。需用到SQL Server中的TEXTPTR 、WRITETEXT、UPDATETEXT等函数进行图形的添加和修改。

---- 首先假设在库Im_Test中建立一张表Im_Info,此表中有两个字段,分别为Pr_Id (INT),Pr_Info (IMAGE),用来存储图形编号及图形信息。其语法如下:

CREATE TEALE Im_Info (

Pr_Id INT NULL ,

Pr_Info IMAGE NULL

)

---- 第一步往表中插入一条记录,并初始化PR_INFO字段。其语法如下:

INSERT INTO Im_Info VALUES (1 ,0xFFFFFFFF)

---- 第二步往表中写入图形信息。其语法如下:

DECLARE @@ptrval varbinary(16)

SELECT @@ptrval = TEXTPTR(Pr_Info)

FROM Im_Info

WHERE Pr_Id = 1

WRITETEXT Im_Text.Im_Info

@@ptrval 0x624fd543fd…..

---- 其中0x624fd543fd….. 为图形的十六进制数据,可以通过C 、Java等工具获得。注意在写入图形信息前必须先将此数据库的 'select into/bulkcopy' 属性设置为 True ,其语法如下:

sp_dboption Im_Test ,

'select into/bulkcopy' ,True

---- 若想修改图形数据可用UPDATETEXT函数修改,其语法如下:

DECLARE @@ptrval varbinary(16)

SELECT @@ptrval = TEXTPTR(Pr_Info)

FROM Im_Info

WHERE Pr_Id = 1

UPDATETEXT Im_Text.Im_Info

@@ptrval 0xaa31bcfe543fd…..

---- 二、在主页中显示图形

---- 第一步建立数据源

---- 若想将加入的图形显示在主页中,必须先建立数据源,打开Windows 中的控制面板。通过ODBC 应用程序,建立数据源(取名Im_Test)连接到Im_Test数据库

---- 第二步编写程序

< % @ LANGUAGE = VBScript% >

< % Option Explicit % >

< %

Dim oConn

Dim oRs

Dim Pic

Dim PicSize

Response.Buffer = TRUE

Response.ContentType = "image/gif"

Set oConn = Server.CreateObject

("ADODB.Connection")

oConn.Open "Im_Test",”sa”,””

Set oRs = oConn.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

% >

---- 此程序中先定义四个变量。然后设置属性 Response.Buffer=TRU和Response.ContentType = "image/gif" ,再连接数据库取出图形,在加以显示。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航