Sorgenti di dati

From Apache OpenOffice Wiki
Jump to: navigation, search


È possibile incorporare un database in OpenOffice.org mediante la creazione di una cosiddetta sorgente di dati. L'interfaccia utente fornisce un'opzione corrispondente per creare le sorgenti di dati nel menu Strumenti. In alternativa è possibile creare sorgenti di dati proprie e utilizzarle con OpenOffice.org Basic.

Un oggetto contesto di database creato utilizzando la funzione createUnoService funge da punto iniziale per l'accesso a una sorgente di dati. Si basa sul servizio com.sun.star.sdb.DatabaseContext e costituisce l'oggetto radice per tutte le operazioni con i database.

L'esempio seguente mostra come creare un contesto di database e quindi utilizzarlo per determinare i nomi di tutte le sorgenti di dati disponibili, i cui nomi vengono visualizzati in una finestra di messaggio.

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

Le singole sorgenti di dati si basano sul servizio com.sun.star.sdb.DataSource e si possono determinare dal contesto del database utilizzando il metodo getByName:

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

L'esempio crea un oggetto DataSource per una sorgente di dati denominata Customers.

Le sorgenti di dati offrono una serie di proprietà, che a loro volta forniscono informazioni generali sull'origine dei dati e informazioni sui metodi di accesso. Le proprietà principali sono le seguenti:

Name (String)
Nome della sorgente di dati
URL (String)
URL della sorgente di dati nella forma jdbc: subprotocollo: subnome o sdbc: subprotocollo: subnome.
Settings (Array)
Matrice contenente coppie PropertyValue con parametri di collegamento (in genere almeno il nome utente e la password).
User (String)
Nome dell'utente
Password (String)
Password dell'utente (non viene salvata).
IsPasswordRequired (Boolean)
La password è necessaria e richiesta in modo interattivo all'utente.
IsReadOnly (Boolean)
Consente l'accesso in sola lettura al database.
NumberFormatsSupplier (Object)
Oggetto contenente i formati numerici disponibili per il database (supporta l'interfaccia com.sun.star.util.XNumberFormatsSupplier).
TableFilter (Array)
Elenco dei nomi delle tabelle da visualizzare.
TableTypeFilter (Array)
Elenco dei tipi di tabelle da visualizzare. I valori disponibili sono TABLE, VIEW e SYSTEM TABLE.
SuppressVersionColumns (Boolean)
Nasconde la visualizzazione delle colonne utilizzate per la gestione delle versioni.
Documentation note.png Le sorgenti di dati di OpenOffice.org non sono paragonabili 1:1 con le sorgenti di dati in ODBC. Mentre una sorgente di dati ODBC copre solo le informazioni sull'origine dei dati, una sorgente di dati in OpenOffice.org include anche una serie di informazioni sulle modalità di visualizzazione dei dati nelle finestre di database di OpenOffice.org.

Ricerche

È possibile assegnare ricerche predefinite a una sorgente di dati. OpenOffice.org prende nota dei comandi SQL delle ricerche in modo da renderli disponibili in qualsiasi momento. Le ricerche (query) permettono di semplificare le operazioni con i database in quanto si possono aprire con un semplice clic del mouse e consentono anche agli utenti che non conoscono il linguaggio SQL di impartire comandi SQL.

Nelle ricerche è integrato un oggetto che supporta il servizio com.sun.star.sdb.QueryDefinition. Potete accedere alle ricerche per mezzo del metodo QueryDefinitions della sorgente di dati.

L'esempio seguente elenca i nomi delle ricerche delle sorgenti di dati che possono essere determinate in una finestra di messaggio.

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

Oltre alla proprietà Name utilizzata nell'esempio, com.sun.star.sdb.QueryDefinition fornisce una serie completa di altre proprietà. In dettaglio:

Name (String)
Nome della ricerca
Command (String)
Comando SQL (generalmente un comando SELECT)

L'esempio seguente mostra come creare un oggetto ricerca in modo controllato da programma e assegnarlo a una sorgente di dati.

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)

L'oggetto ricerca viene prima creato utilizzando la chiamata createUnoService quindi inizializzato e successivamente inserito nell'oggetto QueryDefinitions per mezzo di insertByName.

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