SYSTEM EWIDENCJI STUDENTÓW WSPOMAGAJĄCY PRACĘ DZIEKANATU BAZUJĄCY NA ŚRODOWISKU DELPHI I SQL



Podobne dokumenty
DECLARE VARIABLE zmienna1 typ danych; BEGIN

Paweł Cieśla. Dokumentacja projektu

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

15. Funkcje i procedury składowane PL/SQL

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

INFORMATOR TECHNICZNY WONDERWARE. Ograniczenie wyświetlania listy zmiennych w przeglądarce zmiennych ActiveFactory

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Ćwiczenia 2 IBM DB2 Data Studio

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Język SQL, zajęcia nr 1

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Relacyjne bazy danych. Podstawy SQL

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

SQL 4 Structured Query Lenguage

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Aplikacje WWW - laboratorium

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Składowane procedury i funkcje

Wykład 5. SQL praca z tabelami 2

Cele. Definiowanie wyzwalaczy

Język SQL, zajęcia nr 2

Projektowanie systemów baz danych

Aspekty aktywne baz danych

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Wykład 8. SQL praca z tabelami 5

Wykład :45 BD-1 W_3

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Wprowadzenie do zajęć

Oracle11g: Wprowadzenie do SQL

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

PODSTAWOWE POJĘCIA BAZ DANYCH

SQL :: Data Definition Language

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Procedury i funkcje składowane

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Hurtownia Świętego Mikołaja projekt bazy danych

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Przykładowa baza danych BIBLIOTEKA

BAZA DANYCH SIECI HOTELI

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Bazy Danych i Usługi Sieciowe

SIECI KOMPUTEROWE I BAZY DANYCH

Baza danych Uczniowie.mdb

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

INFORMATOR TECHNICZNY WONDERWARE. Instalacja oprogramowania IndustrialSQL Server 8.0. Instalacja Microsoft SQL Server 2000 Standard Edition

Systemowe aspekty baz

Imię i Nazwisko Data Ocena. Laboratorium 7

Wykład 6. SQL praca z tabelami 3

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Wykład 05 Bazy danych

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

Automatyka i Robotyka ROK III TEMAT: TWORZENIE I ZARZĄDZANIE INTERNETOWĄ BAZĄ DANYCH

Autor: Joanna Karwowska

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Politechnika Częstochowska. Projektowanie systemów użytkowych II

16) Wprowadzenie do raportowania Rave

Kurs. Podstawy MySQL

Bazy danych i usługi sieciowe

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

Wdrożenie modułu płatności eservice. dla systemu Magento

Relacyjne bazy danych. Podstawy SQL

BACKUP BAZ DANYCH FIREBIRD

Bloki anonimowe w PL/SQL

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Bazy danych 2. Wykład 3. Metodologia projektowania baz danych (projektowanie fizyczne)

DBPLUS Data Replicator Subtitle dla Microsoft SQL Server. dbplus.tech

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Bazy danych. Dr inż. Paweł Kasprowski

Ref. 7 - Język SQL - polecenia DDL i DML

Ustawianie lokalizacji dla indeksów Ustawianie lokalizacji dla indeksów spis kroków

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Instalacja oprogramowania Wonderware Application Server 3.0 na potrzeby Platformy Systemowej Wonderware

SIECI KOMPUTEROWE I BAZY DANYCH

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Technologia informacyjna

Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET

Transkrypt:

Zeszyty Naukowe Wydziału Elektrotechniki i Automatyki Politechniki Gdańskiej Nr 20 XIV Seminarium ZASTOSOWANIE KOMPUTERÓW W NAUCE I TECHNICE 2004 Oddział Gdański PTETiS SYSTEM EWIDENCJI STUDENTÓW WSPOMAGAJĄCY PRACĘ DZIEKANATU BAZUJĄCY NA ŚRODOWISKU DELPHI I SQL Marcin GŁĄB 1, Mirosław WŁAS 2 1. Politechnika Gdańska, Katedra Energoelektroniki i Maszyn Elektrycznych tel. (058) 347-23-37 e-mail: marglab@ely.pg.gda.pl 2. Politechnika Gdańska, Katedra Energoelektroniki i Maszyn Elektrycznych tel. (058) 347-23-37 e-mail: mwlas@ely.pg.gda.pl Niniejszy artykuł przedstawia projekt systemu bazy danych na przykładzie aplikacji Student 2003. Przedstawiono w nim m.in.: charakterystykę tworzenia oprogramowania w Delphi, funkcjonowanie aplikacji na serwerze Interbase, tworzenie bazy danych w języku SQL (tworzenie pliku bazy danych, tabel), tworzenie zapytań, procedur składowanych, obsługę procedur składowanych w Delphi. 1. WSTĘP Wraz ze wzrostem zaawansowania technik informatycznych, wdraŝaniem nowych algorytmów rozwiązań oraz ciągłym rozwojem oprogramowania, obserwujemy coraz to bogatsze systemy baz danych operujące na nowoczesnym oprogramowaniu. Aplikacja Student 2003 jest kompletnym systemem wspomagającym pracę dziekanatu. Jej moŝliwości obejmują: pracę w sieci, pełen zakres edycji danych, pomoc oraz przewodniki o programie. Bogata gama opcji ustawień programu pozwala uŝytkownikowi w dowolny sposób go konfigurować. Aplikację Student 2003 stworzono głównie do celów funkcjonowania w dziekanacie Wydziału Elektrycznego Politechniki Częstochowskiej. Zakres zastosowania tego oprogramowania nie ogranicza się tylko wyłącznie do funkcjonowania w szkolnictwie wyŝszym. Słowem aplikacja Student 2003 jest elastycznym środowiskiem pracy, które moŝna wykorzystywać na wiele sposobów. 2. SYSTEM EWIDENCJI STUDENT 2003 Program Student 2003 został napisany za pomocą pakietu Delphi. W programie zaproponowano wykorzystanie sterownika Interbase, jako łącznika dwóch struktur programowania: Delphi i SQL. Okno główne aplikacji (rys. 1) zawiera funkcjonalne Menu główne oraz szybko dostępne przyciski odpowiadające za wybór formularza. Menu główne zawiera pozycje: Wybór Okna, Serwer, Drukuj, Pomoc. Menu Serwer oferuje moŝliwość połączenia się z bazą danych, konfiguracji ustawień serwera oraz ustawień

- 58 - transakcji. Menu Drukuj pozwala wydrukować odpowiednio wybrane formularze: Lista Studentów, Karta Egzaminacyjna, Zaświadczenie WKU, Lista Stypendystów. Menu Pomoc zawiera: plik pomocy Student2003.hlp, przewodnik wyświetlający obsługę programu za pomocą sekwencji AVI, oraz formularz: O programie. Wybierając okno Wyszukaj Studenta, odnajdujemy rekord z interesującymi nas danymi. Następnie moŝna dokonać edycji rekordu w oknach: Dane Studenta oraz Oceny Studenta, odpowiednio wybierając przycisk Edycja danych. Formularz: Przedmioty posiada zbiór rekordów z wpisanymi przez uŝytkownika danymi o przedmiotach. Formularz: Wyszukaj Sprawdź pozwala zweryfikować dane umieszczone w rekordach. Okno Ustawienia Programu oferuje duŝą gamę opcji związanych z wyglądem i kolorystyką okien oraz formularzy danych. Posiada równieŝ moŝliwość edycji menu szybkiego wyboru, opcja Ustawienia lokalne. Szczegółowy opis programu zamieszczono w [1] i [2]. Rys. 1. Główne okno programu 3. PROJEKT APLIKACJI STUDENT 2003 3.1 ZałoŜenia projektowe Bardzo waŝnym elementem są właściwie dobrane załoŝenia projektowe. Na rysunku 2 przedstawiono załoŝenia projektowanej aplikacji. W niniejszym projekcie podstawowe załoŝenia podzielono na: programowe oraz inne. Elementy grup moŝna dowolnie konfigurować, pamiętając o końcowej funkcjonalności programu. Programowe Podstawowe Inne Zastosowanie pakietu: Delphi Zastosowanie sterownika: SQL Interbase Prosta obsługa aplikacji Obsługa błędów Funkcjonowanie w sieci Program instalacyjny Mechanizm transakcji Buforowanie lokalne danych Zabezpieczenie danych hasłem Wykorzystanie procedur składowanych Raporty Pomoc, Przewodnik Rys. 2. ZałoŜenia projektowe aplikacji Student 2003

