HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Adatok beszúrása beágyazott táblákba


Oracle adatbázis-kezelés 11. rész

Példaprogram letöltése

9131 bájt

A sorozat előző számában megismerhettük a beágyazott táblák előnyeit, valamint deklarációjuk mikéntjét. Mai cikkünkben bemutatjuk, hogyan lehet adatokat bevinni rugalmasan, egyetlen speciális SQL utasítással az egyes beágyazott tábla-típusú oszlopokba, vagyis hogyan használhatjuk fel ehhez a múlt részben megismert elemeket.

A példaprogram használata előtt létre kell hozni egy SOUSER sémát az Oracle adatbázis-rendszerünkben, és fel kell ruházni DBA jogosultsággal. A sémába bejelentkezve le kell viszont futtatni a mellékelt Oracle11.sql nevű parancsállományt a hivatkozott további objektumok létrehozásához.
A beágyazott táblák speciális objektumok, melyekbe adatokat úgy vihetünk be, ha felhasználjuk az objektum konstruktorát, és paraméterként megadjuk az új rekord elemeit. Ez azonban csak az egyik megoldás.
A másik megoldásban a múlt részben ismertetett jellemzőkkel felruházott THE kulcsszót használhatjuk, mely mintegy helyettesíti a speciális táblát.
A mellékelt alkalmazásban ezt próbálhatjuk ki. A Típus mezőben meg kell adnunk egy maximum 20 karakter hosszú szöveget, melyet az ENTER leütésére beszúrhatunk abba a beágyazott táblába, melynek főtáblabeli rekordján a DataGrid kontrolban a kurzormutató éppen áll.
A mellékelt programban a múlt heti alkalmazást egészítettük ki. A program indulásakor tehát a már ismert módon feltöltjük a grid2 DataGrid kontrolt az első rekord beágyazott táblájával. Ezt a CreateSubTable metódusba ágyaztuk:
...
string cText = "SELECT * FROM THE (SELECT PS FROM AIRPLANES WHERE ID = " + idList[position].ToString() + ")";
...
A Típus mezőben megadva a rögzítendő adatot végrehajtjuk az INSERT utasítást, melyet az InsertRecord metódusunk tartalmaz. Először meghatározzuk a legnagyobb CODE értéket a táblában:
Private void InsertRecord()
{
  ...
  int maxcode = 0;
  General.CommandText = "SELECT MAX(CODE) FROM THE (SELECT PS FROM AIRPLANES WHERE ID = " + idList[position].ToString() + ")";
  connect.Open();      
  maxcode = Convert.ToInt32(General.ExecuteScalar());
Majd megnövelve eggyel összeállítjuk az INSERT utasítás szövegét, melyet elvégeztetünk az OleDbCommend komponenssel:
  maxcode++;
  General.CommandText = "INSERT INTO THE (SELECT PS FROM AIRPLANES WHERE ID = " + idList[position].ToString() + ") VALUES (PLANE_INFO(" + maxcode.ToString() + ",'" + typeText.Text + "'))";
  General.ExecuteNonQuery();
  ...
}
Látható, hogy a THE kulcsszó minden DML utasításban, csakúgy mint a lekérdezéseknél is, jól használható.
Az idList objektumban tároljuk a főtábla (AIRPLANES) ID oszlopának értékeit, ebből olvassuk ki az adott kurzorpozíciónak megfelelőt.
Az adatok megadásakor felhasználjuk a PLANE_INFO objektum konstruktorát is, paraméterként az elemekkel.
A DataGrid kontrol frissítéséhez újra meghívjuk a CreateSubTable metódust, mely - már a friss adatokat is tartalmazva – felépíti a táblát.

Cikksorozat

#IDKategóriaCikk címeSorozat
2535C#Oracle adatbázis-elérés alapjai1. rész
2546C#SQL utasítások végrehajtása2. rész
2557C#Tárolt eljárások és függvények fejlesztése3. rész
2565C#Csomagok fejlesztése4. rész
2573C#Adatbázis triggerek fejlesztése5. rész
2581C#Kivételek kezelése PL/SQL-ben6. rész
3276C#Kurzorok deklarálása PL/SQL-ben7. rész
3297C#Tömb adattípus létrehozása és kezelése PL/SQL-ben8. rész
3326C#Adatbevitel tömb-adattípussal rendelkező oszlopokba9. rész
3357C#Adattárolás beágyazott tábla-típusú oszlopokban10. rész
3388C#Adatok beszúrása beágyazott táblákba11. rész
3418C#Index létrehozása PL/SQL-ben12. rész
3444C#Szekvenciák használata13. rész
3488C#Adatok betöltése állományokból14. rész
1765DelphiOracle adatbázis-elérés alapjai15. rész
1774DelphiSQL utasítások végrehajtása16. rész
1784DelphiTárolt eljárások és függvények fejlesztése17. rész
1794DelphiCsomagok fejlesztése18. rész
1803DelphiAdatbázis triggerek fejlesztése19. rész
1815DelphiKivételek kezelése PL/SQL-ben20. rész
3256DelphiKurzorok deklarálása PL/SQL-ben21. rész
3287DelphiTömb adattípus létrehozása és kezelése PL/SQL-ben22. rész
3318DelphiAdatbevitel tömb-adattípussal rendelkező oszlopokba23. rész
3348DelphiAdattárolás beágyazott tábla típusú oszlopokban24. rész
3377DelphiAdatok beszúrása beágyazott táblákba25. rész
3408DelphiIndex létrehozása PL/SQL-ben26. rész
3436DelphiSzekvenciák használata27. rész
3467DelphiAdatok betöltése állományokból28. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 104. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |