建立三层结构的ASP应用程序(2)

作者:佚名 时间:2009-01-21 19:41:00 

三、如何开发三层结构的ASP应用程序

ASP具有良好的扩充性,我们访问数据库时,采用的时ADO对象,访问文件时,采用的是文件系统对象(FSO),其实这时程序已经是三层结构的应用程序了,只不过由于是利用内置的对象而为意识到罢了。这些对象都遵循COM/ActiveX接口,因此我们自己开发的对象也要遵循这个接口。下面,我们就以上文提到的"合格"标准为例,演示如何创建自己的三层结构的ASP应用。

1。在数据库系统中建立如下数据库表:

Employee: EMPLID char (5) not null,
   Name  char (10) not null,
   Gender char (1) not null,
   Score   int not null


此表存储员工信息和考试成绩,为简单起见,这里只包含工号,姓名和性别三项,并且只有一门考试,EMPLID为主键。

2。建立动态链接库

启动VB(这里以VB为例,你可以用你喜欢的任何支持ActiveX接口的开发工具开发),新建一工程,工程类型为ActiveX DLL。在工程中新建一个类,取名为Employee。你可以Class Builder可视化的向类中填加属性和方法,也可以直接手工编辑。首先填加EMPLID属性如下:





 Private msEMPLID as string 
  Property Let EMPLID(sEMPLID as string) 
   msEMPLID=sEMPLID 
  End Property 
  Property Get EMPLID() as string 
   EMPLID=msEMPLID 
  End Property 

一般地讲,每一个属性都应该有Property Let和Property Get两个方法,它们分别当向属性赋值和读取属性值时被调用。如果某个属性只被赋值而从不被读取(这种情况多发生在对应数据库表的主键的属性上),则Property Get方法可以省略。Property Let方法不能省略。你可以仿照上面的程序再建立Name,Gender和Score三个属性。然后创建如下方法:

  Public Sub Create(EMPLID as string) 
  dim conn as new Connection 
  dim rs as new Recordset 
  dim sql as string 
  "Suppose that you create a DSN in the control panel, the connectionstring property 
  "can also be dsn-less string 
  conn.ConnectionString="dsn=dsnname;uid=username;password=pwd" 
  conn.open 
  sql="select * from Employee where EMPLID="" & EMPLID & """ 
  with rs 
   .open sql,conn,1,3 
   if .eof and .bof then 
     exit sub 
   else 
     msEMPLID=trim(.Fields("EMPLID")) 
     msName=trim(.Fields("Name")) 
     msGender=trim(.Fields("Gender")) 
     msScore=.Fields("Score") 
   end if 
   .close 
  end with 
  set rs=nothing 
  conn.close 
  set conn=nothing 
  End Sub

 这里根据EMPLID创建Employee对象,注意数据库中的值是赋给三个私有变量,而不是直接赋值给属性,如果你单步调试就会发现,给msEMPLID赋值会调用Property Let EMPLID,也就是给属性赋值。

标签:结构,asp,程序,微软
0
投稿

猜你喜欢

  • 关于PyQt5中QtGui.QImage图片显示问题解析

    2022-05-17 19:59:12
  • 在微信小程序中获取用户位置的详细过程

    2024-04-29 13:43:02
  • python使用自定义user-agent抓取网页的方法

    2021-12-27 03:09:56
  • python实现好看的时钟效果

    2021-02-11 23:44:25
  • Python numpy中矩阵的基本用法汇总

    2021-10-23 06:37:26
  • Vue路由模式中的hash和history模式详细介绍

    2024-06-07 15:20:16
  • django 发送邮件和缓存的实现代码

    2021-05-09 20:53:09
  • JavaScript判断undefined类型的正确方法

    2024-04-10 11:04:05
  • Python 如何实现文件自动去重

    2021-07-16 13:50:54
  • 如何快速通过XSL转换XML文件

    2023-07-02 21:22:40
  • pytorch实现Tensor变量之间的转换

    2023-06-28 15:41:31
  • php使用curl抓取qq空间的访客信息示例

    2023-10-30 05:50:32
  • sql cast,convert,QUOTENAME,exec 函数学习记录

    2024-01-23 13:53:35
  • 在Python中使用NLTK库实现对词干的提取的教程

    2022-11-04 15:13:53
  • Golang操作sqlite3数据库的详细教程

    2024-01-14 05:32:52
  • Python GUI布局工具Tkinter入门之旅

    2021-11-08 14:38:23
  • JavaScript延时效果比较不错的

    2024-04-22 13:22:48
  • 详细介绍查询优化技术在现实系统中的运用

    2009-01-04 13:34:00
  • ASP.NET Core中的静态文件

    2024-05-21 10:13:23
  • Python区块链Creating Miners教程

    2021-03-25 11:39:27
  • asp之家 网络编程 m.aspxhome.com