如何解决用Delphi5的InternetExpress建立简单的Web程序出现Document没有定义错误?

brlee 2000-07-28 11:25:00
用Delphi5的InternetExpress建立简单的Web程序出现Document没有定义错误如何解决?
下面程序在行:(var XMLBroker1_Doc = new Document(XMLBroker1_XML);)执行出错请高手指点,李维著Delphi5.X分布式多层应用电子商务篇第一个及其它示例程序编译执行就出现如此错误。


<HTML>
<HEAD>
</HEAD>
<BODY>
200 OK
<SCRIPT language=JavaScript type="text/javascript" SRC="xmldom.js"></SCRIPT>
<SCRIPT language=JavaScript type="text/javascript" SRC="xmldb.js"></SCRIPT>
<SCRIPT language=JavaScript type="text/javascript" SRC="xmldisp.js"></SCRIPT>

<FORM NAME=DataForm1>
<TABLE><TR><TD COLSPAN=2>
<TABLE><TR><TD COLSPAN=2><INPUT TYPE=BUTTON VALUE=" and <" onclick='if(xml_ready)DataGrid1_Disp.first();'>
<INPUT TYPE=BUTTON VALUE="<<" onclick='if(xml_ready)DataGrid1_Disp.pgup();'>
<INPUT TYPE=BUTTON VALUE="<" onclick='if(xml_ready)DataGrid1_Disp.up();'>
<INPUT TYPE=BUTTON VALUE=">" onclick='if(xml_ready)DataGrid1_Disp.down();'>
<INPUT TYPE=BUTTON VALUE=">>" onclick='if(xml_ready)DataGrid1_Disp.pgdown();'>
<INPUT TYPE=BUTTON VALUE="> and " onclick='if(xml_ready)DataGrid1_Disp.last();'>
<INPUT TYPE=BUTTON VALUE=" + " onclick='if(xml_ready)DataGrid1_Disp.newRow();'>
<INPUT TYPE=BUTTON VALUE=" - " onclick='if(xml_ready)DataGrid1_Disp.removeRow();'>
<INPUT TYPE=BUTTON VALUE="Undo" onclick='if(xml_ready)DataGrid1_Disp.undo();'>
<INPUT TYPE=BUTTON VALUE="Post" onclick='if(xml_ready)DataGrid1_Disp.post();'>
<INPUT TYPE=BUTTON VALUE="Apply Updates" onclick='if(xml_ready)XMLBroker1_RS.Apply(Submit_XMLBroker1, Submit_XMLBroker1.postdelta);'>
</TR></TABLE></TD>
</TR><TR><TD COLSPAN=2>
<TABLE BORDER=1><TR>
<TH>EmpNo</TH>
<TH>LastName</TH>
<TH>FirstName</TH>
<TH>PhoneExt</TH>
<TH>HireDate</TH>
<TH>Salary</TH>
<TH>*</TH>
</TR><TR><TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_EmpNo" SIZE=10 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_LastName" SIZE=20 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_FirstName" SIZE=15 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_PhoneExt" SIZE=4 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_HireDate" SIZE=18 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_Salary" SIZE=10 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="StatusColumn" SIZE=1></DIV></TD>
</TR>
<TR><TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_EmpNo" SIZE=10 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_LastName" SIZE=20 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_FirstName" SIZE=15 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_PhoneExt" SIZE=4 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_HireDate" SIZE=18 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_Salary" SIZE=10 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="StatusColumn" SIZE=1></DIV></TD>
</TR>
<TR><TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_EmpNo" SIZE=10 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_LastName" SIZE=20 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_FirstName" SIZE=15 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_PhoneExt" SIZE=4 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_HireDate" SIZE=18 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_Salary" SIZE=10 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="StatusColumn" SIZE=1></DIV></TD>
</TR>
<TR><TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_EmpNo" SIZE=10 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_LastName" SIZE=20 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_FirstName" SIZE=15 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_PhoneExt" SIZE=4 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_HireDate" SIZE=18 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="DataGrid1_Salary" SIZE=10 onFocus='if(xml_ready)DataGrid1_Disp.xfocus(this);' onkeydown='if(xml_ready)DataGrid1_Disp.keys(this);'></DIV></TD>
<TD><DIV><INPUT TYPE=TEXT NAME="StatusColumn" SIZE=1></DIV></TD>
</TR>
</TABLE></TD>
</TR></TABLE></FORM>
<FORM NAME=Submit_XMLBroker1 ACTION="/XMLBroker1" METHOD="POST"> <INPUT TYPE=HIDDEN NAME="XMLBROKER" VALUE="XMLBroker1">
<INPUT TYPE=HIDDEN NAME="postdelta">
<INPUT TYPE=HIDDEN NAME="PRODUCER" VALUE="MidasPageProducer1">
<INPUT TYPE=HIDDEN NAME="REDIRECT" VALUE="http://">
</FORM>
<SCRIPT language=JavaScript type="text/javascript">
var XMLBroker1_XML =
' <DATAPACKET Version="2.0"><METADATA><FIELDS><FIELD attrname="EmpNo" fieldtype="i4"/><FIELD attrname="LastName" fieldtype="string" WIDTH="20"/><FIELD attrname="FirstName" fieldtype="string" WIDTH="15"/>
<FIELD attrname="PhoneExt" fieldtype="string" WIDTH="4"/><FIELD attrname="HireDate" fieldtype="dateTime"/>
<FIELD attrname="Salary" fieldtype="r8"/></FIELDS><PARAMS LCID="1033"/></METADATA><ROWDATA>
<ROW EmpNo="2" LastName="Nelson" FirstName="Roberto" PhoneExt="250" HireDate="19881228" Salary="40000"/>
<ROW EmpNo="4" LastName="Young" FirstName="Bruce" PhoneExt="233" HireDate="19881228" Salary="55500"/>
<ROW EmpNo="5" LastName="Lambert" FirstName="Kim" PhoneExt="22" HireDate="19890206" Salary="25000"/>
<ROW EmpNo="8" LastName="Johnson" FirstName="Leslie" PhoneExt="410" HireDate="19890405" Salary="25050"/>
<ROW EmpNo="9" LastName="Forest" FirstName="Phil" PhoneExt="229" HireDate="19890417" Salary="25050"/>
<ROW EmpNo="11" LastName="Weston" FirstName="K. J." PhoneExt="34" HireDate="19900117" Salary="33292.9375"/>
<ROW EmpNo="12" LastName="Lee" FirstName="Terri" PhoneExt="256" HireDate="19900501" Salary="45332"/>
<ROW EmpNo="14" LastName="Hall" FirstName="Stewart" PhoneExt="227" HireDate="19900604" Salary="34482.625"/>
<ROW EmpNo="15" LastName="Young" FirstName="Katherine" PhoneExt="231" HireDate="19900614" Salary="24400"/>
<ROW EmpNo="20" LastName="Papadopoulos" FirstName="Chris" PhoneExt="887" HireDate="19900101" Salary="25050"/>
<ROW EmpNo="24" LastName="Fisher" FirstName="Pete" PhoneExt="888" HireDate="19900912" Salary="23040"/>
<ROW EmpNo="28" LastName="Bennet" FirstName="Ann" PhoneExt="5" HireDate="19910201" Salary="34482.8"/>
<ROW EmpNo="29" LastName="De Souza" FirstName="Roger" PhoneExt="288" HireDate="19910218" Salary="25500"/>
<ROW EmpNo="34" LastName="Baldwin" FirstName="Janet" PhoneExt="2" HireDate="19910321" Salary="23300"/>
<ROW EmpNo="36" LastName="Reeves" FirstName="Roger" PhoneExt="6" HireDate="19910425" Salary="33620"/>
<ROW EmpNo="37" LastName="Stansbury" FirstName="Willie" PhoneExt="7" HireDate="19910425" Salary="39224"/>
<ROW EmpNo="44" LastName="Phong" FirstName="Leslie" PhoneExt="216" HireDate="19910603" Salary="40350"/>
<ROW EmpNo="45" LastName="Ramanathan" FirstName="Ashok" PhoneExt="209" HireDate="19910801" Salary="33292.94"/>
<ROW EmpNo="46" LastName="Steadman" FirstName="Walter" PhoneExt="210" HireDate="19910809" Salary="19599"/>
<ROW EmpNo="52" LastName="Nordstrom" FirstName="Carol" PhoneExt="420" HireDate="19911002" Salary="4500"/>
<ROW EmpNo="61" LastName="Leung" FirstName="Luke" PhoneExt="3" HireDate="19920218" Salary="34500"/>
<ROW EmpNo="65" LastName="O'Brien" FirstName="Sue Anne" PhoneExt="877" HireDate="19920323" Salary="31275"/>
<ROW EmpNo="71" LastName="Burbank" FirstName="Jennifer M." PhoneExt="289" HireDate="19920415" Salary="45332"/>
<ROW EmpNo="72" LastName="Sutherland" FirstName="Claudia" HireDate="19920420" Salary="35699"/>
<ROW EmpNo="83" LastName="Bishop" FirstName="Dana" PhoneExt="290" HireDate="19920601" Salary="45000"/>
<ROW EmpNo="85" LastName="MacDonald" FirstName="Mary S." PhoneExt="477" HireDate="19920601" Salary="35699"/>
<ROW EmpNo="94" LastName="Williams" FirstName="Randy" PhoneExt="892" HireDate="19920808" Salary="28900"/>
<ROW EmpNo="105" LastName="Bender" FirstName="Oliver H." PhoneExt="255" HireDate="19921008" Salary="36799"/>
<ROW EmpNo="107" LastName="Cook" FirstName="Kevin" PhoneExt="894" HireDate="19930201" Salary="35500"/>
<ROW EmpNo="109" LastName="Brown" FirstName="Kelly" PhoneExt="202" HireDate="19930204" Salary="27000"/>
<ROW EmpNo="110" LastName="Ichida" FirstName="Yuki" PhoneExt="22" HireDate="19930204" Salary="25689"/>
<ROW EmpNo="113" LastName="Page" FirstName="Mary" PhoneExt="845" HireDate="19930412" Salary="48000"/>
<ROW EmpNo="114" LastName="Parker" FirstName="Bill" PhoneExt="247" HireDate="19930601" Salary="35000"/>
<ROW EmpNo="118" LastName="Yamamoto" FirstName="Takashi" PhoneExt="23" HireDate="19930701" Salary="32500"/>
<ROW EmpNo="121" LastName="Ferrari" FirstName="Roberto" PhoneExt="1" HireDate="19930712" Salary="40500"/>
<ROW EmpNo="127" LastName="Yanowski" FirstName="Michael" PhoneExt="492" HireDate="19930809" Salary="44000"/>
<ROW EmpNo="134" LastName="Glon" FirstName="Jacques" HireDate="19930823" Salary="24855"/>
<ROW EmpNo="136" LastName="Johnson" FirstName="Scott" PhoneExt="265" HireDate="19930913" Salary="30588.99"/>
<ROW EmpNo="138" LastName="Green" FirstName="T.J." PhoneExt="218" HireDate="19931101" Salary="36000"/>
<ROW EmpNo="141" LastName="Osborne" FirstName="Pierre" HireDate="19940103" Salary="35600"/>
<ROW EmpNo="144" LastName="Montgomery" FirstName="John" PhoneExt="820" HireDate="19940330" Salary="35699"/>
<ROW EmpNo="145" LastName="Guckenheimer" FirstName="Mark" PhoneExt="221" HireDate="19940502" Salary="32000"/>
</ROWDATA></DATAPACKET>';
var XMLBroker1_Doc = new Document(XMLBroker1_XML);
var XMLBroker1_RS = new xmlRowSet(XMLBroker1_Doc, null, null);
var Submit_XMLBroker1 = document.forms['Submit_XMLBroker1'];
var DataForm1 = document.forms['DataForm1'];
var DataGrid1_Names = new Array("EmpNo", "LastName", "FirstName",
"PhoneExt", "HireDate", "Salary");
var DataGrid1_IDs = new Array(DataForm1.DataGrid1_EmpNo,
DataForm1.DataGrid1_LastName, DataForm1.DataGrid1_FirstName,
DataForm1.DataGrid1_PhoneExt, DataForm1.DataGrid1_HireDate,
DataForm1.DataGrid1_Salary);
var DataGrid1_Disp = new xmlDisplay(XMLBroker1_RS, DataGrid1_IDs, DataGrid1_Names, DataForm1.StatusColumn);
xml_ready=true;
</SCRIPT>

