SQL Server + ODBC + QT: affichage des loggings BLANK après la transaction

J'utilise: QT 5.0.2 + MinGW 4.7 + 32 bits + pilote ODBC + Windows 7 (32) + SQL Server 2012 Express

Le problème":

1) J'ai une window montrant les loggings d'une table de database.

2) Si quelque part dans l'application, je dois mettre à jour la database sans utiliser 'transactions' tout fonctionne bien.

3) Si quelque part dans l'application, je dois mettre à jour la database en utilisant 'transactions' les loggings affichés dans la window (1) (*) ont disparu et deviennent des loggings vierges.

NOTE (*): Si j'ai plus de windows (MDI) montrant plusieurs tables, toutes les windows, tous les loggings de tables vont BLANK simultanément.

J'ai décidé de vérifier avec "SQL Server Profiler" ce qui se passe sur le server quand quelqu'un utilise QSqlTableModel \ QSqlQueryModel et je pense avoir "trouvé" le problème (my) sur le server mais je ne suis pas sûr d'où est le problème sur mon / QT côté:

1) lorsque la window s'ouvre, QSqlTableModel \ QSqlQueryModel (je pense) crée un slider "exec sp_cursoropen 180150003" sur le server

2) récupère quelques loggings "exec sp_cursorfetch 180150003"

3) si la window repaint / refresh récupère encore quelques loggings "exec sp_cursorfetch 180150003"

4) après l'exécution de la "transaction" quelqu'un (qui?) Ferme le slider utilisé (je pense) par QSqlTableModel \ QSqlQueryModel "exec sp_cursorclose 180150003"

5) après cela, il n'y a plus d'inputs de "exec sp_cursorfetch …." C'est pourquoi (je pense) le QTableView affiche les loggings BLANK.

NOTE (*): Lors de l'utilisation de sous-windows MDI montrant chacune d'entre elles une table complètement différente et sans rapport. Après la "transaction", tous les sous-windows / QTableView affichent automatiquement les loggings BLANK. J'ai vérifié avec "SQL Server Profiler" et après la "transaction" il y a autant de "exec sp_cursorfetch" que les sous-windows ouvertes.

Il semble que tous les "sliders" sont automatiquement fermés, peu importe s'ils sont liés aux mises à jour (table unique) en cours.

En supposant que le "problème" est que ces "exec sp_cursorclose", quelqu'un a-t-il une idée de la raison pour laquelle ceux-ci (exec sp_cursorclose) se produisent automatiquement:

  • Est-ce une limitation ODBC (généralement parlant)?

  • Est-ce une limitation ODBC (implémentation QT)?

  • Est-ce une limitation ODBC (implémentation MSSQL)?

  • Est-ce une implémentation / limitation QSqlxxxxxx?

Qu'est-ce que j'oublie ici?

Toute suggestion ou commentaire serait grandement apprécié

Est-ce que les valeurs et les variables de votre insertion sql que vous voulez entrer dans le server sont correctes? Je sais que cela n'a rien à voir avec ce que vous requestz, mais de petites erreurs dans les servers mysql peuvent causer d'autres erreurs. Je te souhaite bonne chance 🙂