另外,開發網絡數據庫應用程序時,還可以使用存儲過程,即:將預先編譯過的 SQL 語句存儲在服務器上。存儲過程提前運行,且不與程序代碼一同存儲和編譯,因此其對應主程序中的代碼相對簡潔,運行速度也較快。SQL 語句的集中存放,使其修改更容易。
要創建向數據表中輸入數據的存儲過程,代碼編寫舉例如下:
CREATE PROC ProcTest1
@inttest smallint
,@strtest char(4) output
AS
INSERT INTO TEST_User.TRANS_TEST
VALUES(@inttest,@strtest)
SELECT @strtest,* FROM TEST_User.TRANS_TEST
以上代碼向數據表 TEST_User.TRANS_TEST 添加數據,該數據表包括兩個字段:第一個字段為 smallint 類型的數據,參數類型定為 Input(在存儲過程中可缺省);第二個字段數據為長度為4 的字符類型,參數類型為 Output。
其模塊程序的編寫與 DataInsert 過程相似,區別主要在於模塊的中間部分,對應的主要代碼如下:
StoredProc1.Close;
{關閉存儲過程}
StoredProc1.Params[1].ParamType := ptInput;
{設置存儲過程的參數類型}
StoredProc1.Params[1].AsInteger := 1;
{設置存儲過程中參數的數據}
StoredProc1.Params[2].ParamType := ptOutput;
toredProc1.Params[2].AsString := 'abcd';
StoredProc1.Open; {打開存儲過程}
其中,StoredProc1 是 TStoredProc 類型的構件名稱;Params[1] 是存儲過程中的第一個參數,對應存儲過程 ProcTest1 可以用ParamByName('@inttest')代替;存儲過程的第二個參數與其類似。
實際上,編寫對網絡數據庫進行其他數據處理(如:修改、刪除和查詢等)的模塊,與數據的輸入模塊大體相似,這裡就不再贅述了。