2009/07/14

Firebird中,有趣的Stored Procedure

今天閒來無事,找找Firebird embedded上有沒有什麼新奇的東西,仔細想想,Stored procedure好像還沒玩過,拿來玩玩也不賴。

首先,看到的是這個網頁
Stored Procedures in Firebird

使用重點就是
* Stored Procedures can perform an action and do not return any data
它能做傳值和不傳值的動作。(資料庫不就只有這樣的功能?)
* "Select" Procedures return tables, just like SELECT, Tables or Views. They can be used like a table reference in a SELECT statement:
SELECT a, b FROM procedurename (params) ...
語法非常像SQL中select的語法
* To be able to call a procedure, the user must have EXECUTE rights (granted by GRANT/REVOKE)
使用Procedure的人一定要有EXECUTE的權限。

利用文中的範例做了兩個預存程序,發現有一點點的小錯誤。
原來「SUSPEND」就像是C++的「RETURN」指令,某範例少了這行,不會有回傳值。

總之,做完之後再拿到BCB上去試,發現,不一定要使用TSQLStroedProc才能呼叫它,用TSQLQuery就可以輕鬆直上了!

哈哈!真是有趣的東西呀!(謎之音:有趣的點是在哪邊?)

沒有留言:

張貼留言