⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 046.htm

📁 Delphi基础知识讲座
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI基础教程-->第十八章 Delphi客户服务器应用开发(四)</TITLE>
<META NAME="keywords" CONTENT=" DELPHI基础教程 第十八章 Delphi客户服务器应用开发(四)">
<META NAME="description" CONTENT=" - DELPHI基础教程 - 第十八章 Delphi客户服务器应用开发(四)">

<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋体"}
.tt2 {font: 12pt/15pt "宋体"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 background="bg.gif" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">

<TR>
<TD CLASS="tt3" VALIGN="top" width="8%"  background="bg.gif"><strong><A HREF="047.htm" ><FONT style="FONT-SIZE: 9pt">后一页</font></A><BR>
<A HREF="045.htm" ><FONT style="FONT-SIZE: 9pt">前一页</font></A><BR>

<A HREF="index.html" ><FONT style="FONT-SIZE: 9pt">回目录</font></A><BR>
<A HREF="../../../../../index.htm"><FONT style="FONT-SIZE: 9pt">回首页</font></A><BR>
</strong>
</TD>
<TD class="tt2" background="bg.gif" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷体_GB2312">第十八章 Delphi客户服务器应用开发(四)</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<font face="Arial"><p>18.3.4.1 </font><font face="宋体" lang="ZH-CN">适化概述 </p>
</font><font face="Arial"><p></font><font face="宋体" lang="ZH-CN"> </font><font
face="Arial"> </font><font face="宋体" lang="ZH-CN">所谓适化就是将桌面应用转化为</font><font
face="Arial">Client/Server</font><font face="宋体" lang="ZH-CN">应用。</p>
<p>  适化是一个很复杂的主题,这里不详细讲述。本节将介绍适化</font><font
face="Arial">Delphi </font><font face="宋体" lang="ZH-CN">应用程序中最重要的方面。</p>
<p>  适化的主要方面有:</p>
<p>  ●</font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">将数据库从桌面平台到服务器的适化</p>
<p> </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">●</font><font
face="Arial"> </font><font face="宋体" lang="ZH-CN">将应用程序转化为</font><font
face="Arial">Client/Server</font><font face="宋体" lang="ZH-CN">的适化</p>
<p> </p>
<p>  适化还需要实现从桌面环境到</font><font face="Arial">Client/Server</font><font
face="宋体" lang="ZH-CN">环境的转化。</p>
<p>  桌面数据库和</font><font face="Arial">SQL</font><font face="宋体"
lang="ZH-CN">服务器数据库在许多方面有不同之处。例如:</font><font
face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN"> ●</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">桌面数据库用于同一时刻单用户的访问,而服务器用于多用户访问</font><font
face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN"> ●</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">桌面数据库是面向记录的,而服务器是面向集合的</p>
<p> </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">●</font><font
face="Arial"> </font><font face="宋体" lang="ZH-CN">桌面数据库将每个表存储在独立的文件中,</font><font
face="Arial"> </font><font face="宋体" lang="ZH-CN">而服务器将所有的表存储在数据库中</font><font
face="Arial">Client/Server</font><font face="宋体" lang="ZH-CN">应用必须解决更新的问题,最复杂的是联接、网络和事务控制</p>
<p> </font><font face="Arial"></p>
<p>18.3.4.2 </font><font face="宋体" lang="ZH-CN">适化数据库</p>
<p> </p>
<p>  适化数据库包含下列步骤:</p>
<p>  ●</font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">在桌面数据库结构的基础上,定义服务器上的元数据</p>
<p> </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">●</font><font
face="Arial"> </font><font face="宋体" lang="ZH-CN">将数据从桌面转化到服务器中</font><font
face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN"> ●</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">解决下列问题:</font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN"> </font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">●</font><font face="Arial"> </font><font face="宋体"
lang="ZH-CN">数据类型差异</font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN"> </font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN"> ●</font><font face="Arial"> </font><font face="宋体"
lang="ZH-CN">数据安全性和完整性</font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN"> </font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">●</font><font face="Arial"> </font><font face="宋体"
lang="ZH-CN">事务控制</font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN">  </font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">●</font><font face="Arial"> </font><font face="宋体"
lang="ZH-CN">数据访问权</font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN">   ●</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">数据合法性</font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN">   ●</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">锁定</p>
<p> </font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN"> </font><font face="Arial">Delphi</font><font
face="宋体" lang="ZH-CN">提供了两种方法适化一个数据库。</p>
<p> </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">●</font><font
face="Arial"> </font><font face="宋体" lang="ZH-CN">使用</font><font face="Arial">Database
Desktop</font><font face="宋体" lang="ZH-CN">工具,选择菜单</font><font
face="Arial">Tools/Utilities/Copy to</font><font face="宋体" lang="ZH-CN">命令将数据库表从桌面方式拷贝到</font><font
face="Arial">SQL</font><font face="宋体" lang="ZH-CN">格式</font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN">●</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">建立应用</font><font face="Arial">TBatchMove</font><font
face="宋体" lang="ZH-CN">部件的应用程序</p>
<p> </p>
<p>  这两种方法都可以将表结构和数据从桌面数据源转化到服务器上。依靠这些数据库,可能需要改变结果表。例如,可能想进行不同数据类型的映射。</p>
<p>  也可以将下列特征加入数据库:</font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN">●</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">完整性约束</font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN">●</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">索引</p>
<p> </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">●</font><font
face="Arial"> </font><font face="宋体" lang="ZH-CN">检测约束</font><font
face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN">●</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">存储过程和触发器</p>
<p> </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">●</font><font
face="Arial"> </font><font face="宋体" lang="ZH-CN">其它服务器特征</p>
<p> </p>
<p>  如果用</font><font face="Arial">SQL</font><font face="宋体" lang="ZH-CN">脚本和服务器数据定义工具定义元数据会更有效。然后用前面介绍的两种方法转移数据。因为如果是手工定义数据库表,</font><font
face="Arial">Database Desktop</font><font face="宋体" lang="ZH-CN">和</font><font
face="Arial">TBatchMove </font><font face="宋体" lang="ZH-CN">部件将只拷贝数据。</p>
<p> </font><font face="Arial"></p>
<p>18.3.4.3 </font><font face="宋体" lang="ZH-CN">适化应用程序</p>
<p> </p>
<p>  在理论上,设计用来访问局部数据的</font><font face="Arial">Delphi</font><font
face="宋体" lang="ZH-CN">应用程序做很少的修改就可以访问远程服务器上的数据。如果在服务器上定义适合的数据源,你就能将应用程序指向访问它,这只需简单地改变应用程序中</font><font
face="Arial">TTable</font><font face="宋体" lang="ZH-CN">或</font><font face="Arial">TQuery</font><font
face="宋体" lang="ZH-CN">部件的</font><font face="Arial">DatabaseName</font><font
face="宋体" lang="ZH-CN">属性。</p>
<p>  实际上,在访问局部和过程数据源之间有许多重要的不同之处。</font><font
face="Arial">Client/Server</font><font face="宋体" lang="ZH-CN">应用程序必须解决大量的在桌面应用中所没有的问题。</p>
<p>  任何</font><font face="Arial">Delphi</font><font face="宋体" lang="ZH-CN">应用程序都能用</font><font
face="Arial">TTable</font><font face="宋体" lang="ZH-CN">或</font><font face="Arial">TQuery</font><font
face="宋体" lang="ZH-CN">部件访问数据。桌面应用程序通常都是使用</font><font
face="Arial">TTable</font><font face="宋体" lang="ZH-CN">部件。当适化到</font><font
face="Arial">SQL</font><font face="宋体" lang="ZH-CN">服务器上时,用</font><font
face="Arial">TQuery</font><font face="宋体" lang="ZH-CN">会更有效,如果应用程序要检索大量记录,则</font><font
face="Arial">TQuery</font><font face="宋体" lang="ZH-CN">部件要略胜一筹。</p>
<p>  如果应用程序使用统计或数学函数,那么在服务器上通过存储过程执行这些函数会更有效。因为存储过程执行更快,使用存储过程还可以减少网络负载,特别是大量行数据的函数。</p>
<p>  例如,计算大量记录的标准差:</p>
<p>  ●</font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">如果该函数在客户端执行,所有的值从服务器上检索出来并送到客户端,导致网络拥塞</p>
<p>  ●</font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">如果该函数在服务器端执行,则应用程序只需要服务器上的答案</p>
<p> </p>
<p> </font><font face="Arial"></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>18.4 Delphi</font><font face="宋体" lang="ZH-CN">客户</font><font face="Arial">/</font><font
face="宋体" lang="ZH-CN">服务器应用实例分析</p>
<p> </p>
<p>  本节中采用的实例是</font><font face="Arial">Delphi2.0</font><font
face="宋体" lang="ZH-CN">数据库的例子</font><font face="Arial">CSDEMO</font><font
face="宋体" lang="ZH-CN">。</font><font face="Arial">CSDEMO</font><font face="宋体"
lang="ZH-CN">是</font><font face="Arial">Delphi</font><font face="宋体" lang="ZH-CN">客户</font><font
face="Arial">/</font><font face="宋体" lang="ZH-CN">服务器编程的示例程序,它采用的数据库服务器是</font><font
face="Arial">Local InterBase Server</font><font face="宋体" lang="ZH-CN">。</font><font
face="Arial"></p>
<p>CSDEMO</font><font face="宋体" lang="ZH-CN">较好地示范了</font><font
face="Arial">BDE</font><font face="宋体" lang="ZH-CN">环境的配置,</font><font
face="Arial">InterBASE Server</font><font face="宋体" lang="ZH-CN">高级功能应用,</font><font
face="Arial">SQL</font><font face="宋体" lang="ZH-CN">服务器联接,触发器应用、存储过程编程和事务控制技术等,具有较高的参考价值。本节讲述下列内容:</p>
<p> </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">●</font><font
face="Arial"> </font><font face="宋体" lang="ZH-CN">数据库环境介绍</p>
<p>  ●</font><font face="Arial"> TDatabase</font><font face="宋体" lang="ZH-CN">的应用</font><font
face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN"> ●</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">不同数据库表的切换</p>
<p> </font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">●</font><font
face="Arial"> </font><font face="宋体" lang="ZH-CN">触发器编程</p>
<p>  ●</font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">存储过程编程</font><font
face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN"> ●</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">事务控制应用</p>
<p> </font><font face="Arial"></p>
<p>18.4.1 </font><font face="宋体" lang="ZH-CN">数据库环境介绍</p>
<p> </p>
<p>  本例中采用的数据库服务器是</font><font face="Arial">Local InterBase
Server</font><font face="宋体" lang="ZH-CN">。</font><font face="Arial">Local InterBase</font><font
face="宋体" lang="ZH-CN">是</font><font face="Arial">InterBase Server</font><font
face="宋体" lang="ZH-CN">的单用户版</font><font face="Arial">32</font><font
face="宋体" lang="ZH-CN">位、兼容</font><font face="Arial">ANSI SQL</font><font
face="宋体" lang="ZH-CN">。</font><font face="Arial">Local InterBase</font><font
face="宋体" lang="ZH-CN">支持客户</font><font face="Arial">/</font><font
face="宋体" lang="ZH-CN">服务器应用在单机上的开发和测试,并且可以很容易地适化到</font><font
face="Arial">InterBase Server</font><font face="宋体" lang="ZH-CN">上。因此,开发客户</font><font
face="Arial">/</font><font face="宋体" lang="ZH-CN">服务器应用采用</font><font
face="Arial">Local InterBase</font><font face="宋体" lang="ZH-CN">作为原型开发环境是很方便的。</p>
<p> </font><font face="Arial"></p>
<p>18.4.1.1 IBLOCAL</font><font face="宋体" lang="ZH-CN">的</font><font face="Arial">BDE</font><font
face="宋体" lang="ZH-CN">参数</p>
<p> </p>
<p>  本例中的</font><font face="Arial">SQL</font><font face="宋体" lang="ZH-CN">数据库是</font><font
face="Arial">IBLOCAL</font><font face="宋体" lang="ZH-CN">。它是由</font><font
face="Arial">BDE</font><font face="宋体" lang="ZH-CN">配置工具</font><font
face="Arial">(BDECFG32.EXE)</font><font face="宋体" lang="ZH-CN">设置参数值。它的各项参数值列于下表:</p>
<p> </font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN">表</font><font face="Arial">18.13 IBLOCAL</font><font
face="宋体" lang="ZH-CN">的各项参数值</p>
<p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p>
<p>参</font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">数</font><font
face="Arial"> </font><font face="宋体" lang="ZH-CN">名</font><font face="Arial"> </font><font
face="宋体" lang="ZH-CN">参</font><font face="Arial"> </font><font face="宋体"
lang="ZH-CN">数</font><font face="Arial"> </font><font face="宋体" lang="ZH-CN">值</font><font
face="Arial"> </p>
<p></font><font face="宋体" lang="ZH-CN">────────────────────────────────────</p>
<p></font><font face="Arial">TYPE INTRBASE</p>
<p>PATH </p>
<p>SERVER NAME C:\INTRBASE\EXAMPLES\EMPLOYEE.GDB</p>
<p>USER NAME SYSDBA</p>
<p>OPEN MODE READ/WRITE</p>
<p>SCHEMA CACHE SIZE 8</p>
<p>LANGDRIVER</p>
<p>SQLQRYMODE</p>
<p>SQLPASSTHRU MODE SHARED AUTOCOMMIT</p>
<p>SCHEMA CHCHE TIME -1</p>
<p>MAX ROWS -1</p>
<p>BATCH COUNT 200</p>
<p>ENABLE SCHEMA CACHE FALSE</p>
<p>SCHEMA CACHE DIR </p>
<p></font><font face="宋体" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p>
<p> </font><font face="Arial"></p>
<p>18.4.1.2 </font><font face="宋体" lang="ZH-CN">数据库结构介绍</p>
<p> </font><font face="Arial"></p>
<p></font><font face="宋体" lang="ZH-CN"> </font><font face="Arial">IBLOCAL</font><font
face="宋体" lang="ZH-CN">数据库的结构都是由</font><font face="Arial">InterBase</font><font
face="宋体" lang="ZH-CN">服务器工具交互式</font><font face="Arial">SQL</font><font
face="宋体" lang="ZH-CN">工具</font><font face="Arial">(ISQL)</font><font
face="宋体" lang="ZH-CN">定义的。</p>
<p>  用</font><font face="Arial">ISQL</font><font face="宋体" lang="ZH-CN">定义数据库,首先要用</font><font
face="Arial">Create Database</font><font face="宋体" lang="ZH-CN">命令建立数据库,建立的新数据库一般是以</font><font
face="Arial">GDB</font><font face="宋体" lang="ZH-CN">为扩展名。建立好后,就可以用</font><font

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -