从ASP调用SQL中的图像
从ASP调用SQL中的图像,从ASP调用SQL中的图像
eNet学院
关键词:Sql Server, ADO
如何处理ASP中的图象
在用ASP编程中,很多时侯要用到图象。对于单纯从数据库中处理一个图象,方法大家讲了很多,也不难,
可以看下面的代码:
这里假设你有个数据库名字叫:PUBS,在数据库中有一个叫:PUB_INFO的表,在表中有一个LOGO
的BLOB列。我们查出PUB_ID=0736的人的相片。
FILE: SHOWIMG.ASP
***************************************
<%@ LANGUAGE="VBSCRIPT" %
<%
' Clear out the existing HTTP header information
Response.Expires = 0
Response.Buffer = TRUE
Response.Clear
' Change the HTTP header to reflect that an image is being passed.
Response.ContentType = "image/gif"
Set cn = Server.CreateObject("ADODB.Connection")
' The following open line assumes you have set up a System DataSource
' by the name of myDSN.
cn.Open "DSN=myDSN;UID=sa;PWD=;DATABASE=pubs"
Set rs = cn.Execute("SELECT logo FROM pub_info WHERE pub_id='0736'")
Response.BinaryWrite rs("logo")
Response.End
%
*****************************************
执行这个ASP文件就可以看到你存在数据库中的图象了。
但如果是同时处理文字和图象就会有些困难了:-(
比如:一个企业的人员管理,后台数据库可以用SYBASE或SQL SERVER等。(我在这用SQL SERVER)当
你在企业内部需要用到BROWSE/SERVER方式,即用浏览器查看员工的个人信息时,就即要处理文字信息同时
还要用到关于图象的技巧。
问题在于你显示文字信息时HTML的HEAD中的CONTENT=“TEXT/HTML”,而显示图象则必须是
CONTENT=“IMAGE/GIF”或者是CONTENT=”IMAGE/JPEG“。因此你是无法只用一个ASP文件就把文字信息和
图象都处理完的,解决的办法是:用一个单独的ASP文件处理图象,然后在处理文字信息的ASP文件中调用
这个ASP文件。
在这给大家介绍一个我的解决方法,希望大家一起讨论:
环境:WINNT4.0 SQL SERVER IIS3.0
数据库名:RSDA
表名:RSDA_TABLE
目的:从RSDA_TABLE中查出ID=00001的人员的信息,包括姓名,年龄和照片
第一步:创建一个查询表单RSDA.HTM:
**********************************
<html
<head
</head
<body
<form method="POST" action="SEARCH.ASP"
<p请输入编号:<input type="text" name="T1" size="20"<input
type="submit" value="提交" name="B1"<input type="reset" value="复原" name="B2"</p
</form
</body
</html
***********************************
第二步:建立SEARCH.ASP
***********************************
<html
<head
<meta http-equiv="content-type" content="text/html;charset=gb2312"
<title查询结果</title
</head
<body bgColor=Azure
<%
session("RSDA_ID")=Request.Form("T1") '这里我用了一个SESSION变量,是为了在处理图象的ASP文件中再次调用
temp_id=session("RSDA_ID")
<font size=4 color=OrangeRed 查询结果:</font
<%set conntemp=server.createobject("adodb.connection")
conntemp.open "dsn=RSDA;uid=sa;pwd=SA"
set rstemp=conntemp.execute("select * from RSDA_TABLE where rsda='"&temp_id&"'")
%
<% 'put headings on the table of field names
nobody="对不起!在我们的数据库里没有您要找的资料!"% '判断是否有这个人
<%if rstemp.eof then %
<font size="5" color=OrangeRed <%Response.Write(nobody)%</font
<%else%
<div align="center"
<center
<table border="1" width="73%" height="399"
<tr
<td width="21%" height="49" align="cent