預存(儲)程序一問? |
答題得分者是:hagar
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
如題:
1 何謂預存(儲)程序?
2 是否須用到TSQLStoredProc的元件才稱之預存程序? 3 引用李維大師高效率資料庫程式設計2-62頁的程式:
以下程式是定義在interBase中的RAISESALARY預儲程序後 請幫忙解說(看不懂)
請詳述 謝謝
CREATE PROCEDURE RAISESALARY(EID CARCHAR(10), RPERCENT FLOAT) AS begin /* Procedure Text */ Update EMPLOYEE set SALARY=SALARY * (1 :RPercent) where EID =:EID; suspend; end「堅持」從洗馬桶做起 Aric |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
1.
Stored Procedure, Database 內儲程序,資料庫管理系統 (DBMS) 上的一種
功能,將 SQL 語言組合成的程序 (procedure) 預先編譯 (compile) 存放在
資料庫 (database) 中供應用程式或使用者呼叫執行,對常用的功能來說,將
程序預先編譯可減少每次呼叫時都編譯一次的工作,可提高執行效能。幾乎所有
資料庫管理系統廠商在執行交易 (transaction) 速度測試時,都使用 Stored
Procedure 來完成。
2.
符合 1. 之定義的稱為 Stored Procedure, 而欲透過 Delphi 來執行 Stored
Procedure 不一定是使用 TSQLStoredProc 元件, 其它的如 TStoredProc、
TADOStoredProc 等 3.
產生一個名為 RAISESALARY 的 Stored Procedure, 此 Stored Procedure
帶有 EID 與 RPERCENT 兩個參數, 參數型態分別為 VARCHAR(10) 與 FLOAT,
而 Stored Procedure 的內容為將 EMPLOYEE 表格的 SALARY 欄位的值乘上
原 SALARY 欄位值的 (1 RPERECNET) 倍, 條件式為該筆 record 的 EID
欄位等於傳入的 EID 參數值
至於 suspend 這句就不知道了
4.買本書來看, 書裏面講得比較多. ---
--<-<-<@ 發表人 - hagar 於 2003/08/03 21:13:05
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |