发信人: 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毫秒