⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0061.htm

📁 ASP教程宝典 书籍语言: 简体中文 书籍类型: 网络编程 授权方式: 免费软件 书籍大小: 500 KB
💻 HTM
字号:
<html>

<head>
<title>新时代软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋体}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1  {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
    <p align="center"><big><strong>用SQL Server为Web浏览器提供图像 - 3</strong></big></p>

<p>建立Web项目和设置数据库连接

<p>在注册了 ImageLoader 动态链接库之后,我们就可以建立Web项目了。我们使用微软Visual InterDev 1.0 建立ASP页面以
及到微软SQL Server数据库的数据连接。

<p>首先,打开微软Visual InterDev。在文件File 菜单里,选择新建(New)菜单项。在出现的对话框里,选中Web项目向
导,在项目名称字段里输入ImageLoad 。单击确定(OK),完成后面两步,结束向导。

<p>可以看到, Visual InterDev 在工作空间(Workspace)窗口里自动地生成了一个文件,叫做Global.asa。在用户第一次
查看Web程序里的页面里,就会自动生成这个文件。要连接SQL Server里的数据库,选择项目 | 加入项目(Project | 
Add To Project),然后选择数据连接(Data Connection)。这里,选择数据源对话框出现,我们必须定义一个数据源名
称(DSN)。

<p>单击新建(New)按钮,在列出的可用数据驱动程序列表里,选择SQL Server,然后单击下一步(Next)。接着,在输入框
里输入 Grocevb 作为DSN。接下来的几步很容易完成,不再详述。

<p>下面,出现了SQL Server 登录对话框。输入服务器名称,登录ID和口令,并单击选项(Option)按钮。从列出的可用数据
库列表里,选择Grocevb,单击确定(OK)。在结束了全部以上步骤之后,就返回到了选择数据源对话框。在这里,从DSN
列表里单击文件名 Grocevb.dsn,然后完成后面几步结束这段操作。 

<p>现在,可以双击Global.asa,查看以上步骤在这个文件里生成的代码。代码定义了连接SQL Server数据库所必需的一些变
量。

<p>为了初始化类 clsImageLoader ,必须在Global.asp的开始放两行代码。我们在列表 C里列出了Global.asa里的代码。注
意clsImageLoader 是一个会话范围内的对象。
<pre>
列表 C: Global.asa

&lt;OBJECT RUNAT=Server SCOPE=Session ID=objImageLoader PROGID=&quot;ImageLoader.clsImageLoader&quot;&gt;
&lt;/OBJECT&gt;
&lt;SCRIPT LANGUAGE=VBScript RUNAT=Server&gt;
Sub Session_OnStart
    Session(&quot;Grocevb_ConnectionString&quot;) = &quot;DRIVER=SQL Server; SERVER=(local); 
                 UID=sa;PWD=;APP=Microsoft (R) Developer Studio;WSID=JIA; 
                 DATABASE=Grocevb;UseProcForPrepare=0&quot;
    Session(&quot;Grocevb_ConnectionTimeout&quot;) = 15
    Session(&quot;Grocevb_CommandTimeout&quot;) = 30
    Session(&quot;Grocevb_RuntimeUserName&quot;) = &quot;sa&quot; 
    Session(&quot;Grocevb_RuntimePassword&quot;) = &quot;&quot;
End Sub

Sub Session_OnEnd
  set objImageLoader = Nothing
End Sub

&lt;/SCRIPT&gt;
</pre>

<p>建立ASP页面

<p>为了连接到数据库,并和ImageLoader这个动态链接库通信,我们在Web项目里建立了一个ASP文件。方法是在文件(File)
菜单里选择新建(New)菜单项,在文件(Files)标签卡中选择ASP页面图标,在输入框里输入文件名称。我们把这个页面
命名为default.asp。在default.asp 里包含的代码如列表 D所示。 
<pre>
列表 D: default.asp

&lt;% Set dbConn = Server.CreateObject(&quot;ADODB.Connection&quot;)
   dbConn.ConnectionTimeout = Session(&quot;Grocevb_ConnectionTimeout&quot;)
   dbConn.CommandTimeout = Session(&quot;Grocevb_CommandTimeout&quot;)
   dbConn.Open Session(&quot;Grocevb_ConnectionString&quot;), Session(&quot;Grocevb_RuntimeUserName&quot;), _
                                                    Session(&quot;Grocevb_RuntimePassword&quot;)

   Set cmdTemp = Server.CreateObject(&quot;ADODB.Command&quot;)
   Set rstProduct = Server.CreateObject(&quot;ADODB.Recordset&quot;)
       cmdTemp.CommandText = &quot;SELECT prod_id, prod_name, prod_desc, prod_unitprice, &amp; _
                               &quot; prod_unitquant, prod_imagetype &quot; &amp; _
                               &quot;FROM Products ORDER BY prod_name&quot;
       cmdTemp.CommandType = 1
       Set cmdTemp.ActiveConnection = dbConn
       rstProduct.Open cmdTemp, , 0, 1

       objImageLoader.DbName = &quot;Grocevb&quot;
       objImageLoader.TableName = &quot;Products&quot;
       objImageLoader.NameOfImageColumn = &quot;prod_image&quot;
       objImageLoader.NameOfImageTypeColumn = &quot;prod_imagetype&quot;
       objImageLoader.NameOfImageIdColumn = &quot;prod_id&quot;
       objImageLoader.OpenConnection
%&gt;

&lt;HTML&gt;
&lt;HEAD&gt;
&lt;TITLE&gt;从SQL Server装载图片的示例&lt;/TITLE&gt;
&lt;/HEAD&gt;
&lt;BODY bgcolor=&quot;#FFFFFF&quot; TOPMARGIN=8 LEFTMARGIN=4&gt;
  &lt;%Do While Not rstProduct.EOF %&gt;
  &lt;%ProdId = rstProduct(&quot;prod_id&quot;) %&gt;
  &lt;% objImageLoader.CreateTempImageFile(ProdId) %&gt;
  &lt;% FileName =  &quot;images/&quot; &amp; objImageLoader.ImageFile(ProdId) %&gt;

  &lt;TABLE border=1 cellpadding=0 cellspacing=0 width=100%&gt;
   &lt;TABLE border=0 cellpadding=5 cellspacing=0 width=100% cols=2&gt;
      &lt;td width=30%&gt;
         &lt;IMG ALIGN=BOTTOM SRC= &lt;% =FileName %&gt;&gt;
         &lt;p&gt; &lt;/p&gt;
      &lt;font size=2&gt;Image type: &lt;% = rstProduct(&quot;prod_imagetype&quot;) %&gt;
      &lt;/td&gt;
      &lt;td width=70%&gt;
          &lt;p align=center&gt;&lt;font size=4&gt;&lt;% =rstProduct(&quot;prod_name&quot;) %&gt;&lt;/font&gt;&lt;/p&gt;
          &lt;p align=center&gt;&lt;% =rstProduct(&quot;prod_desc&quot;) %&gt;&lt;/p&gt;
      &lt;/td&gt;
    &lt;/TABLE&gt;
    &lt;p&gt; &lt;/p&gt;
  &lt;TABLE border=0 cellpadding=5, cellspacing=0 width=100% cols=2&gt;
      &lt;td width=50%&gt;
         &lt;p align=left&gt;Unit quantity: &lt;% = rstProduct(&quot;prod_unitquant&quot;) %&gt;&lt;/P&gt;
      &lt;/td&gt;
      &lt;td width=50%&gt;
         &lt;p align=left&gt;Unit price: &lt;% =rstProduct(&quot;prod_unitprice&quot;) %&gt;&lt;/p&gt;
      &lt;/td&gt;                             
   &lt;/TABLE&gt;
  &lt;/TABLE&gt;
  &lt;p&gt; &lt;/p&gt;
&lt;% rstProduct.MoveNext %&gt;
&lt;% Loop %&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;
</pre>

<p>注意:类ImageLoader 里定义的CreateTempImageFile 方法和ImageFile 属性(只读)需要图片ID作为参数。在这个例子
里,图片ID就是表Products的主关键字(prod_id) 。所以, prod_id 的值必须传递给动态链接库。


<p>总结

<p>在这篇文章里,我们演示了一个方法,使用ActiveX动态链接库和ASP,可以从微软SQL Server服务器把图片装载到Web浏览
器。它已经表明,这个方法在快速开发、容易使用和自定义Web页面的灵活上都有优势。动态链接库被用来连接数据库,提
取图片数据,把图片数据放入文件。ASP页面则负责与SQL数据库和动态链接库通信。我们已经介绍了设置SQL数据库和Web
项目的操作过程。 

<p>虽然这篇文章里的动态链接库和数据库的功能做了简化,但这里介绍的步骤对于其它任何强大复杂的Web项目都是有效
的。 

  </table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -