Bazy Danych 2 - Laboratorium
|
||
Laboratorium nr. 6 |
Data: 29.05.2012 Godz. 09:50-11:20 |
Skład zespołu: Grupa: 211B
|
Plik uruchom.bat
loadpsp -replace -user id14/id14@student D:\211B\lab6\z1.psp loadpsp -replace -user id14/id14@student D:\211B\lab6\z2.psp loadpsp -replace -user id14/id14@student D:\211B\lab6\z2wy.psp loadpsp -replace -user id14/id14@student D:\211B\lab6\z3.psp loadpsp -replace -user id14/id14@student D:\211B\lab6\z5.psp loadpsp -replace -user id14/id14@student D:\211B\lab6\z5wy.psp pause |
Zad 1. Napisz procedurę, która na stronie WWW wyświetli bieżącą datę.
Plik z1.psp
<%@ page language="PL/SQL" %> <%@ plsql procedure="id14z1" %>
<HTML> <HEAD><TITLE>Zadanie 1 </TITLE> </HEAD> <BODY> <CENTER> <BR> <TABLE BORDER=20 BGCOLOR="#FFFFFF"> <TR> <TD ALIGN=CENTER VALIGN=CENTER> <FONT SIZE=5 COLOR="#000000"> <P> <B> Data <%= To_Char(SYSDATE, ' dd-MM-YYYY') %> </B> </P> </FONT> </TD> </TR> </TABLE> </CENTER> </BODY> </HTML> |
Zad 2. Napisz formularz który umożliwi rozwiązywanie równania kwadratowego.
Plik z2.psp
<%@ page language="PL/SQL" %> <%@ plsql procedure="id14z2" %>
<HTML> <HEAD> <TITLE>ZADANIE 2 </TITLE> </HEAD> <BODY> <FORM ACTION="id14z2wY" METHOD="GET"> <b>Równanie kwadratowe a*x^2+b*x+c</b><br> A:<br> <INPUT TYPE="text" NAME="a" SIZE="3" MAXLENGTH="3"> <br> B:<br> <INPUT TYPE="text" NAME="b" SIZE="3" MAXLENGTH="3"> <br>
C:<br> <INPUT TYPE="text" NAME="c" SIZE="3" MAXLENGTH="3"> <br> <INPUT TYPE="submit" VALUE="Oblicz"> </FORM> </BODY> </HTML> |
Plik z2wy.psp
<%@ page language="PL/SQL" %> <%@ plsql procedure="id14z2wy" %> <%@ plsql parameter="a" type="VARCHAR2" default="NULL" %> <%@ plsql parameter="b" type="VARCHAR2" default="NULL" %> <%@ plsql parameter="c" type="VARCHAR2" default="NULL" %>
<%! lA NUMBER; lB NUMBER; lC NUMBER; del NUMBER; x1 FLOAT; x2 FLOAT; pdel FLOAT; puste_a EXCEPTION; puste_b EXCEPTION; puste_c EXCEPTION; czy_a_zero EXCEPTION; czy_liczba EXCEPTION; PRAGMA EXCEPTION_INIT(czy_liczba, -6502); %> <%
IF a IS NULL THEN RAISE puste_a; END IF; IF b IS NULL THEN RAISE puste_b; END IF; IF c IS NULL THEN RAISE puste_c; END IF; IF (a=0) THEN RAISE czy_a_zero; END IF;
%>
<HTML> <HEAD> <TITLE>ZADANIE 2 - wynik</TITLE> </HEAD> <BODY> <b>Wynik</b> <br> <% lA := a; lB := b; lC := c; del := (lB*lB)-4*lA*lC; IF (del > 0) THEN SELECT SQRT(del) INTO pdel FROM dual; x1 := ((-1*lB)-pdel)/(2*lA); x2 := ((-1*lB)+pdel)/(2*lA); %> <b> x1:</b> <%= to_char(ROUND(x1,2)) %> <br><b> x2:</b> <%= to_char(ROUND(x2,2)) %> <% ELSE IF (del = 0) THEN x1:=(lB*-1)/(2*lA); %> <b>x1:</b> <%= to_char(ROUND(x1,2)) %> <% ELSE SELECT SQRT(del*-1) INTO pdel FROM dual; %> <b>x1=</b> <%= to_char(ROUND((lB*-1)/(2*lA),2)) %> + <%= to_char(ROUND(pdel/(2*lA),2)) %> i <br><b>x2=</b> <%= to_char(ROUND((lB*-1)/(2*lA),2)) %> - <%= to_char(ROUND(pdel/(2*lA),2)) %> i <% END IF; END IF; %>
<% EXCEPTION
WHEN puste_a THEN %> Parametr "a" jest pusty! <% WHEN puste_b THEN %> Parametr "b" jest pusty! <% WHEN puste_c THEN %> Parametr "c" jest pusty! <% WHEN czy_liczba THEN %> Parametry musza być liczbami <% WHEN czy_a_zero THEN %> Parametr "a" musi być rozny od zera
</BODY> </HTML> |
Błędne dane
Poprawne dane
Zad 3. Napisz procedurę, która wyświetli dane z wybranej tabeli.
Plik z3.psp
<%@ page language="PL/SQL" %> <%@ plsql procedure="id14z3" %>
<%! prawda BOOLEAN; %>
<HTML> <HEAD> <TITLE>ZADANIE 3 - wynik</TITLE> </HEAD> <BODY> <b>DANE Z TABELI STUDENT</b> <br> <% prawda := owa_util.tableprint('id14.student',NULL,1,'*',NULL); %>
</BODY> </HTML> |
Zad 5. Przerób procedurę z punkt drugiego tak aby nazwę tabeli podawać jako parametr wywołania procedury.
Plik z5.psp
<%@ page language="PL/SQL" %> <%@ plsql procedure="id14z5" %>
<%! CURSOR kur IS select TABLE_NAME from ALL_TABLES WHERE OWNER = 'ID14' ; %>
<HTML> <HEAD> <TITLE>ZADANIE 5</TITLE> </HEAD> <BODY> <b>Wybierz jaka tabele chcesz wyswietlic </b> <br>
<FORM ACTION="id14z5wy" METHOD="GET"> <SELECT NAME="tabela" SIZE="5"> <% for o in kur loop %> <OPTION><%= o.TABLE_NAME %> <% end loop; %> </SELECT> <INPUT TYPE="submit" VALUE="OK"> </FORM>
</BODY> </HTML> |
Plik z5wy.psp
<%@ page language="PL/SQL" %> <%@ plsql procedure="id14z5wy" %> <%@ plsql parameter="tabela" type="VARCHAR2" default="NULL" %>
<%! prawda BOOLEAN; puste EXCEPTION; czy_istnieje EXCEPTION; ile NUMBER; %>
<HTML> <HEAD> <TITLE>ZADANIE 5</TITLE> </HEAD> <BODY>
<% IF tabela IS NULL THEN RAISE puste; END IF; SELECT count(TABLE_NAME) INTO ile FROM ALL_TABLES WHERE TABLE_NAME = tabela; IF (ile = 0) THEN RAISE czy_istnieje; END IF;
%>
<b>DANE Z TABELI <font color="red"> "<%= tabela %>" </font></b> <br> <br> <% prawda := owa_util.tableprint('id14.' || tabela ,NULL,1,'*',NULL); %> <br> <br> <a href="id14z5"><font color="black">Do strony glownej</font></a>
<% EXCEPTION WHEN puste THEN %> Podaj nazwe tabeli! <% WHEN czy_istnieje THEN %> Taka tabela nie istnieje
</BODY> </HTML> |