jdbcDriverOOo logo Historique

This document in English.

Concernant l’installation, la configuration et l’utilisation, veuillez consulter la documentation.

Ce qui a été fait pour la version 0.0.1:

Ce qui a été fait pour la version 0.0.2:

Ce qui a été fait pour la version 0.0.3:

Ce qui a été fait pour la version 0.0.4:

Ce qui a été fait pour la version 1.0.0:

Ce qui a été fait pour la version 1.0.1:

Ce qui a été fait pour la version 1.0.2:

Ce qui a été fait pour la version 1.0.3:

Ce qui a été fait pour la version 1.0.4:

Ce qui a été fait pour la version 1.0.5:

Ce qui a été fait pour la version 1.0.6:

Ce qui a été fait pour la version 1.0.7:

Ce qui a été fait pour la version 1.0.8:

Ce qui a été fait pour la version 1.1.0:

Ce qui a été fait pour la version 1.1.1:

Ce qui a été fait pour la version 1.1.2:

Ce qui a été fait pour la version 1.1.3:

Ce qui a été fait pour la version 1.1.4:

Ce qui a été fait pour la version 1.1.5:

Ce qui a été fait pour la version 1.1.6:

Ce qui a été fait pour la version 1.2.0:

Ce qui a été fait pour la version 1.2.1:

Ce qui a été fait pour la version 1.2.2:

Ce qui a été fait pour la version 1.2.3:

Ce qui a été fait pour la version 1.2.4:

Ce qui a été fait pour la version 1.3.0:

Normalement, je suis arrivé à couvrir toute l’étendue de l’API UNO (com.sun.star.sdbc, sdbcx et sdb), ce qui à pris pas mal de temps, mais je ne pensais pas au départ y arriver.

Ce qui a été fait pour la version 1.3.1:

Ce qui a été fait pour la version 1.3.2:

Désormais l’API UNO SDBCX peut être utilisée pour la création de bases de données, comme c’est le cas pour les dernières versions des extensions utilisant jdbcDriverOOo. Il est possible de créer des tables, grâce à l’API UNO, avec les caractéristiques suivantes:

L’utilisation de l’API UNO pour créer des bases de données vous permettra d’utiliser du code indépendant de la base de données sous-jacente.

Les clients utilisant le pilote jdbcDriverOOo peuvent accéder aux fonctionnalités du pilote JDBC sous-jacent à l’aide de la méthode XDriver.getPropertyInfo() afin d’accéder au paramètre nécessaire lors de la création de tables et d’afficher correctement les privilèges. Ces paramètres étant accessibles directement par le pilote, peuvent être obtenus avant toute connexion, et permettent donc la création de la base de données lors de la première connexion.

Ce qui a été fait pour la version 1.3.3:

Ce qui a été fait pour la version 1.4.0:

Ce qui a été fait pour la version 1.4.1:

Ce qui a été fait pour la version 1.4.2:

Ce qui a été fait pour la version 1.4.3:

Ce qui a été fait pour la version 1.4.4:

Ce qui a été fait pour la version 1.4.5:

Ce qui a été fait pour la version 1.4.6:

Ce qui a été fait pour la version 1.5.0:

Ce qui a été fait pour la version 1.5.1:

Ce qui a été fait pour la version 1.5.2:

Une régression dans la gestion des conteneurs (tables, vues et colonnes) est présente depuis la dernière mise à jour. Elle provient de la nouvelle intégration du service ResultColumn, qui nécessite des conteneurs capables de gérer la duplication de noms, comme c’est parfois le cas pour les colonnes d’un ResultSet. Cet ajout provoquait une erreur dans la gestion des index après la suppression d’un élément. Ce problème vient d’être corrigé et implementé dans les deux fichiers ContainerBase.java et ContainerSuper.java.

Ce qui a été fait pour la version 1.5.3:

L’intégration de l’archive JaybirdEmbedded permet un véritable mode intégré pour Jaybird. Il n’est plus nécessaire d’installer le serveur Firebird pour utiliser Firebird en mode embarqué (ie: embedded:*).

Ce qui a été fait pour la version 1.5.4:

Afin d’éviter toute régression sur les extensions utilisant jdbcDriverOOo :

Ce qui a été fait pour la version 1.5.5:

Ce qui a été fait pour la version 1.5.6:

Intégration du pilote JDBC Oracle ojdbc17.jar. Cette intégration a nécessité les modifications suivantes du code sous-jacent:

En raison de ces limitations du pilote Oracle, seuls les ResultSets des requêtes SQL SELECT qui ne s’appliquent qu’à une seule table seront modifiables dans LibreOffice Base.

L’implémentation des conteneurs pour les tables, les vues, les colonnes, les index, les clés, les utilisateurs, les groupes et descripteurs a été entièrement repensée. Désormais les conteneurs déléguent la gestion de leurs elements à trois classes implémentant l’interface BiMap:

Quant aux conteneurs eux-mêmes, ils utilisent désormais l’une des précédente classes implémentant BiMap selon leurs besoins. Ce choix s’effectue dans l’un des quatre conteneurs suivants et selon leur niveau d’héritage de classe:

La création des trois classes implémentant l’interface BiMap permet désormais à tous les conteneurs d’hériter de la classe parente ContainerMain, ce qui n’était pas possible jusqu’à présent. Cela simplifie grandement l’implémentation des conteneurs, qui ont pu être débarrassés de toute cette machinerie. Tout est devenu tellement plus simple que je ne comprends pas pourquoi je n’y ai pas pensé plus tôt?
De plus, concernant les utilisateurs et les rôles, cette nouvelle implémentation garantira:

Sur ce même principe, il serait possible de n’avoir qu’une seule instance d’une colonne chargée, qu’elle soit accédée au travers d’une Table ou d’un ResultSet. À méditer…

La gestion du rafraîchissement suite à la création ou à la suppression d’un élément pose problème dans LibreOffice Base, voir le problème tdf#167920. Je ne sais pas encore comment résoudre ce problème. Si il faut utiliser un listener ou faire en sorte que Base utilise l’interface XRefresable prise en charge par les conteneurs après toute modification le nécessitant. Dans le second cas, c’est le code de LibreOffice Base qui doit encore être amélioré. En attendant pour contourner ce problème, je vous conseille d’actualiser manuellement LibreOffice Base via le menu Affichage -> Rafraîchir les tables après toute insertion ou suppression.

De nombreuses petites corrections:

La prise en charge d’un pilote supplémentaire comme celui d’Oracle me demande beaucoup de travail pour les tests de fonctionnalités. Je compte sur vous pour me signaler tout dysfonctionnement, car la recherche de ces dysfonctionnements est la tâche la plus chronophage. Merci d’avance.

Si vous utilisez plusieurs comptes pour vous connecter à une base de données, vous ne pourrez pas vous reconnecter à cette base de données à nouveau si vous l’aviez ouverte avec un compte autre que celui proposé puis fermée sans enregistrer le fichier. Vous devez redémarrer LibreOffice. Voir tdf#167960.

Que reste-t-il à faire pour la version 1.5.6: