63643 ullman207 (2)

63643 ullman207 (2)



T 7. SYSTEMOWE ASPEKTY JĘZYKA SQL

void podajStudio{ ) {

1)    EXSC SQL BEGIN DECLARE SECTION;

2)    char nazwaStudia[15],    adresStudLaf50];

3)    char SQLSTATE[6];

4)    F,XEC SQL END DECLARE SECTION;

/* interakcyjne określenie nazwy    i adresu

studia i określenie    wartości    zmiennych

nazwaStudia oraz adresStudia */

5} EXEC 3QL INSERT INTO Studio{nazwa, adres)

6)    VALUES(:nazwaStudia, :adresStudia);

}

RYSUNEK 7.2

Zastosowanie zmiennych dzielonych do wstawienia nowego studia

Wartości wstawiane do relacji w wierszach 5) i 6) nie są dane w sposób jawny jako stałe, do czego przyzwyczailiśmy się w poprzednich przykładach, np. w przykładzie 5.27. Tym razem są to wartości zapamiętane w zmiennych dzielonych i staną się one składowymi wstawianej krotki.

W języ ku podstawowym można osadzać także inne niż INSERT instrukcje SQL i korzystać w nich ze zmiennych dzielonych przy przekazywaniu wartości. W programie podstawowym każdy osadzony fragment w języku SQL musi być poprzedzony frazą £XEC SQL, a można w nim korzystać ze zmiennych dzielonych tak, jakby były to wartości stale. Można osadzać wszystkie te instrukcje SQL, które nie tworzą żadnych wartości (tzn. nie są zapytaniami). Przykłady kodu osadzonego zawierają zatem instrukcje SQL usuwania i modyfikowania krotek oraz tworzenia, modyfikowania lub usuwania elementów schematu, takich jak tabele czy też perspektywy.

Jednakże zapytania sclect-from-where nie mogą być osadzane. Wynika to z niedopasowania falowego. Zapytania tworzą bowiem zbiory krotek, a taka struktura danych nic jest dopuszczalna w: typowych językach programowania. W języku SQL muszą zatem istnieć jeszcze inne mechanizmy, które umożliwiają przekazanie wyniku zapytania do programu podstawowego. Przedstawiamy dwa z nich:

1. Jeżeli w wyniku zapytania powstaje dokładnie jedna krotka, to można ją przekazywać poprzez zmienne dzielone, których musi być tyle samo co składowych krotki. Korzysta się wówczas ze specjalnej postaci instrukcji SELECT o nazwie single-row seleci (czyli wybór jednego wiersza).

7.1. SQL W 5KUDOW1SKU PROGRAMISTYCZNYM

2. Można przetwarzać również inne zapytania, w wyniku których j wstaje wiele krotek. Trzeba wówczas zadeklarować kursor.

Omówimy bardziej szczegółowo tc dwa mechanizmy.

7.1.5. Instrukcje wyboru pojedynczych wierszy

Postać instrukcji powodującej wybór pojedynczego wiersza prawic nie różni od zwykłej instrukcji typu select-from-where. z wyjątkiem tego, pojawia się za klauzulą 3ELECT słowo kluczowe INTO oraz lista zmienny dzielonych przeznaczonych do przekazania wartości składowych. Tak przy stosowaniu zmiennych dzielonych w instrukcjach SQL» i w tym konl< ście ich nazwy należy' poprzedzać dwukropkiem. Jeżeli w wyniku zapytai powstaje pojedyncza krotka, to zmiennym dzielonym przypisuje się w'arto składowych. Jeśli natomiast nie zostanie wyszukana żadna krotka albo zos nie wybrane więcej niż jedna krotka, to zmienne dzielone nic otrzymają i wych wartości, a informacja o trybie wykonania instrukcji zostanie przeka; na dzięki określeniu właściwego kodu zmiennej S0LS7ATE.

void drukCenySieci() {

1} EXEC 3QL BEGIN DECLARE SECTION;

2)    char nazwaStudia[15];

3)    int cenaSieciPrezesa;

4)    char SQLSTATE161;

5)    EXEC 3QL END DECLARE SECTION;

/* interakcyjne określenie nazwy studia i okr ślenie wartości zmiennej nazwaStudia */

6)    EXEC SQL SELECT cenaSieci

7)    INTO : cenaSieciPrezesa

8)    EROM Studio, Fiimdyr

3) WHERE prezC# = cert? AND

Studio.nazwa = : nazwaStudia

/* Jeśli w zmiennej SQLSTATF. wszystkie olemen sa zerami, to należy wydrukować warto zmiennej cenaSieciPrezesa */

}

RYSUNEK 7.3

Wybór pojedynczego w iersza osadzony w funkcji C


Wyszukiwarka

Podobne podstrony:
ullman231 (2) 7. SYSTEMOWI- ASPEKTY JEŻYKA SQL szenia nie wrażliwość i, sckwencyjności ani innych me
60359 ullman222 (2) *+_)U 7. SYSTEMOWE ASPEKTY JĘZYKA SQL. f Schemat bieżący można modyfikować,
18974 ullman230 (2) 400 7. SYSTEMOWE ASPEKTY JĘZYKA SQL d)    Usuwanie z przykładu 5.
ullman208 (2) 422 7. SYSTEMOWE ASPEKTY JĘZYKA SQL PRZYKŁAD 7.3 Przedstawimy tu funkcję C. która służ
ullman218 (2) 7. SYSTEMOM ASPEKTY JĘZYKA SOL Można także poinformować system SQL o tym, żc transakcj
51873 ullman225 (2) 430 7. SYSTEMOWE ASPEKTY JĘZYKA SQL Po pierwsze należy wiedzieć, że wszystkie el
29874 ullman212 (2) 7 SYSTEMOWE ASPEKTY JljZYKA SQL I PRZYKŁAD 7.9 Funkcja z rys. 7.5 zostanie przep

więcej podobnych podstron