鸿 网 互 联 www.68idc.cn

用SQLServer为Web浏览器提供图像(四)

来源:互联网 作者:佚名 时间:2015-06-17 09:35
建立Web项目和设置数据库连接 在注册了 ImageLoader 动态链接库之后 我们就可以建立Web项目了 我们使用微软Visual InterDev 建立ASP页面以及到微软SQL Server数据库的数据连接 首先 打开微软Visual InterDev 在文件File 菜单里 选择新建(New)菜单项 在出现

  建立Web项目和设置数据库连接
  在注册了 ImageLoader 动态链接库之后我们就可以建立Web项目了我们使用微软Visual InterDev 建立ASP页面以及到微软SQL Server数据库的数据连接
  
  首先打开微软Visual InterDev在文件File 菜单里选择新建(New)菜单项在出现的对话框里选中Web项目向导在项目名称字段里输入ImageLoad 单击确定(OK)完成后面两步结束向导
  
  可以看到 Visual InterDev 在工作空间(Workspace)窗口里自动地生成了一个文件叫做Globalasa在用户第一次查看Web程序里的页面里就会自动生成这个文件要连接SQL Server里的数据库选择项目 | 加入项目(Project | Add To Project)然后选择数据连接(Data Connection)这里选择数据源对话框出现我们必须定义一个数据源名称(DSN)
  
  单击新建(New)按钮在列出的可用数据驱动程序列表里选择SQL Server然后单击下一步(Next)接着在输入框里输入 Grocevb 作为DSN接下来的几步很容易完成不再详述
  
  下面出现了SQL Server 登录对话框输入服务器名称登录ID和口令并单击选项(Option)按钮从列出的可用数据库列表里选择Grocevb单击确定(OK)在结束了全部以上步骤之后就返回到了选择数据源对话框在这里从DSN列表里单击文件名 Grocevbdsn然后完成后面几步结束这段操作
  
  现在可以双击Globalasa查看以上步骤在这个文件里生成的代码代码定义了连接SQL Server数据库所必需的一些变量
  
  为了初始化类 clsImageLoader 必须在Globalasp的开始放两行代码我们在列表 C里列出了Globalasa里的代码注意clsImageLoader 是一个会话范围内的对象
  
  列表 C: Globalasa
  
  <OBJECT RUNAT=Server SCOPE=Session ID=objImageLoader PROGID=ImageLoaderclsImageLoader>
  </OBJECT>
  <SCRIPT LANGUAGE=VBScript RUNAT=Server>
  Sub Session_OnStart
    Session(Grocevb_ConnectionString) = DRIVER=SQL Server; SERVER=(local);
           UID=sa;PWD=;APP=Microsoft (R) Developer Studio;WSID=JIA;
           DATABASE=Grocevb;UseProcForPrepare=
    Session(Grocevb_ConnectionTimeout) =
    Session(Grocevb_CommandTimeout) =
    Session(Grocevb_RuntimeUserName) = sa
    Session(Grocevb_RuntimePassword) =
  End Sub
  
  Sub Session_OnEnd
   set objImageLoader = Nothing
  End Sub
  
  </SCRIPT>
  
  建立ASP页面
  为了连接到数据库并和ImageLoader这个动态链接库通信我们在Web项目里建立了一个ASP文件方法是在文件(File)菜单里选择新建(New)菜单项在文件(Files)标签卡中选择ASP页面图标在输入框里输入文件名称我们把这个页面命名为defaultasp在defaultasp 里包含的代码如列表 D所示
  
  列表 D: defaultasp
  
  <% Set dbConn = ServerCreateObject(ADODBConnection)
    dbConnConnectionTimeout = Session(Grocevb_ConnectionTimeout)
    dbConnCommandTimeout = Session(Grocevb_CommandTimeout)
    dbConnOpen Session(Grocevb_ConnectionString) Session(Grocevb_RuntimeUserName) _
                            Session(Grocevb_RuntimePassword)
  
    Set cmdTemp = ServerCreateObject(ADODBCommand)
    Set rstProduct = ServerCreateObject(ADODBRecordset)
      cmdTempCommandText = SELECT prod_id prod_name prod_desc prod_unitprice & _
                  prod_unitquant prod_imagetype & _
                  FROM Products ORDER BY prod_name
      cmdTempCommandType =
      Set cmdTempActiveConnection = dbConn
      rstProductOpen cmdTemp
  
      objImageLoaderDbName = Grocevb
      objImageLoaderTableName = Products
      objImageLoaderNameOfImageColumn = prod_image
      objImageLoaderNameOfImageTypeColumn = prod_imagetype
      objImageLoaderNameOfImageIdColumn = prod_id
      objImageLoaderOpenConnection
  %>
  
  <HTML>
  <HEAD>
  <TITLE>从SQL Server装载图片的示例</TITLE>
  </HEAD>
  <BODY bgcolor=#FFFFFF TOPMARGIN= LEFTMARGIN=>
   <%Do While Not rstProductEOF %>
   <%ProdId = rstProduct(prod_id) %>
   <% objImageLoaderCreateTempImageFile(ProdId) %>
   <% FileName = images/ & objImageLoaderImageFile(ProdId) %>
  
   <TABLE border= cellpadding= cellspacing= width=%>
    <TABLE border= cellpadding= cellspacing= width=% cols=>
     <td width=%>
       <IMG ALIGN=BOTTOM SRC= <% =FileName %>>
       <p> </p>
     <font size=>Image type: <% = rstProduct(prod_imagetype) %>
     </td>
     <td width=%>
       <p align=center><font size=><% =rstProduct(prod_name) %></font></p>
       <p align=center><% =rstProduct(prod_desc) %></p>
     </td>
    </TABLE>
    <p> </p>
   <TABLE border= cellpadding= cellspacing= width=% cols=>
     <td width=%>
       <p align=left>Unit quantity: <% = rstProduct(prod_unitquant) %></P>
     </td>
     <td width=%>
       <p align=left>Unit price: <% =rstProduct(prod_unitprice) %></p>
     </td>              
    </TABLE>
   </TABLE>
   <p> </p>
  <% rstProductMoveNext %>
  <% Loop %>
  </BODY>
  </HTML>
  
  注意类ImageLoader 里定义的CreateTempImageFile 方法和ImageFile 属性(只读)需要图片ID作为参数在这个例子里图片ID就是表Products的主关键字(prod_id) 所以 prod_id 的值必须传递给动态链接库
  
  总结
  在这篇文章里我们演示了一个方法使用ActiveX动态链接库和ASP可以从微软SQL Server服务器把图片装载到Web浏览器它已经表明这个方法在快速开发容易使用和自定义Web页面的灵活上都有优势动态链接库被用来连接数据库提取图片数据把图片数据放入文件ASP页面则负责与SQL数据库和动态链接库通信我们已经介绍了设置SQL数据库和Web项目的操作过程
  
  虽然这篇文章里的动态链接库和数据库的功能做了简化但这里介绍的步骤对于其它任何强大复杂的Web项目都是有效的
网友评论
<