freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第十八章delphi客戶(hù)服務(wù)器應(yīng)用開(kāi)發(fā)四(編輯修改稿)

2024-10-11 15:30 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 RNAME = SYSDBA PASSWORD = masterkey TransIsolation 屬性為 tiReadCommitted 表明,如果存在多個(gè)同時(shí)事務(wù),則某一事務(wù)只允許讀由其它事務(wù)提交了 的數(shù)據(jù)。 程序中 EmployeeDatabase 的應(yīng)用還與事務(wù)控制等有關(guān)。下文中會(huì)介紹這方面的內(nèi)容。 不同數(shù)據(jù)庫(kù)表的切換 在許多數(shù)據(jù)庫(kù)應(yīng)用中都要在不同數(shù)據(jù)庫(kù)表之間相互切換,以響應(yīng)用戶(hù)輸入條件或系統(tǒng)狀態(tài)的變化。這時(shí),往往需要特別的處理,例如改變光標(biāo)形狀或隱藏?cái)?shù)據(jù)改變等,尤其是在客戶(hù) /服務(wù)器應(yīng)用程序中。因?yàn)槭怯?SQL 語(yǔ)句訪(fǎng)問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù),有時(shí)還要在服務(wù)器端執(zhí)行計(jì)算任務(wù),所以客戶(hù)端的數(shù)據(jù)變化會(huì)有一定的間隔,因此應(yīng)該讓用戶(hù)明白發(fā)生了什么。下面是 CSDEMO 在數(shù)據(jù)庫(kù)表切換時(shí)的處理辦法: procedure ( ATable: string )。 begin := crHourglass。 { 向用戶(hù)提示當(dāng)前操作狀態(tài) } 。 { 隱藏?cái)?shù)據(jù)變化 } := FALSE。 { 關(guān)閉原來(lái)的數(shù)據(jù)庫(kù)表 } := ATable。 { 更新數(shù)據(jù)庫(kù)表名 } 。 { 打開(kāi)數(shù)據(jù)庫(kù)表 } 。 { 顯示所作的修改 } := crDefault。 { 重新設(shè)置光標(biāo)形狀 } end。 crHourglass 型光標(biāo)表明正在執(zhí)行 SQL 查詢(xún)。 DisableControls 和EnableControls 的作用是隱藏和顯示數(shù)據(jù)變化。 InterBase 觸發(fā)器 (Trigger)的應(yīng)用 在 CSDEMO 應(yīng)用程序中,演示觸發(fā)器應(yīng)用的窗體是 TFromTriggerDemo; 在該窗體中包含兩個(gè) TDBGrid 對(duì)象。 DBGrid1 顯示 EmployeeTable 中的數(shù)據(jù),DBGrid2 顯示 SalaryHistoryTable 中的數(shù)據(jù)。它們的主要屬性及屬性值如下: 表 EmlpoyeeTable 部件主要屬性的取值 ━━━━━━━━━━━━━━━━━━━━━ 屬 性 屬 性 值 ───────────────────── DatabaseName EmployeeDemoDB IndexFieldName Emp_No TableName EMPLOYEE ━━━━━━━━━━━━━━━━━━━━━ 表 SalaryHistoryTable 部件主要屬性的取值 ━━━━━━━━━━━━━━━━━━━━━ 屬 性 屬 性 表 ───────────────────── DatabaseName EmployeeDemoDB IndexFieldName Emp_No MasterFields Emp_No MasterSource EmployeeSource TableName SALARY_HISTORY ━━━━━━━━━━━━━━━━━━━━━ 這兩個(gè)表之間存在兩種關(guān)系: ● 連接關(guān)系 EmployeeTable 的記錄變化時(shí), SalaryHistoryTable 的數(shù)據(jù)要作相應(yīng)的變化。這種連接關(guān)系是通過(guò)索引來(lái)實(shí)現(xiàn)的。 ● 數(shù)據(jù)一致性 對(duì) EmployeeTable 中的 Salary 字段的值作修改必須反映到 SalaryHistoryTable中, SalaryHistoryTable 維護(hù)的是 Salary 變化的歷史信息。這種數(shù)據(jù)一致性要求在本程序中是通過(guò)觸 發(fā)器實(shí)現(xiàn)的。 觸發(fā)器是在 SQL 服務(wù)器端執(zhí)行的一段程序,它在服務(wù)器端被觸發(fā)執(zhí)行完成一定的數(shù)據(jù)計(jì)算任務(wù)。 下面是 InterBase 服務(wù)器上與 Employee 表相關(guān)的觸發(fā)器程序: Triggers on Table EMPLOYEE: SAVE_SALARY_CHANGE, Sequence: 0, Type: AFTER UPDATE, Active AS BEGIN IF ( ) THEN INSERT INTO salary_history (emp_no, change_date, updater_id, old_salary, percent_change) VALUES ( , 39。now39。, user, , ( ) * 100 / )。 END 因?yàn)橛|發(fā)器是相應(yīng)于 EMPLOYEE 表上的數(shù)據(jù)修改由服務(wù)器自動(dòng)觸發(fā)執(zhí)行的,所以在客戶(hù)應(yīng)用程序上沒(méi)有顯式的調(diào)用。在客戶(hù)端有打開(kāi)并顯示數(shù)據(jù)庫(kù)表內(nèi)容的程序和當(dāng) SALARY_HISTORY 表中數(shù)據(jù)變化時(shí)的更新顯示的操作。 procedure (Sender: TObject)。 begin 。 。 end。 procedure (DataSet: TDataSet)。 begin { 一個(gè)雇員的薪水變化將觸發(fā)薪水調(diào)整歷史記錄的變化 , 因此,如果 SalaryHistory 打開(kāi)的話(huà),就需要更新顯示 } with SalaryHistoryTable do if Active then Refresh。 end。 存儲(chǔ)過(guò)程編程 存儲(chǔ)過(guò)程也是 SQL 服務(wù)器上的一段程序,它接收輸入?yún)?shù),在服務(wù)器端執(zhí)行,并將結(jié)果返回客戶(hù)端,存儲(chǔ)過(guò)程是必須在客戶(hù)應(yīng)用程序中顯式調(diào)用的。 對(duì)于數(shù)據(jù)庫(kù)表中大量記錄的統(tǒng)計(jì)和函數(shù)計(jì)算,存儲(chǔ)過(guò)程是很有用,這樣可以將重復(fù)性計(jì)算任務(wù)轉(zhuǎn)換到服務(wù)器,提高數(shù)據(jù)庫(kù)應(yīng)用的性能。 Delphi 中有兩個(gè)部件能操作遠(yuǎn)程數(shù)據(jù)庫(kù) 服務(wù)器上的存儲(chǔ)過(guò)程: TQuery 和TStoredProc。 1. TQuery 的存儲(chǔ)過(guò)程編程 CSDEMO 中演示用 TQuery 調(diào)用存儲(chǔ)過(guò)程的窗體是 TFrmQueryProc。 TFrmQueryProc 中有兩個(gè) TDBGrid 部件。 DBGrid1 顯示 EmployeeTable中的數(shù)據(jù)。 DBGrid2 顯示 Project 表中的數(shù)據(jù)。使用存儲(chǔ)過(guò)程的 TQuery 部件名為 EmployeeProjectsQuery,它的作用是建立 Emplo
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1