首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 计算机等级考试 > 计算机二级 > Delphi > 复习资料 > 正文

2011计算机等考Delphi:Delphi客户服务器应用开发

来源:考试吧Exam8.com) 2010-10-30 9:05:16 考试吧:中国教育培训第一门户 模拟考场
本章中我们将阐述客户服务器体系结构原理、如何用Delphi构建客户/服务器的环境和Delphi存取远程SQL服务器的编程和注意事项。

  5. 访问输出参数和结果集

  存储过程在输出参数数组中返回值。如果服务器支持返回值可以是单个结果或者结果集。

  在运行时访问存储过程的输出参数,可以索引Params属性或者用ParamByName方法访问这些值。下列表达式都用输出参数设置了编辑框的值:

  Edit1.Text := StoredProc1.Params[6].AsString;

  Edit1.Text := StoredProc1.ParamsByName('Contact').AsString;

  如果存储过程返回结果集,则用标准数据相关控制访问和显示值会更有用。

  在某些服务器上如Sybase,存储过程能象查询语句那样返回结果集,应用程序可以使用数据相关控制一显示这些存储过程的输出。

  用数据相关控制显示存储过程返回结果的方法如下:

  ① 将DataSource部件放在数据模块上。

  ② 将DataSource部件的DataSet属性设置为接收数据的TStoredProc部件的名字。

  ③ 将数据相关控制的DataSource属性设为DataSource部件的名字。

  这样,当用于TStoredProc部件和Active属性为True时,数据相关控制就能显示从存储过程返回的结果。

  18.3.4 从开发平台到服务器的向上适化

  18.3.4.1 适化概述

  所谓适化就是将桌面应用转化为Client/Server应用。

  适化是一个很复杂的主题,这里不详细讲述。本节将介绍适化Delphi 应用程序中最重要的方面。

  适化的主要方面有:

  ● 将数据库从桌面平台到服务器的适化

  ● 将应用程序转化为Client/Server的适化

  适化还需要实现从桌面环境到Client/Server环境的转化。

  桌面数据库和SQL服务器数据库在许多方面有不同之处。例如:

  ● 桌面数据库用于同一时刻单用户的访问,而服务器用于多用户访问

  ● 桌面数据库是面向记录的,而服务器是面向集合的

  ● 桌面数据库将每个表存储在独立的文件中, 而服务器将所有的表存储在数据库中Client/Server应用必须解决更新的问题,最复杂的是联接、网络和事务控制

  18.3.4.2 适化数据库

  适化数据库包含下列步骤:

  ● 在桌面数据库结构的基础上,定义服务器上的元数据

  ● 将数据从桌面转化到服务器中

  ● 解决下列问题:

  ● 数据类型差异

  ● 数据安全性和完整性

  ● 事务控制

  ● 数据访问权

  ● 数据合法性

  ● 锁定

  Delphi提供了两种方法适化一个数据库。

  ● 使用Database Desktop工具,选择菜单Tools/Utilities/Copy to命令将数据库表从桌面方式拷贝到SQL格式

  ● 建立应用TBatchMove部件的应用程序

  这两种方法都可以将表结构和数据从桌面数据源转化到服务器上。依靠这些数据库,可能需要改变结果表。例如,可能想进行不同数据类型的映射。

  也可以将下列特征加入数据库:

  ● 完整性约束

  ● 索引

  ● 检测约束

  ● 存储过程和触发器

  ● 其它服务器特征

  如果用SQL脚本和服务器数据定义工具定义元数据会更有效。然后用前面介绍的两种方法转移数据。因为如果是手工定义数据库表,Database Desktop和TBatchMove 部件将只拷贝数据。

  18.3.4.3 适化应用程序

  在理论上,设计用来访问局部数据的Delphi应用程序做很少的修改就可以访问远程服务器上的数据。如果在服务器上定义适合的数据源,你就能将应用程序指向访问它,这只需简单地改变应用程序中TTable或TQuery部件的DatabaseName属性。

  实际上,在访问局部和过程数据源之间有许多重要的不同之处。Client/Server应用程序必须解决大量的在桌面应用中所没有的问题。

  任何Delphi应用程序都能用TTable或TQuery部件访问数据。桌面应用程序通常都是使用TTable部件。当适化到SQL服务器上时,用TQuery会更有效,如果应用程序要检索大量记录,则TQuery部件要略胜一筹。

  如果应用程序使用统计或数学函数,那么在服务器上通过存储过程执行这些函数会更有效。因为存储过程执行更快,使用存储过程还可以减少网络负载,特别是大量行数据的函数。

  例如,计算大量记录的标准差:

  ● 如果该函数在客户端执行,所有的值从服务器上检索出来并送到客户端,导致网络拥塞

  ● 如果该函数在服务器端执行,则应用程序只需要服务器上的答案

  18.4 Delphi客户/服务器应用实例分析

  本节中采用的实例是Delphi2.0数据库的例子CSDEMO。CSDEMO是Delphi客户/服务器编程的示例程序,它采用的数据库服务器是Local InterBase Server。

  CSDEMO较好地示范了BDE环境的配置,InterBASE Server高级功能应用,SQL服务器联接,触发器应用、存储过程编程和事务控制技术等,具有较高的参考价值。本节讲述下列内容:

  ● 数据库环境介绍

  ● TDatabase的应用

  ● 不同数据库表的切换

  ● 触发器编程

  ● 存储过程编程

  ● 事务控制应用

  18.4.1 数据库环境介绍

  本例中采用的数据库服务器是Local InterBase Server。Local InterBase是InterBase Server的单用户版32位、兼容ANSI SQL。Local InterBase支持客户/服务器应用在单机上的开发和测试,并且可以很容易地适化到InterBase Server上。因此,开发客户/服务器应用采用Local InterBase作为原型开发环境是很方便的。

  18.4.1.1 IBLOCAL的BDE参数

  本例中的SQL数据库是IBLOCAL。它是由BDE配置工具(BDECFG32.EXE)设置参数值。它的各项参数值列于下表:

  表18.13 IBLOCAL的各项参数值

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  参 数 名 参 数 值

  ────────────────────────────────────

  TYPE INTRBASE

  PATH

  SERVER NAME C:\INTRBASE\EXAMPLES\EMPLOYEE.GDB

  USER NAME SYSDBA

  OPEN MODE READ/WRITE

  SCHEMA CACHE SIZE 8

  LANGDRIVER

  SQLQRYMODE

  SQLPASSTHRU MODE SHARED AUTOCOMMIT

  SCHEMA CHCHE TIME -1

  MAX ROWS -1

  BATCH COUNT 200

  ENABLE SCHEMA CACHE FALSE

  SCHEMA CACHE DIR

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  18.4.1.2 数据库结构介绍

  IBLOCAL数据库的结构都是由InterBase服务器工具交互式SQL工具(ISQL)定义的。

  用ISQL定义数据库,首先要用Create Database命令建立数据库,建立的新数据库一般是以GDB为扩展名。建立好后,就可以用SQL语言定义数据库表,例如建立EMPLOYEE表的SQL语句如下:

  定义域名数据类型:

  CREATE DOMAIN FIRSTNAME AS VARCHAR(15);

  CREATE DOMAIN LASTNAME AS VARCHAR(20);

  CREATE DOMAIN COUNTRYNAME AS VARCHAR(15);

  CREATE DOMAIN EMPNO AS SMALLINT;

  CREATE DOMAIN DEPTNO AS CHAR(3)

  CHECK (VALUE = '000' OR (VALUE > '0' AND VALUE <= '999') OR VALUE IS NULL);

  CREATE DOMAIN JOBCODE AS VARCHAR(5)

  CHECK (VALUE > '99999');

  CREATE DOMAIN JOBGRADE AS SMALLINT

  CHECK (VALUE BETWEEN 0 AND 6);

  CREATE DOMAIN SALARY AS NUMERIC(15, 2)

  DEFAULT 0

  CHECK (VALUE > 0);

  建立EMPLOYEE表:

  CREATE TABLE EMPLOYEE (EMP_NO EMPNO NOT NULL,

  FIRST_NAME FIRSTNAME NOT NULL,

  LAST_NAME LASTNAME NOT NULL,

  PHONE_EXT VARCHAR(4),

  HIRE_DATE DATE DEFAULT 'NOW' NOT NULL,

  DEPT_NO DEPTNO NOT NULL,

  JOB_CODE JOBCODE NOT NULL,

  JOB_GRADE JOBGRADE NOT NULL,

  JOB_COUNTRY COUNTRYNAME NOT NULL,

  SALARY SALARY NOT NULL,

  FULL_NAME COMPUTED BY (last_name || ', ' || first_name),

  PRIMARY KEY (EMP_NO));

  CHECK语句是给数据库字段取值范围加约束条件。PRIMARY_KEY语句是给表建立关键字索引。

  如法炮制,就可以定义IBLOCAL中的所有表。

  IBLOCAL中的表包括:

  EMPLOYEE CUSTOMER DEPARTMENT EMPLOYEE_PROJECT

  PROJECT SALES SALARY_HISCORY

  各数据库表中的内容如下:

  表18.14 EmployeeDemoDB中各数据库表的内容

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━

  数据库表名 表中内容

  ───────────────────────────

  EMPLOYEE 雇员信息

  CUSTOMER 客户信息

  DEPARTMENT 部门信息

  EMPLOYEE_PROJECT 雇员负责的工程

  PROJECT 工程信息

  SALES 销售信息

  SALARY_HISTORY 雇员薪水调整的历史信息

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━

  每个数据库表中都定义了关键字段。关于数据库表中的字段名、类型、大小,这里不再赘述。

上一页  1 2 3 4 5 6 7 8 9 下一页
  相关推荐:2010年9月计算机等级考试试题及答案解析专题
       预告:名师解析2010年9月计算机等级考试试题答案
       2010年9月计算机等级考试成绩查询时间及入口
       2010年9月计算机等考成绩查询短信免费提醒开通
文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。