关于数据库存放图形数据所涉及的一个问题。

fbfbfb 2004-01-29 10:41:41
这是一篇有关的文章。

大体了解了一些方法及其使用方法后,接下来我们就开始设计数据库和相关编写代码了。

  第一步:数据库的设计(以Ms SQL Server7为例):

Create table img --创建用来存储图片的表,命名为img

(

id int identity(1,1) not null,

img image

)

  第二步:程序编写,其中省略了用户输入界面,这里只给出很重要的两个文件即图片上传处理(processimg.asp)和显示图片(ShowImg.asp)文件。

  1) processimg.asp文件代码:

<%

Response.Buffer=True

ImageSize=Request.TotalBytes ‘获取提交数据量的总字节数

ImageData=Request.BinaryRead(ImageSize) ‘保存从客户端读取到的数据

‘优化读取到的二进制数据

BnCrLf=chrB(13)&chr(10)

Divider=LeftB(ImageData,Clng(InstrB(ImageData, BnCrLf))-1)

Dstart=InstrB(ImageData, BnCrLf& BnCrLf)+4

Dend=InstrB(Dstart+1, ImageData, Divider)- Dstart

MyData=MidB(ImageData, Dstart, Dend)

‘创建对象实例

Set imgConn=Server.CreateObject(“ADODB.Connection”)

StrConn=”Driver={SQL Server};Server=ServerName;”& _

“Uid=xxxx;Pwd=xxxx;DataBase=DataBaseName”

imgConn.open strConn

Set Rs= Server.CreateObject(“ADODB.RecordSet”)

Sql=”Select * From img Where id is null”

Rs.open sql,imgConn,1,3

‘追加数据到数据库

Rs.AddNew

Rs(“img”).AppendChunk myData

Rs.Update

‘关闭和释放对象

Rs.close

ImgConn.close

Set Rs=Nothing

Set ImgConn=Nothing

%>

   2) ShowImg.asp文件代码:

<%

Response.Expires = 0

Response.buffer=True

Response.clear

‘创建对象实例

Set imgConn=Server.CreateObject(“ADODB.Connection”)

StrConn=”Driver={SQL Server};Server=ServerName;”& _

“Uid=xxxx;Pwd=xxxx;DataBase=DataBaseName”

imgConn.open strConn

Set Rs= Server.CreateObject(“ADODB.RecordSet”)

Sql=”Select img From img Where id=1” 这里的id可以使用Request(“id”)获得

Rs.open sql,imgConn,1,1

Response.ContentType=”image/*”

Response.BinaryWrite Rs.(“img”).GetChunk(7500000)

‘关闭和释放对象

Rs.close

ImgConn.close

Set Rs=Nothing

Set ImgConn=Nothing

%>

  

我的问题是关于数据优化部分的。
为什么要优化,优化部分的语句是什么意思?(尤其是Clng,InstrB等的意思)
另外,显示的时候,如果是把被显示的图象做为一个html文件的一部分,是不是可以不用Response.ContentType=”image/*”。
...全文
47 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mradang 2004-01-30
  • 打赏
  • 举报
回复
不能同时显示数据库中的图片和文字,单独写一个图像输出程序,在html中加入<img src="xxx.asp?id=xxx">
fbfbfb 2004-01-29
  • 打赏
  • 举报
回复
也许我说复杂了,我第二个问题是指把显示的图象做为asp文件的一部分。
而不是单独只显示gif。

谢谢
孟子E章 2004-01-29
  • 打赏
  • 举报
回复
优化是为了加快页面显示速度,并减少服务器负荷
CLng 函数
返回表达式,此表达式已被转换为 Long 子类型的 Variant。

CLng(expression)

expression 参数是任意有效的表达式。

说明
通常,您可以使用子类型数据转换函数书写代码,以显示某些操作的结果应当被表达为特定的数据类型,而非默认的数据类型。例如,在出现货币运算、单精度或双精度算术运算的情况下,使用 CInt 或 CLng 函数强制进行整数运算。

CLng 函数用于进行从其他数据类型到 Long 子类型的的国际公认的格式转换。例如,对十进制分隔符和千位分隔符的识别取决于系统的区域设置。

如果 expression 取值不在 Long子类型的允许范围内,则会出现错误。

下面的示例利用 CLng 函数把值转换为 Long:

Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45: MyVal2 = 25427.55 ' MyVal1, MyVal2 是双精度值。
MyLong1 = CLng(MyVal1) ' MyLong1 25427。
MyLong2 = CLng(MyVal2) ' MyLong2 包含 25428 。
注意 CLng 不同于 Fix 和 Int 函数删除小数部分, 而是采用四舍五入的方式。 当小数部分正好等于 0.5 时, CLng 函数总是将其四舍五入为最接近该数的偶数。如, 0.5 四舍五入为 0, 以及 1.5 四舍五入为 2 。


InStr 函数
返回某字符串在另一字符串中第一次出现的位置。

InStr([start, ]string1, string2[, compare])

参数
start

可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,将从第一个字符的位置开始搜索。如果 start 包含 Null,则会出现错误。如果已指定 compare,则必须要有 start 参数。

string1

必选项。接受搜索的字符串表达式。

string2

必选项。要搜索的字符串表达式。

compare

可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,将执行二进制比较。

设置
compare 参数可以有以下值:

常数 值 描述
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。


返回值
InStr 函数返回以下值:

如果 InStr 返回
string1 为零长度 0
string1 为 Null Null
string2 为零长度 start
string2 为 Null Null
string2 没有找到 0
在 string1 中找到 string2 找到匹配字符串的位置
start > Len(string2) 0


说明
下面的示例利用 InStr 搜索字符串:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
MyPos = Instr(4, SearchString, SearchChar, 1) ' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(1, SearchString, SearchChar, 0) ' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(SearchString, SearchChar) ' Comparison is binary by default (last argument is omitted). Returns 9.
MyPos = Instr(1, SearchString, "W") ' A binary comparison starting at position 1. Returns 0 ("W" is not found).
注意 InStrB 函数使用包含在字符串中的字节数据,所以 InStrB 返回的不是一个字符串在另一个字符串中第一次出现的字符位置,而是字节位置。


如果是把被显示的图象做为一个html文件的一部分,用img src="xxx.asp?id=xxx"

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