程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第十八章-Delphi客戶服務器應用開發(四)(1)

第十八章-Delphi客戶服務器應用開發(四)(1)

編輯:Delphi

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved