Delphi5在ASP中的应用(0分)

  • 主题发起人 主题发起人 softwind
  • 开始时间 开始时间
S

softwind

Unregistered / Unconfirmed
GUEST, unregistred user!

主题:用D5开发应用于ASP程序中的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”)%></option>
<%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取为Select,最后将工程名存为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].AsVariant
+ '>' + DataModule1.ADO DataSet1.Fields[1].AsVariant + '</option>');
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的确很不错!



 
后退
顶部