Sources de données

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


Pour intégrer une base de données à Apache OpenOffice, il suffit de créer ce que l'on nomme couramment une source de données. Pour ce faire, une option de l'interface utilisateur permet de créer des sources de données dans le menu Extras. Vous pouvez également créer des sources de données et travailler avec celles-ci à l'aide de Apache OpenOffice Basic.

Un objet de contexte de base de données créé à l'aide de la fonction createUnoService sert de point de départ pour accéder à une source de données. Il est basé sur le service com.sun.star.sdb.DatabaseContext et sert d'objet racine pour toutes les opérations de la base de données.

L'exemple illustre la création d'un contexte de base de données, puis son utilisation pour déterminer les noms de toutes les sources de données disponibles. Il affiche les noms dans une boîte de message.

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

Les sources de données individuelles sont basées sur le service com.sun.star.sdb.DataSource et peuvent être déterminées à partir du contexte de la base de données à l'aide de la méthode getByName :

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

Cet exemple crée un objet DataSource pour une source de données nommée Customers.

Les sources de données fournissent un ensemble de propriétés qui, à leur tour, fournissent des renseignements d'ordre général concernant l'origine des données et des informations concernant les méthodes d'accès. Ces propriétés sont les suivantes :

Name (String)
nom de la source de données.
URL (String)
URL de la source de données, au format jdbc: sous-protocole : sous-nom ou sdbc: sous-protocole : sous-nom.
Settings (Array)
matrice contenant des paires PropertyValue avec des paramètres de connexion (généralement un nom d'utilisateur et un mot de passe).
User (String)
nom d'utilisateur.
Password (String)
mot de passe de l'utilisateur (non enregistré).
IsPasswordRequired (Boolean)
un mot de passe doit obligatoirement être fourni par l'utilisateur.
IsReadOnly (Boolean)
permet l'accès en lecture seule à la base de données.
NumberFormatsSupplier (Object)
objet contenant les formats numériques pour la base de données (prend en charge l'interface com.sun.star.util.XNumberFormatsSupplier).
TableFilter (Array)
liste des noms de table à afficher.
TableTypeFilter (Array)
liste des types de table à afficher. Les valeurs disponibles sont TABLE, VIEW et SYSTEM TABLE.
SuppressVersionColumns (Boolean)
masque les colonnes utilisées pour la gestion des versions.
Documentation note.png Les sources de données de Apache OpenOffice ne sont pas comparables une à une avec les sources de données ODBC. Une source de données ODBC ne recouvre que les informations concernant l'origine des données, tandis qu'une source de données de Apache OpenOffice inclut également un ensemble d'informations relatives à l'affichage des données dans les fenêtres de base de données de Apache OpenOffice.

Requêtes

Il est possible d'assigner des requêtes prédéfinies à une source de données. Apache OpenOffice note les instructions SQL des requêtes afin qu'elles soient disponibles à tout moment. Les requêtes simplifient l'utilisation des bases de données car elles peuvent s'ouvrir d'un simple clic de souris. Elles permettent aussi aux novices d'employer les instructions SQL.

Un objet prenant en charge le service com.sun.star.sdb.QueryDefinition se trouve derrière une requête. L'accès aux requêtes s'effectue à l'aide de la méthode QueryDefinitions de la source de données.

L'exemple suivant énumère les noms des requêtes à la source de données qui peuvent être établies dans un message.

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

Outre la propriété Name utilisée dans cet exemple, com.sun.star.sdb.QueryDefinition fournit de nombreuses autres propriétés, à savoir :

Name (String)
nom de la requête.
Command (String)
instruction SQL (en règle générale, une commande SELECT).

L'exemple suivant illustre la création d'un objet Query par programmation et son assignation à une source de données.

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'objet Query est d'abord créé via l'appel createUnoService, initialisé, puis inséré dans l'objet QueryDefinitions à l'aide de insertByName.

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