- 59-3.2 Tworzenie pliku bazy danych W aplikacji opartej na sterowniku Interbase, plik bazy danych posiada rozszerzenie *.GDB. Plik ten zawiera wszystkie obiekty bazy, takie jak: tabele, indeksy, procedury składowane, wyzwalacze, domeny. Aby stworzyć plik *.GDB w języku SQL, naleŝy skorzystać z polecenia: CREATE DATABASE C:\Student 2003'\Baza\BAZA.GDB DEFAULT CHARACTER SET DOS852 USER SYSDBA PASSWORD masterkey ; PowyŜszy kod programu tworzy plik BAZA.GDB, oraz nadaje uprawnienia uŝytkownikowi SYSDBA, hasło masterkey. Domyślnie ustawiono język polski. Bazę danych utworzono w programie IBISQL(Interbase Interactive SQL), który jest dołączany wraz ze sterownikiem Interbase. 3.3 Konstrukcja tabel w bazie danych Tabelę w bazie danych moŝna utworzyć korzystając z polecenia: CREATE TABLE tablename ( colname1 characteristics[, colname2 characteristics, ][, tableconstraint ]) gdzie: colname1 nazwa pierwszej kolumny w tabeli, characteristics odpowiada m.in. za typ pola, język, lub teŝ ustalenie ograniczeń dla tego pola. W pliku bazy danych utworzono cztery tabele, dwie z nich są powiązane ze sobą referencyjnie. Przykładowy kod tabeli stworzonej w języku SQL przedstawiono poniŝej: /* Extract Table STUDENTDANE */ /* Table: STUDENTDANE, Owner: SYSDBA */ CREATE TABLE STUDENTDANE (PESEL VARCHAR(11) CHARACTER SET DOS852 NOT NULL, NR_ALBUMU INTEGER NOT NULL, NAZWISKO VARCHAR(20) CHARACTER SET DOS852 NOT NULL, IMIE VARCHAR(20) CHARACTER SET DOS852 NOT NULL, DATA_UR DATE, DATA_REKRUTACJI DATE, IMIE_OJCA VARCHAR(20) CHARACTER SET DOS852, KIER_STUDIOW VARCHAR(20) CHARACTER SET DOS852 NOT NULL, SECJALNOSC VARCHAR(20) CHARACTER SET DOS852 NOT NULL, GRUPA INTEGER, SREDNIA FLOAT DEFAULT 0, PRIMARY KEY (PESEL)); /* Extract Table OCENY */ /* Table: OCENY, Owner: SYSDBA */ CREATE TABLE OCENY (KIER_STUDIOW VARCHAR(20) CHARACTER SET DOS852, SPECJALNOSC VARCHAR(20) CHARACTER SET DOS852, SEMESTR INTEGER, PRZEDMIOT VARCHAR(35) CHARACTER SET DOS852, TER_EGZAMINU INTEGER, RODZAJ_STUDIOW CHAR(7) CHARACTER SET DOS852 NOT NULL, ZALICZENIE FLOAT, PESEL VARCHAR(11) CHARACTER SET DOS852, ROK INTEGER NOT NULL, FOREIGN KEY (PESEL) REFERENCES STUDENTDANE(PESEL) ON UPDATE CASCADE;); Przykład 1. Kod SQL tabel STUDENTDANE i OCENY

- 60 - Kluczem głównym tabeli STUDENTDANE jest pole PESEL. Tabele STUDENTDANE oraz OCENY są ze sobą powiązane referencyjnie poprzez pole PESEL, ponadto powiązanie zapisane poniŝej: FOREIGN KEY (PESEL) REFERENCES STUDENTDANE(PESEL) ON UPDATE CASCADE powoduje, Ŝe dane w tabeli OCENY w polu PESEL będą kaskadowo modyfikowane. Usunięcie studenta z tabeli STUDENTDANE jest niemoŝliwe, jeśli ma on jakiekolwiek rekordy ocen. 3.4 Obsługa zapytań w Delphi Zapytania w Delphi moŝna wywołać uŝywając odpowiedniego komponentu jakim jest Query. Przykładowy kod programu obsługujący przycisk w Delphi, oraz wywołujący przy tym proste zapytanie typu: SELECT*FROM STUDENTDANE WHERE STUDENTDANE.PESEL=:PESEL przedstawia przykład 2. procedure TStudent.BitBtn1Click(Sender: TObject); try Query1.Close; Query1.SQL.Clear; Query1.UnPrepare; Query1.SQL.Add('SELECT * FROM STUDENTDANE'); Query1.SQL.Add('WHERE STUDENTDANE.PESEL=:PESEL'); Query1.ParamByName('PESEL').AsString:=MaskEdit1.Text; Query1.Prepare; Query1.Open; except On EDBEngineError Do MessageDlg('Zły parametr wyszukiwania!',mterror, [mbok],0); Abort; Przykład 2. Obsługa zapytań w Delphi Jest to zapytanie parametryczne. Parametrem przekazywanym do serwera SQL jest PESEL. Parametr musi być odpowiednio przypisany, tak jak w przykładzie 2. Przed przystąpieniem do wykonania zapytania, naleŝy wyłączyć komponent Query1, następnie wyczyścić pole SQL w komponencie Query1, poleceniem Query1.Clear oraz przygotować zapytanie do wykonania (klauzula Query1.UnPrepare - Query1.Prepare). Przygotowanie zapytania jest konieczne poniewaŝ przyspiesza jego wykonanie. W przykładzie 2 pokazano obsługę błędu w czasie wykonywania zapytania (klauzula try - except). Program wyświetla komunikat na temat błędu, oraz opuszcza wykonywanie zapytania poleceniem Abort. WaŜnym elementem kaŝdej aplikacji jest obsługa błędów. Komunikaty podpowiedzi, występujące podczas niewłaściwego uŝytkowania programu, stają się bardzo cenną informacją dla uŝytkownika. Niewłaściwe zabezpieczenie programu przed uŝytkownikiem moŝe spowodować nawet zawieszenie systemu operacyjnego i utratę nie zapisanych wcześniej danych.

- 61-3.5 Procedury składowane w SQL-u i ich obsługa w Delphi Procedury składowane są to procedury wykonywane bezpośrednio na serwerze bazy danych. Mogą one być bardziej skomplikowane aniŝeli zwykłe zapytania dostępne z języka SQL. Interbase pozwala tworzyć dwa rodzaje procedur składowanych: wykonawcze i wybierające. Procedury składowane tworzy się za pomocą wyraŝenia SQL CREATE PROCEDURE. WyraŜenie to zbudowane jest z nagłówka oraz bloku kodu. Nagłówek zawiera nazwę procedury, która musi być unikatową nazwą. W nagłówku procedury definiujemy parametry wejściowe oraz wyjściowe. Blok kodu procedury zawiera listę zmiennych lokalnych, a zaraz po nich znajduje się kod właściwy otoczony słowami kluczowymi BE- GIN i END. CREATE PROCEDURE SREDNIA (PESEL VARCHAR(11) CHARACTER SET DOS852, ROK INTEGER) AS DECLARE VARIABLE ILOSC INTEGER; BEGIN SELECT COUNT(*) FROM OCENY WHERE PESEL=:PESEL AND ROK=:ROK AND (ZALICZENIE IS NULL OR EGZAMIN IS NULL) INTO:ILOSC; IF (ILOSC=0) THEN BEGIN UPDATE OCENY SET SREDNIA=((SELECT SUM (ZALICZENIE) FROM OCENY WHERE PESEL=:PESEL AND ROK=:ROK) +(SELECT SUM (EGZAMIN) FROM OCENY WHERE PESEL=:PESEL AND ROK=:ROK)) / ((SELECT COUNT(ZALICZENIE) FROM OCENY WHERE PESEL=:PESEL AND ROK=:ROK AND ZALICZENIE>0)+(SELECT COUNT(EGZAMIN) FROM OCENY WHERE PESEL=:PESEL AND ROK=:ROK AND EGZAMIN>0)) WHERE PESEL=:PESEL AND ROK=:ROK; END Przykład 3. Procedura składowana zliczająca średnią Przykład 3 pokazuje zastosowanie procedury składowanej w aplikacji. Procedura ta sumuje wszystkie wiersze tabeli OCENY z pola ZALICZENIE, EGZAMIN pod warunkiem parametrów PESEL i ROK. Następnie wynik ten jest dzielony przez wiersze tabeli OCENY z pola ZALICZENIE, EGZAMIN pod warunkiem parametrów PESEL i ROK oraz pola ZALI- CZENIE>0 i EGZAMIN>0 i wstawiany do kolumny SREDNIA. Obsługa procedur składowanych w Delphi przedstawiona jest w przykładzie 4. Wcześniej stworzoną procedurę składowaną, która funkcjonuje na serwerze bazy danych, w Delphi wywołuje się przy uŝyciu komponentu StoredProc, poleceniem ExecProc. Podobnie jak w przypadku komponentu Query, moŝna wykorzystać klauzule UnPrepare - Prepare). procedure TOceny.BitBtn1Click(Sender: TObject); with StoredProc1 do Close; UnPrepare; ParamByName('PESEL').AsString:=DBText1.Field.AsString; ParamByName('ROK').AsInteger:=DBText2.Field.AsInteger; Prepare; ExecProc; Przykład 4. Obsługa procedur składowanych w Delphi

- 62-4. WNIOSKI W obecnych czasach systemy baz danych są szeroko rozpowszechnionym narzędziem w wielu dziedzinach pracy. Mają one zastosowanie wszędzie tam, gdzie potrzeba szybko i sprawnie magazynować dane. Ciągły rozwój technik informatycznych sprawia iŝ projekty systemów baz danych, powstają małym nakładem finansowym. W niniejszym artykule przedstawiono prostą aplikacje, która spełnia podstawowe zadania funkcjonowania systemu bazy danych. Aplikacje napisano za pomocą Delphi 5.0 Enterprise oraz wykorzystano sterownik Interbase 5.5, jako łącznik języka SQL z platformą Delphi. W aplikacji zastosowano architekturę typu klient-serwer. Pakiet Delphi jest doskonałym narzędziem do tworzenia baz danych, natomiast sterownik Interbase oferuje podstawowe elementy języka SQL. Sterownik ten jest dołączany wraz z pakietem Delphi. Wszystkie przykłady zamieszczone w niniejszym artykule są rzeczywistymi blokami aplikacji Student 2003. Zastosowano standardowe komponenty dostępne w pakiecie Delphi do budowy programu. 5. BIBLIOGRAFIA 1. Głąb M., Praca dyplomowa, Wydział Elektryczny Politechniki Częstochowskiej, Częstochowa 2003. 2. Głąb M., Krzemiński J., System ewidencji wspomagający pracę dziekanatu, V MSKAE 2003, Poraj. 3. Jakubowski A., Tworzenie systemów baz danych, Helion, Gliwice 1999. 4. Coburn R., SQL dla kaŝdego, Helion, Gliwice 2000. 5. Interbase 5 documentation. 6. Delphi 5.0 Enterprise pomoc programu. THE DELPHI AND SQL BASED THE DATABASE SYSTEM FOR THE DEAN S OFFICE This paper presents the project of the database application Student 2003. It was introduced: the characteristic of software in Delphi, working the application on server Interbase, creating in SQL language the database (creating the database file, tables), creating a questions, stored procedures, service of stored procedures in Delphi.