2009-08-23 2 views

Répondre

2

Nous utilisons les classes QtSql depuis quelques années maintenant, nous utilisons actuellement le pilote ODBC pour nous connecter à l'instance MSSql. Dans l'ensemble, l'ensemble de l'interface fonctionne assez bien. Il vous isole complètement du pilote de base de données QSqlDatabase, QSqlQuery et QSqlResult au premier plan, il y a quelques abstractions qui vous isolent également du vrai SQL QSqlTableModel et QSqlRelationalTableModel mais ceux-ci sont adaptés pour une utilisation dans l'une des vues Qt. Il existe également une classe QDataWidgetMapper qui vous aide à mapper les données aux vues non-tables. QVariant fait également un excellent travail d'encapsulation des données SQL et fournit un accès typé au résultat d'une requête. Bien que tout cela soit très utile, à moins que votre application ne soit trop petite, cela ne vous évitera pas d'avoir à créer une couche DAO décente, aucune des classes Qt ne vous le fournit.

Nous avons un processus dans lequel nous transformons une description - custom - xml en script sql pour créer une table, une classe qt wrapper pour QSqlRecord et nous utilisons QSqlTableModel pour la plupart de nos travaux CRUD. Cela fonctionne raisonnablement bien, mais il y a beaucoup de frais généraux dans ces cours, donc je ne répéterais pas cette approche.

Nous avons trouvé quelques bizarreries avec le pilote ODBC, je suis sûr qu'il y a d'autres bizarreries avec le pilote oracle. OTOH nous sommes raisonnablement sûrs que nous serons en mesure de passer de MS-SQL à ORACLE dans un court laps de temps. En ce qui concerne les points de départ, je pense qu'il existe un exemple simple dans les exemples qt.

+0

Pourriez-vous vous expliquer les "bizarreries dans le pilote OBDC"? Je pense à passer à Qt (loin de la mise en œuvre de MSFT), et je voulais savoir à quoi m'attendre. –