[ Pobierz całość w formacie PDF ]
.GDB" USER "SYSDBA" PASSWORD¥' "masterkey";SET TERM ^ ;CREATE PROCEDURE GET_CUSTOMER_BY _STATE (State CHAR(2))RETURNS (LastName CHAR(30))ASBEGINFOR SELECT LastNameFROM CUSTOMERWHERE State= :StateINTO :LastNameDOSUSPEND;END^SET TERM ; ^EXIT;Instrukcja CONNECT na poczÄ…tku pliku ustala poÅ‚Ä…czenie z bazÄ… danych.NastÄ™pnie SET TERM zmienia znak koÅ„czÄ…cy instrukcje SQL - z domyÅ›lnegoÅ›rednika (;) na (^).Zmiana ta powoduje, że instrukcje zawarte w przechowywanejprocedurze nie sÄ… wykonywane, gdy jest ona dopiero tworzona - za pomocÄ…CREATE PROCEDURE.Instrukcja SET TERM przywraca domyÅ›lny znakzakoÅ„czenia instrukcji.RozdziaÅ‚ 17 Delphi w Interbase 533Uruchamianie procedur pamiÄ™tanychProcedury pamiÄ™tane InterBase uruchamiamy instrukcjÄ… EXECUTE PROCEDURE.Jej skÅ‚adnia przedstawia siÄ™ nastÄ™pujÄ…co:EXECUTE PROCEDURE procedurename parametersW miejsce procedurename należy podać nazwÄ™ uruchamianej procedury,a w miejsce parameters jej parametry np.:EXECUTE PROCEDURE GET_CUSTOMER_BY_STATE "MO"Ta instrukcja uruchamia procedurÄ™ pamiÄ™tanÄ… GET_CUSTOMER_BY_STATEz parametrem "MO".WyjÄ…tki (Exceptions)WyjÄ…tki sÄ… mechanizmami przekazujÄ…cymi aplikacji okreÅ›lone przez programistÄ™sygnaÅ‚y o bÅ‚Ä™dach, jakie powstaÅ‚y w czasie wykonania procedur pamiÄ™tanychi procedur zdarzeÅ„.W InterBase wyjÄ…tki definiujemy instrukcjÄ… CREATEEXCEPTION, natomiast instrukcja EXCEPTION sÅ‚uży do ich przechwyceniai wygenerowania odpowiedniego komunikatu.W listingu 17.2 pokazano sposóbdefiniowania wyjÄ…tku i jego wykorzystania w procedurze przechowywanej.Listing 17.2.WyjÄ…tek InterBase w procedurze pamiÄ™tanej.CONNECT "C:\DATA\IB\SALES.GDB" USER "SYSDBA" PASSWORD¥' "masterkey";CREATE EXCEPTIONSALE_TOO_LOW;"The sale amount is to low.Only purchases of $1 or more areallowed";SET TERM ^ ;CREATE PROCEDURE insertsale(SaleNumber int, SaleDate date,¥' CustomerNumber int, ItemNumber int, Amount float)ASBEGINIf (:AmountInt2) then Result:=Int1else Result:=Int2;end;function MinInt(var Int1, Int2 :Integer) : Integer; far cdecl¥' export;beginif (Int1
[ Pobierz całość w formacie PDF ]