[ Pobierz całość w formacie PDF ]
.DO powoduje przekazanie wierszy wynikowych do miejscawywoÅ‚ania.Instrukcja SUSPEND przerywa wykonanie procedury - aż do chwili,gdy wywoÅ‚anie zażąda nastÄ™pnego wiersza.WartoÅ›ci przypisane parametromwyjÅ›ciowym zostajÄ… przekazane przed przerwaniem realizacji procedury.Procedury wykonywalneProcedury wykonywalne różniÄ… siÄ™ od procedur wyboru tym, że nie wymagajÄ…użycia instrukcji RETURNS.Oto przykÅ‚ad procedury wykonywalnej w InterBaseSQL: 532 Część IIICREATE PROCEDURE insertitem (ItemNumber Integer, Description¥' Char(30), Price Float)ASBEGININSERT INTO ITEM (ItemNumber, Description, Price)VALUES (:ItemNUmber, :Description, :Price);ENDSkryptyInstrukcje Data Definition Language (DDL), zawierajÄ…ce procedury pamiÄ™tane,warto umieszczać w specjalnych plikach zwanych skryptami.SÄ… to zwykÅ‚e plikitekstowe, zawierajÄ…ce ciÄ…gi poleceÅ„ SQL, wiÄ™c można ich tworzyć korzystajÄ…cz dowolnego edytora tekstów.Warto tu przypomnieć, że powinny one zawieraćwszystkie niezbÄ™dne instrukcje CONNECT i SET TERM.Skrypt SQL możnawykonać, wybierajÄ…c polecenie Run an SQL Script z menu File programuWISQL.PrzykÅ‚ad zawiera listing 17.1Listing 17.1.Procedura pamiÄ™tana w skrypcie SQL.CONNECT "C:\DATA\IB\SALES.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 ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • personata.xlx.pl