Sun Microsystems
Termékek
 
Támogatás
 
 

Előző Előző     Tartalom     Tárgymutató     Következő Következő

Minden példány esetében az oszlopok számát paraméterként szerepeltetni kell, mely paraméterek értékét le kell kérdezni.

A ResultSet változatai

Az adatbázisok elérésének gyakran sarkalatos pontja a sebesség. Éppen ezért a StarOffice több módot is kínál a ResultSets optimalizálására, így lehetővé téve az elérési sebesség szabályozását. Minél több szolgáltatást nyújt a ResultSet, illetve minél összetettebb a megvalósítása, általában annál lassabban futnak a szolgáltatások.

Egy egyszerű ResultSet, mint amilyen a "Táblák iterálása" szakaszban is szerepel, az elérhető szolgáltatásoknak csak minimális körét nyújtja. Csak az előre irányú iterálást, illetve értékvizsgálatot teszi lehetővé. Ezért a navigálási lehetőségek szélesebb köre, mint amilyen az értékek módosításának lehetősége is, nem képezi részét.

A ResultSet létrehozásához használt Statement objektum biztosít néhány tulajdonságot, melyek lehetővé teszik a ResultSet szolgáltatásainak módosítását:

  • ResultSetConcurrency (állandó) - beállítások arra vonatkozóan, hogy az adatok módosíthatók-e (a com.sun.star.sdbc.ResultSetConcurrency beállításaival összhangban levő értékek).

  • ResultSetType (állandó) - beállítások a ResultSet típusára vonatkozóan ( a com.sun.star.sdbc.ResultSetType beállításaival összhangban levő értékek).

A com.sun.star.sdbc.ResultSetConcurrency objektumban megadott értékek a következők:

  • UPDATABLE - ResultSet lehetővé teszi az értékek módosítását.

  • READ_ONLY - ResultSet tiltja az engedélyek módosítását.

A com.sun.star.sdbc.ResultSetConcurrency állandócsoport a következő beállításokat adja meg:

  • FORWARD_ONLY - ResultSet csak az előre irányú navigációt teszi lehetővé.

  • SCROLL_INSENSITIVE - ResultSet bármilyen típusú navigációt engedélyez, azonban az eredeti adatok változtatásait nem jegyzi fel.

  • SCROLL_SENSITIVE - ResultSet bármilyen típusú navigációt engedélyez, az eredeti adatok módosítása hatással van a ResultSet objektumra.


Megjegyzés - A READ_ONLY és a SCROLL_INSENSITIVE tulajdonságokat tartalmazó ResultSet az ADO, illetve DAO Snapshot típusába tartozó rekordhalmazzal egyenértékű.

A ResultSet UPDATEABLE és SCROLL_SENSITIVE tulajdonságainak használatával a ResultSet szolgáltatásainak köre összevethető az ADO, illetve a DAO Dynaset típusba tartozó Recordset objektumával.


Metódusok a ResultSet objektumokban történő navigáláshoz

Ha a ResultSet típusa SCROLL_INSENSITIVE vagy SCROLL_SENSITIVE, az adathalmazban való navigálás metódusainak teljes köre elérhető. A főbb metódosok a következők:

  • next() - navigálás a következő adatrekordra.

  • previous() - navigálás az előző adatrekordra.

  • first() - navigálás az első adatrekordra.

  • last() - navigálás az utolsó adatrekordra.

  • beforeFirst() - navigálás az első előtti adatrekordra.

  • afterLast() - navigálás az utolsó utáni adatrekordra.

Minden metódus a navigálás sikerességét megadó logikai paramétert ad eredményül.

A kurzor aktuális helyzetének meghatározásához a következő tesztmetódusok állnak rendelkezésre, melyek mindegyike logikai értéket ad eredményül:

  • isBeforeFirst() - ResultSet az első adatrekord előtt áll.

  • isAfterLast() - ResultSet az utolsó adatrekord után áll.

  • isFirst() - ResultSet az első adatrekord.

  • isLast() - ResultSet az utolsó adatrekord.

Adatrekordok módosítása

Ha egy ResultSet létrehozása a ResultSetConcurrency = UPDATEABLE értékkel történt, tartalma szerkeszthető. Ez az állapot csak addig él, ameddig az SQL-parancs lehetővé teszi az adatok újraírását az adatbázisba (alapszabálytól függ). Ez nem lehetséges például kapcsolt oszlopokra vagy halmozott értékekre vonatkozó összetett SQL-parancsok esetében.

A ResultSet objektum Update metódusokat biztosít értékek módosításához, melyek szerkezete azonos az értékek beolvasásához használatos get metódusokkal. Például az updateString metódus karakterlánc beírását teszi lehetővé.

A módosítást követően az értékeket továbbítani kell az adatbázisba az updateRow() metódus segítségével. A hívásnak még a következő navigációs parancs előtt le kell zajlania, különben az értékek elvesznek.

Ha hiba történik a módosítások végrehajtása közben, az javítható a cancelRowUpdates () metódus segítségével. Ez a hívás csak akkor érhető el, ha az adatok visszaírása még nem történt meg a következő segítségével: updateRow().

Előző Előző     Tartalom     Tárgymutató     Következő Következő