Sun Microsystems
Termékek
 
Támogatás
 
 

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

Adatbázisok elérése

Adatbázis eléréséhez adatbázis-kapcsolat szükséges. Ez olyan adattovábbítási csatornát jelent, mely az adatbázissal folytatott közvetlen kommunikációt tesz lehetővé. Emiatt - az előző szakaszban szereplő adatforrásokkal ellentétben - az adatbázis-kapcsolatot a program minden újraindításakor ismét létre kell hozni.

A StarOffice többféle módot is biztosít adatbázis-kapcsolatok létrehozására. A következő példa egy létező adatforráson alapuló metódus leírását tartalmazza.

Dim DatabaseContext As Object

Dim DataSource As Object

Dim Connection As Object

Dim InteractionHandler as Object



DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")

DataSource = DatabaseContext.getByName("Customers")



If Not DataSource.IsPasswordRequired Then

   Connection = DataSource.GetConnection("","")

Else

   InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")

   Connection = DataSource.ConnectWithCompletion(InteractionHandler)

End If

A példában szereplő kód először ellenőrzi, hogy az adatbázis jelszóval védett-e. Ha nem az, a GetConnection hívás segítségével létrehozza az adatbázis-kapcsolatot. A parancssor két üres karakterlánca a felhasználónévhez és a jelszóhoz tartozik.

Ha az adatbázis jelszóval védett, a példában szereplő program InteractionHandler kezelőt hoz létre, és a ConnectWithCompletion metódus segítségével nyitja meg az adatbázis-kapcsolatot. Az InteractionHandler biztosítja, hogy a StarOffice bekérje a felhasználótól a szükséges bejelentkezési adatokat.

A táblák iterálása

A StarOffice termékben egy tábla elérése rendszerint a ResultSet objektumon keresztül történik. A ResultSet olyan jelölőtípus, mely a SELECT parancs kiadásának eredményeként kapott találatok halmazán belül az adatok egy aktuális csoportját jelzi.

A példa azt mutatja be, hogy a ResultSet miként használható értékek adatbázistáblából való lekérdezésére.

Dim DatabaseContext As Object

Dim DataSource As Object

Dim Connection As Object

Dim InteractionHandler as Object

Dim Statement As Object

Dim ResultSet As Object



DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")

DataSource = DatabaseContext.getByName("Customers")



If Not DataSource.IsPasswordRequired Then

   Connection = DataSource.GetConnection("","")

Else

   InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")

   Connection = DataSource.ConnectWithCompletion(InteractionHandler)

End If



Statement = Connection.createStatement()

ResultSet = Statement.executeQuery("SELECT CustomerNumber FROM Customer")



If Not IsNull(ResultSet) Then

   While ResultSet.next

      MsgBox ResultSet.getString(1)

   Wend

End If

Az adatbázis-kapcsolat létrejöttét követően a példában szereplő kód először a Connection.createObject hívás segítségével létrehoz egy Statement objektumot. Ez a Statement objektum ezt követően a executeQuery hívást használja az aktuális ResultSet visszaküldésére. Ekkor a program ellenőrzi, hogy a ResultSet valóban létezik-e, és hurok segítségével bejárja az adatrekordokat. A kötelezően megadandó (a példában a CustomerNumber mezőben szereplő) értékek visszaadják a ResultSet objektumot a getString metódus segítségével, ahol az 1 paraméter azt határozza meg, hogy a hívás az első oszlop adataihoz kapcsolódik.


Megjegyzés - Az SDBC ResultSet objektuma összevethető a DAO, illetve az ADO Recordset objektumával, hiszen szintén alkalmas iterációs hozzáférést biztosítani adatbázishoz.



Megjegyzés - Az adatbázisok elérése a StarOffice 8 terméken belül valójában ResultSet objektumon keresztül történik. Ez megjeleníti egy tábla tartalmát vagy valamely SQL-SELECT parancs eredményét. Korábban a ResultSet objektum biztosította az Application objektum rezidens metódusait az adatok közti tallózáshoz, például: DataNextRecord.


Értékek beolvasásának típusspecifikus metódusai

Az előző szakaszban szereplő példában is látható módon a StarOffice a getString metódust biztosítja a tábla tartalmának eléréséhez. A metódus karakterlánc formájában adja meg az eredményt. A következő get metódusok állnak rendelkezésre:

  • getByte() - a számok, karakterek és karakterláncok SQL-adattípusait támogatja.

  • getShort() - a számok, karakterek és karakterláncok SQL-adattípusait támogatja.

  • getInt() - a számok, karakterek és karakterláncok SQL-adattípusait támogatja.

  • getLong() - a számok, karakterek és karakterláncok SQL-adattípusait támogatja.

  • getFloat() - a számok, karakterek és karakterláncok SQL-adattípusait támogatja.

  • getDouble() - a számok, karakterek és karakterláncok SQL-adattípusait támogatja.

  • getBoolean() - a számok, karakterek és karakterláncok SQL-adattípusait támogatja.

  • getString() - minden SQL-adattípust támogat.

  • getBytes() - a bináris értékek SQL-adattípusait támogatja.

  • getDate() - a számok, a karakterláncok, a dátum és az időbélyeg SQL-adattípusait támogatja.

  • getTime() - a számok, a karakterláncok, a dátum és az időbélyeg SQL-adattípusait támogatja.

  • getTimestamp() - a számok, a karakterláncok, a dátum és az időbélyeg SQL-adattípusait támogatja.

  • getCharacterStream() - a számok, karakterláncok és bináris értékek SQL-adattípusait támogatja.

  • getUnicodeStream() - a számok, karakterláncok és bináris értékek SQL-adattípusait támogatja.

  • getBinaryStream() - bináris értékek.

  • getObject() - minden SQL-adattípust támogat.

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