熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

DELPHI基礎教程:Delphi客戶服務器應用開發(三)[4]

2022-06-13   來源: Delphi編程 

   TSoredProc的關鍵屬性

  ⑴ DatabaseName屬性

  DatabaseName屬性描述要訪問的數據庫的名字該屬性可以為

  ● 已定義的BDE別名

  ● 本地型數據庫的目錄

  ● Local InterBase服務器的目錄路徑和文件名

  ● TDatabase定義的應用程序別名

  在改變DatabaseName之前要使用Close方法將Dataset部件置為非活躍狀態

  ⑵ StoredProcName屬性

  StoredProcName屬性表示服務器上的存儲過程名Oracle服務器允許多個具有相同名字的存儲過程因此要設置Overload屬性來描述執行在Oracle服務器上的存儲過程名

  ⑶ Overload屬性

  Oracle服務器允許Oracle軟件包中存儲過程的重載就是說具有相同名字的不同過程設置Overload屬性用來描述執行在Oracle服務器上的存儲過程如果Overload值為零則假定沒有重載如果Overload為則Delphi執行具有同名的第一個存儲過程如果值為則執行第二個存儲過程

  ⑷ Params屬性

  Params屬性包含傳給存儲過程的參數

   關鍵方法

  ⑴ ParamByName方法

  聲明function ParamByName(const Value: String) TParam;

  ParamByName方法返回Params屬性中具有名為Value的元素值一般用該方法在動態查詢中給參數賦值

  ⑵ Prepare方法

  PrePare方法准備要執行的存儲過程這允許服務器載入存儲過程否則准備處理異常

  ⑶ ExecProc方法

  ExecProc方法執行服務器上的存儲過程

  ⑷ Open方法

  Open方法打開DataSet部件並將其置於浏覽狀態這相當於將Active屬性置為True對於TStoredProc如果存儲過程返回一個結果集則使用Open執行存儲過程如果存儲過程返回單行早使用ExecProc執行存儲過程

   TStoreProc使用方法

   建立一個StoredProc部件

  為數據庫服務器上的存儲過程建立一個TStoredProc部件的步驟如下

  ⑴ 從Component Palette的Data Access頁選擇TStoredProc部件放在數據模塊上

  ⑵ 將TStoredProc部件的DatabaseName屬性設置為存儲過程所在的數據庫名

  DatabaseName必須是BDE別名

  ⑶ 將TStoredProc部件的StoredProcName屬性設為所用的存儲過程名或者從下拉式

  列表框中選擇

  ⑷ 在TStoredProc部件的Params屬性中描述輸入參數可以使用參數編輯器來設置輸

  入參數參數編輯器也可讓用戶察看存儲過程返回給應用程序的值

   設置存儲過程的輸入參數察看輸出結果參數

  許多存儲過程需要給它們傳入一系列的輸入參數以確定處理什麼和怎樣處理在Params屬性中描述這些參數所描述的輸入參數的順序是很重要的它由服務器上的存儲過程來確定在設計時最容易和最安全的方法是激活TStoredProc參數編輯器編輯輸入參數參數編輯器以正確的次序列出輸入參數讓你給它們賦值

  要激活TStoredProc的參數編輯器

  ① 選擇TStoredProc部件

  ② 按鼠標右鍵激活加速菜單(Speed Menu)

  ③ 選擇Define Parameters

  參數名列表框顯示過程的所有輸入輸出和結果參數有關輸入輸出參數的信息從服務器中獲得對於某些服務器而方參數信息是不可訪問的如Sybase在這種情況下列表框是空的因此必須自己按過程要求的順序增加輸入輸出參數

  參數類型復選框中描述所選的參數是輸入輸出還是結果參數如果服務器支持參數可以既是輸入又是輸出如果在列表框中增添參數就必須設置參數類型

  數據類型復選框列出列表框中所選參數的數據類型如果給列表框真善美參數必須設置數據類型

  在值編輯框中給輸入參數賦值

  如果服務器不傳遞存儲過程信息給Delphi則可以用Add按鈕給存儲過程增添參數Delete按鈕則是將增添的參數刪除Clear按鈕將清除列表框中所有參數

  設置完參數後選擇OK按鈕

   在運行時建立參數和參數值

  在運行時建立參數可直接訪問Params屬性Params屬性是參數字符串的數組例如下列代碼將編輯框的文本賦給數組的第一個字串

  StaredProcParams[]Asstring := EditText

  也能夠用ParamsByName方法通過名字訪問參數

  StoredProcParamsByName(Company) Asstring := EditText;

   准備和執行存儲過程

  要使用存儲過程還必須准備並執行它可以有兩種方式准備一個存儲過程

  ● 在設計時通過選擇參數編輯器的OK按鈕

  ● 在運行時通過調用TStoredProc的Prepare方法

  例如下面的代碼准備存儲過程的執行

  StoredProcPrepare;

  要執行准備好的存儲過程調用TStroedProc部件的ExecProc方法下列代碼演示了准備和執行存儲過程

  StoredProcParams[] Asstring := EditText;

  StoredProcprepare;

  StoredProcExecProc;

  當你執行一個存儲過程它返回輸出參數或結果集有兩種可能的返回類型單個返回如單值或值集和一群結果集返回很多值

   訪問輸出參數和結果集

  存儲過程在輸出參數數組中返回值如果服務器支持返回值可以是單個結果或者結果集

  在運行時訪問存儲過程的輸出參數可以索引Params屬性或者用ParamByName方法訪問這些值下列表達式都用輸出參數設置了編輯框的值

  EditText := StoredProcParams[]AsString;

  EditText := StoredProcParamsByName(ContactAsString;

  如果存儲過程返回結果集則用標准數據相關控制訪問和顯示值會更有用

  在某些服務器上如Sybase存儲過程能象查詢語句那樣返回結果集應用程序可以使用數據相關控制一顯示這些存儲過程的輸出

  用數據相關控制顯示存儲過程返回結果的方法如下

  ① 將DataSource部件放在數據模塊上

  ② 將DataSource部件的DataSet屬性設置為接收數據的TStoredProc部件的名字

  ③ 將數據相關控制的DataSource屬性設為DataSource部件的名字

  這樣當用於TStoredProc部件和Active屬性為True時數據相關控制就能顯示從存儲過程返回的結果

  返回目錄DELPHI基礎教程

       編輯推薦

       Java程序設計培訓視頻教程

       JEE高級框架實戰培訓視頻教程

  Visual C++音頻/視頻技術開發與實戰

  Oracle索引技術

  ORACLEG數據庫開發優化指南

  Java程序性能優化讓你的Java程序更快更穩定

  C嵌入式編程設計模式

  Android游戲開發實踐指南

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25132.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.