Adatforrások

From Apache OpenOffice Wiki
Jump to: navigation, search
Book.png


Egy adatbázis OpenOffice.org-ba történő beépítésének módja egy ún. adatforrás létrehozása. A felhasználói felület megfelelő lehetőséget biztosít adatforrások létrehozására az Extrák menüben. Adatforrásokat azonban létrehozhatunk és kezelhetünk az OpenOffice.org Basic segítségével is.

Egy a createUnoService függvény segítségével létrehozott adatbáziskörnyezet-objektum szolgál kiindulási pontként egy adatforrás eléréséhez. Ennek alapja a com.sun.star.sdb.DatabaseContext szolgáltatás, és ez az összes adatbázis-művelet gyökérobjektuma.

Az alábbi példák bemutatják, hogy egy adatbázis-környezet objektum miként hozható létre, majd hogyan használható az összes elérhető adatforrás nevének meghatározásához. A neveket üzenetpanelen jelenti meg.

Dim DatabaseContext As Object
Dim Names
Dim I As Integer
 
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
 
Names = DatabaseContext.getElementNames()
 
For I = 0 To UBound(Names())
  MsgBox Names(I)
Next I

A különálló adatforrások alapját a com.sun.star.sdb.DataSource szolgáltatás adja, és az adatbázis-környezetből a getByName metódus segítségével határozhatók meg:

Dim DatabaseContext As Object
Dim DataSource As Object
 
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("Customers")

A példa egy DataSource objektumot hoz létre a Customers nevű adatforráshoz.

Az adatforrások számos tulajdonságot adnak meg, melyek általános információkat nyújtanak az adatok eredetére és a hozzáférési módokra vonatkozóan. A tulajdonságok a következők:

Name (karakterlánc)
az adatforrás neve.
URL (karakterlánc)
megadja az adatforráshoz tartozó URL értékét a következő formátumban: jdbc: alprotokoll : alnév vagy sdbc: alprotokoll : alnév
Settings (tömb)
tömb, mely PropertyValue értékpárokat tartalmaz kapcsolódási paraméterekkel (általában legalább a felhasználói nevet és jelszót tartalmazza).
User (karakterlánc)
felhasználónév.
Password (karakterlánc)
felhasználói jelszó (nem tárolt).
IsPasswordRequired (logikai érték)
a jelszó megadása szükséges, és a program párbeszédes formában bekéri azt a felhasználótól.
IsReadOnly (logikai érték)
csak olvasási hozzáférés engedélyezése az adatbázishoz.
NumberFormatsSupplier (objektum)
az adatbázisban használható számformátumokat tartalmazó objektum (támogatja a com.sun.star.util.XNumberFormatsSupplier illesztőfelületet).
TableFilter (tömb)
a megjelenítendő táblanevek listája.
TableTypeFilter (tömb)
a megjelenítendő táblatípusok listája. A használható értékek: TABLE, VIEW és SYSTEM TABLE.
SuppressVersionColumns (logikai érték)
kikapcsolja a verziófelügyelethez használt oszlopok megjelenítését.
Documentation note.png Az OpenOffice.org adatforrásai nem vethetők össze egy az egyben az ODBC adatforrásaival. Míg az ODBC adatforrások csupán az adatok eredetére vonatkozó információkat tartalmazzák, az OpenOffice.org adatforrásokban szerepelnek további információk is, melyek az OpenOffice.org adatbázisablakaiban szereplő adatok megjelenítésének módjára vonatkoznak.

Lekérdezések

Előre megadott lekérdezések rendelhetők adatforráshoz. Az OpenOffice.org feljegyzi a lekérdezések SQL-parancsait, így azok mindig elérhetők. A lekérdezések az adatbázisokkal végzett munka megkönnyítésére használatosak, mivel egyetlen kattintással megnyithatók, és az SQL nyelvet nem ismerő felhasználó számára is lehetőséget ad SQL-parancsok kiadására.

A lekérdezések mögött mindig egy a com.sun.star.sdb.QueryDefinition szolgáltatást támogató objektum bújik meg. A lekérdezések elérése az adatforrás QueryDefinitions metódusának segítségével történik.

A következő példában szerepel az üzenetablakról indítható adatforrás-lekérdezések neveit tartalmazó lista.

Dim DatabaseContext As Object
Dim DataSource As Object
Dim QueryDefinitions As Object
Dim QueryDefinition As Object
Dim I As Integer
 
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("Customers")
QueryDefinitions = DataSource.getQueryDefinitions()
 
For I = 0 To QueryDefinitions.Count() - 1
  QueryDefinition = QueryDefinitions(I)
  MsgBox QueryDefinition.Name
Next I

A példában használt Name tulajdonság mellett a com.sun.star.sdb.QueryDefinition számos más tulajdonságot ad meg. Ezek a következők:

Name (karakterlánc)
a lekérdezés neve.
Command (karakterlánc)
SQL-parancs (rendszerint SELECT parancs).

A következő példa bemutatja, hogy miként hozható létre lekérdezési objektum programvezérelt módon, és hogyan rendelhető adatforráshoz.

Dim DatabaseContext As Object
Dim DataSource As Object
Dim QueryDefinitions As Object
Dim QueryDefinition As Object
Dim I As Integer
 
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("Customers")
QueryDefinitions = DataSource.getQueryDefinitions()
QueryDefinition = createUnoService("com.sun.star.sdb.QueryDefinition")
QueryDefinition.Command = "SELECT * FROM Customer"
QueryDefinitions.insertByName("NewQuery", QueryDefinition)

Elsőként a lekérdezési objektum létrehozása zajlott le a createUnoService hívással, majd az inicializálás következett, végül a insertByName segítségével végrehajtott beillesztés a QueryDefinitions objektumba.


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools