发信人: leezy (【HIT】穆子), 信区: BorlandDev
标  题: Delphi5在ASP中的应用
发信站: 哈工大紫丁香 (2002年01月19日15:43:32 星期六), 站内信件

摘 要:用D5开发应用于ASP程序中的COM组件,以节省企业代码和
关键字:COM,ASP
类 别:COM & ActiveX
CoDelphi.com版权所有,未经允许,不得进行任何形式转载
在B/S结构的数据库中,我们经常会设计到这样一些数据库,例如:职业数据库,它包括
职业代号(occupation_no),职业名称(occupation_name)等,在浏览器中我们要求用户
按下拉框选择他们相应的职业。如果用传统的ASP来编写asp页面,那么可能是如下的代
码:
1、
<%
  strDSN="DSN=SourceName;uid=sa;pwd=”
  adocon.Open strDSN
  adocon.CursorLocation = adUseClient
  strSQL = "select * from occupation “
  Set rs = Server.CreateObject("ADODB.RecordSet")
  rs.Open strSQL, adocon, adOpenStatic', adLockOptimistic
%>
下拉框显示:
<select name=" occupation ">
<option value="0">-----请选择您的职业-----</option>
2、<%while not rs.EOF%>
   <option value="<%=rs(“occupation_no)%>"><%=rs(“occupation _name”)%></o
ption>
<%rs.Movenext Wend%>
</select>
3、<% rs.Close
   adocon.Close
   Set rs = Nothing
   Set adocon = Nothing
%>
如果有多个下拉框的话,又要重复修改strSQL和第2段的代码,工作相当繁琐。现在我们
用D5来开发一个COM组件,可以大大简化工作,可谓一劳永逸。
首先创建一个ActiveX Library,点取File菜单下的New…,然后选择ActiveX 块,从中选
择ActiveX Library图标。同样选择Active Server Object图标,CoClass Name取为Sel
ect,最后将工程名存为SelectPro。打开Type Library,增加一个Options方法,如图:

   参数tablename为要打开的表名。
   现在再往工程中加入一个数据模板DataModule1,向模板中加入两个ADO对象,一个
ADOConnection1和一个ADODataSet1,设置好它们各自的属性。向TSelect对象的构造函数
和析构函数中加入下面代码:
destructor TSelect.Destroy;
begin
         inherited;
         DataModule1.Free;
end;
procedure TSelect.Initialize;
begin
         inherited;
         DataModule1 := TDataModule1.Create(Forms.Application);
        end;
现在来看Options方法的核心代码:
DataModule1.ADODataSet1.CommandText := 'select * from '+ tablename;
    DataModule1.ADOConnection1.Connected := True;
DataModule1.ADODataSet1.Active := True;
    While not DataModule1.ADODataSet1.Eof do
    begin
     Response.Write('<option value=' + DataModule1.ADO DataSet1.Fields[0].As
Variant
               + '>' + DataModule1.ADO DataSet1.Fields[1].AsVariant + '</opt
ion>');
     DataModule1.ADODataSet1.Next();
    end;
   DataModule1.ADODataSet1.Active := False;
   DataModule1.ADOConnection1.Connected := False;
   最后的工作就是注册该组件,请选择Run菜单下的Register ActiveX Server
   那么现在asp页面中下拉框显示的代码就可以这样写了:
   <select name=" occupation ">
<option value="0">-----请选择您的职业-----</option>
      <% Set rs = Server.CreateObject("SelectPro.Select") ‘1
      rs.Options(“occupation”) ‘2
      Set rs = Nothing ‘3
  %>
</select>
   倘若有多个类似的下拉框则只需写第二行代码就行了,但要记住最后将内存释放。
   该组件普遍实用于第一个字段是编码,第二个字段是名称的表。
   怎么样,是不是大大简化了你的工作,而且简单明了,又可以重编译后,反复使用。
从中也可看出D5的RAD的确很不错!

--
°★.☆° .★·°∴°★.°·∴°☆ ·°∴° ☆..·°∴°.☆°★°∴°

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.122]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.462毫秒