</BODY>
</HTML>

...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
WATTER 2001-08-02
  • 打赏
  • 举报
回复
我在用李维的方法是碰到两个问题:
1、编写ISAPI/NSAPI形式的web应用程序,最后生成*.dll文件,在浏览器中访问该文件,正常,关闭浏览器,
在工程项目中做进一步修改,编译,这时出错,显示无法编译,存盘重新启动系统再次编译,正常,初步理解:
虽然浏览器关闭,但dll文件没有关闭,仍在运行,故无法编译,如何解决?
2、编写CGI形式的web应用程序,最后生成*.exe文件,在浏览器中访问时,下载工具(FlashJet)自动启动,
关闭下载工具后,可以看到正确结果,如何避免下载工具的自动启动?
gaochunguang 2001-06-03
  • 打赏
  • 举报
回复
*.js文件放到当前目录
dana 2001-06-03
  • 打赏
  • 举报
回复
你写的也够多的,IE5应该没这问题.
abitoom 2000-07-28
  • 打赏
  • 举报
回复
你到http://www.delphibbs.com上有与你类似的问题解决。
关于本书 本书是针对中高级的专业和准专业的程序开发人员而编写的。全书共分五篇:第一篇简要介绍了分布式结构及Delphi 6对 它的支持;第二篇讲述了分布式组件的实现,篇中分别讲述了DCOM架构的基元——COM的编程基础,创建DCOM客户端用& 务器应用以及COM十分布式应用的开发;第三篇讲了另一种分布式技术CORBA的原理及实现;第四篇讲多层分布式数据库系 统,从数据库的链接讲起,由浅入深地讲了MIDAS的概念,它的DCOM及CORBA的实现方式,最后深入剖析了它的结构;第五 篇讲了分布式Web技术,包括现在流行的 Web技术及 Internet Express的应用。本书的各个部分,都辅之有详尽的例子, 您会一步步学习构建各种分布式应用程序。相信,在仔细研读和亲手实践了这些程序之后,您一定会成为分布式开发的能 手。由于计算机技术的可操作性很强,所以,在本书的学习过程中,希望读者一定要亲手操作,边看书边实践,这样才会 达到更好的学习效果。 第一篇 分布式结构介绍 第1章 分布式结构与多层应用系统概述 1.1 分布式结构简介 1.1.1 现有的分布式结构 1.1.2 各种分布式结构的比较 1.2 分布式结构的优点 1.3 多层应用系统介绍 1.4 分布式应用的意义 1.5 用delphi进行分布式应用程序的开发 1.5.1 delphi 6支持的分布式组件技术 1.5.2 开发midas应用 1.5.3 开发分布式web技术 第二篇 delphi 6的 comidcom/com十编程 第 2章 delphi 6的 com编程基础 2.1 com的概念及特性 2.1.1 com简介 2.1.2 com的特性 2.1.3 com的优点 2.2 创建com对象 2.2.l 规划com对象 2.2.2 com对象向导 2.2.3 automation对象向导 2.2.4 定义接口 2.2.5 注册com对象 2.2.6 测试com服务程序 2.3 对象接口介绍 2.3.l 接口的作用 2.3.2 接口的语法 2.3.3 iunknown接口 2.3.4 接口的实现 2.3.5 接口的引用 2.3.6 双重接口 2.4 type library的使用 2.4.1 type library编辑器介绍 2.4.2 type librny的基本操作 第3章 com的高级技术 3.1 dll中对象的实现 3.1.l 编写dll的一般方法 3.1.2 dll的创建 3.1.3 应用程序的创建 3.2 com接口的实现 3.2.1 tinterfacedobject类的接口实现 3.2.2 tinterfacedobject类的多接口实现 3.3 利用类型库进行com编程 3.3.l typedcomobject类概述 3.3.2 创建dll服务程序 3.3.3 创建客户应用程序 第4章 创建dcom客户端用&务器应用 4.1 dcom系统结构及技术特性 4.1.1 dcom的系统结构 4.1.2 dcom的技术特性 4.1.3 com与dcom的比较 4.2 dcom服务器的创建 4.2.l 创建自动化对象 4.2.2 dcom服务器的安装 4.3 dcom客户程序的创建 第5章 com十分布式应用的开发 5.1 com十系统构架 5.1.1 com十简介 5.1.2 com十的系统构架 5.2 com十组件的开发 5.3 客户应用程序的开发 第三篇 delphi 6的 corba编程 第6章 corba编程基础 6.1 corba技术简介 6.2 coana的基本概念 6.2.1 corba对象 6.2.2 接口定义语言idl 6.2.3 对象请求代理orb 6.2.4 根程序stub和框架程序skeleton 6.3 delphi 6对 corba的支持 6.3.1 visibroker技术 6.3.2 sined agent 6.3.3 corba对象接口的实现 6.4 delphi 6中开发 corba的工具介绍 6.4.1 type librny编辑器 6.4.2 支持coana中的类 6.4.3 corba对象向导 6.4.4 corba数据模块向导 6.4.5 coana clientheerver应用程序 6.5 corba对象向导的使用 6.5.1 解析 corba对象向导 6.5.2 创建corba服务器 6.5.3 创建客户程序 6.6 多线程corba应用的开发 6.6.1 创建支持多线程的corba对象 6.6.2 客户端程序的开发 第7章 高级corba编程 7.1 idl语言基础 7.1.1 一个典型的idl 7.1.2 idl常规术语 7.l.3 idl语法 7.l.4 corba模块 7.2 开发corba高级应用程序 7.3 corba客户端/服务器应用程序向导的使用 7.3.1 idl文件的生成 7.3.2 创建corba服务器 7.3.3 创建corba客户应用程序 第四篇 多层分布式数据库系统midas的开发 第8章 数据库的链接 8.l 数据库的建立 8.2 数据库应用程序的开发步骤 8.3 delphi 6数据库应用开发概述 8.3.1 boriand数据库引擎bde 8.3.2 数据库工具 sql explorer 8.3.3 用bde链接本地数据库的一个简单例子 8. 3. 4 delphi中数据存取总结 8.4 odbc技术 8.4.1 odbc的创建 8.4.2 odbc的概念 8.4.3 odbc解决方案 8.4.4 odbc总体结构 8.5 ado 8.5.1 ado本地数据访问的解决方案 8.5.2 基本的ado编程模型 8.5.3 远程数据访问rds的解决方案 8.5.4 delphi 6中的 tado组件的介绍 8.5.5 一个ado具体的例子 8.6 interbase数据库服务器及ibx组件 8.6.1 inierbase的简要介绍 8.6.2 一个ibx的例子 8.7 多层应用处理数据的一些技巧 8.7.1 数据库链接中的 connection pooling链接技术 8.7.2 多层应用处理数据的原理 8.7.3 处理大型数据集的技巧 第9章 用dcom数据模块来实现基本多层分布式系统 9. l 平滑过渡到h层体系结构 9.2 关于多层应用程序 9·3 delphi 6开发基本多层分布式系统 9.3.1 配置数据库 9.3.2 创建应用服务器 9.3.3 创建客户应用程序 9.4 本地数据库查询操作localquers 9.5 delphi 6开发基本多层分布式系统详解 9.5.1 简单应用服务器程序的具体设置 9.5.2 简单客户端程序的具体设置 第10章 midas的高级应用开发 10.1 在 delphi 6开发 midas三层应用程序 10.1.1 在 delphi 6中创建应用服务器 10.1. 2 在delphi 6中创建客户程序 10.1.3 与应用服务器链接 10.1.4 调用服务器上的接口 10.1.5 在客户端纠错 10. 1.6 更新数据 10.2 midas多层应用程序的开发 10. 2.1 delphi 6中无状态的中间层数据存取 10. 2.2 多层体系结构下的事务 10.2.3 一个基本的midas例子 10.2.4 公文包模式介绍以及具体例子 10.2.5 datapooler技术的例子 10. 3 在 midas中使用 activex 10. 3.1 activex控件开发过程 10.3.2 扩展 activex 10.3.3 注册和安装 10. 3.4 发布 activex 10.3.5 一个 midas的 activexform例子 第11章 用 corba数据模块来实现 midas 11.1 corba数据模块向导介绍 11.2 corba服务器的创建 11.2.1 创建 corba数据模块 11.2.2 添加 corba数据模块组件 11.2.3 运行 coana服务器 11.3 客户程序的创建 11.3.1 程序窗体设计 11.3.2 组件设置 11.3.3 添加代码 11.3.4 运行程序 第五篇 分布式web应用开发 第12章 分布式 web应用开发 12.1 现有 web技术 12.1.1 html技术 12.1.2 javascript技术 12.l.3 asp技术 12.1.4 cgi技术 12.1.5 isapi技术 12.2 用internetexpress开发web分布式应用 12.2.1 delphi 6对传统 web技术的支持 12.2.2 internetexpress工作原理 12.2.3 internetexpress组件介绍 12.2.4 web服务器和 internetexpress的通信 12.2.5 internetexpress实用编程 12.3 开发web服务 12.3.1 web服务概念 12.3.2 web服务协议 12.3.3 web服务应用
Delphi 6 程序员代码编写标准指南 一、序言 二、通用源代码格式规则 2.1 缩格 2.2 页边空格 2.3 Begin…End 配对 2.4 代码文件中通用符号含义 三、Object Pascal 3.1 括号 3.2 保留字和关键字 3.3 过程和函数(例程) 3.3.1 命名/格式化 3.3.2 形式参数 3.3.2.1 格式化 3.3.2.2 命名 3.3.2.3 参数的排序 3.3.2.4 常量参数 3.3.2.5 名称的冲突 3.4 变量 3.4.1 变量的命名和格式 3.4.2 局部变量 3.4.3 全局变量的使用 3.5 类型 3.5.1 大写约定 3.5.1.1 浮点指针类型 3.5.1.2 枚举类型 3.5.1.3 变数和ole变数类型 3.5.2 结构类型 3.5.2.1 数组类型 3.5.2.2 记录类型 3.6 语句 3.6.1 if 语句 3.6.2 case 语句 3.6.2.1 一般性话题 3.6.2.2 格式 3.6.3 while 语句 3.6.4 for 语句 3.6.5 repeat 语句 3.6.6 with 语句 3.6.6.1 一般话题 3.6.6.2 格式 3.7 结构异常处理 3.7.1 一般话题 3.7.2 try…finally的使用 3.7.3 try…except的使用 3.7.4 try…except…else的使用 3.8 类类型 3.8.1 命名和格式 3.8.2 域 3.8.2.1 命名/格式 3.8.2.2 可视化 3.8.3 方法 3.8.3.1 命名/格式 3.8.3.2 使用静态的方法 3.8.3.3 使用虚拟/动态的方法 3.8.3.4 使用抽象的方法 3.8.3.5 属性存取方法 3.8.4 属性 3.8.4.1 命名/格式 3.8.4.2 使用存取的方法 四、文件 4.1 工程文件 4.1.1 命名 4.2 窗体文件 4.2.1 命名 4.3 数据模板文件 4.3.1 命名 4.4 远端数据模板文件 4.4.1 命名 4.5 Unit文件 4.5.1 通用Unit结构 4.5.1.1 unit的名字 4.5.1.2 uses子句 4.5.1.3 interface部分 4.5.1.4 implementation部分 4.5.1.5 initialization部分 4.5.1.6 finalization部分 4.5.2 窗体单元 4.5.2.1 命名 4.5.3 数据模板单元 4.5.3.1 命名 4.5.4 一般目的单元 4.5.4.1 命名 4.5.5 构件单元 4.5.5.1 命名 4.6 文件头 五、窗体和数据模板 5.1 窗体 5.1.1 窗体类型命名标准 5.1.2 窗体实例命名标准 5.1.3 自动创建窗体 5.1.4 模式窗体实例化函数 5.2 数据模板 5.2.1 数据模板命名标准 5.2.2 数据模板实例命名标准 六、包 6.1 使用运行包和设计包的比较 6.2 文件命名标准 七、构件 7.1 用户自定义构件 7.2 构件单元 7.3 使用注册单元 7.4 构件实例命名约定 7.5 构件的前缀 7.6 Standard 页 7.7 Additional 页 7.8 Win32 页 7.9 System 页 7.10 Internet 页 7.11 Data Access 页 7.12 Data Controls 页 7.13 Decision Cube 页 7.14 Qreport 页 7.15 Dialogs 页 7.16 Win3.1 页 7.17 Samples 页 7.18 ActiveX 页 7.19 Midas 页 7.20 ADO 页 7.21 InterBase 页 7.22 InternetExpress 页 7.23 FastNet 页

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