Modele qsl

La capture d`écran sur la gauche montre un QSqlTableModel plain dans un QTableView. Les clés étrangères (ville et pays) ne sont pas résolues à des valeurs lisibles par l`homme. La capture d`écran à droite montre un QSqlRelationalTableModel, avec des clés étrangères résolues en chaînes de texte lisibles par l`homme. QSqlTableModel est une alternative de haut niveau à QSqlQuery pour naviguer et modifier des tables SQL individuelles. Il en résulte généralement moins de code et ne nécessite aucune connaissance de la syntaxe SQL. QSqlRelationalTableModel étend QSqlTableModel pour fournir la prise en charge des clés étrangères. Une clé étrangère est un mappage de 1 à 1 entre un champ dans une table et le champ de clé primaire d`une autre table. Par exemple, si une table de livres possède un champ appelé AuthorId qui fait référence au champ ID de la table author, nous disons que l`autorisation est une clé étrangère. Lorsque vous avez fini de modifier un enregistrement, vous devez toujours appeler QSqlTableModel:: submitAll () pour vous assurer que les modifications sont écrites dans la base de données. Quand et si vous avez réellement besoin d`appeler submitAll () dépend de la stratégie de modification de la table. La stratégie par défaut est QSqlTableModel:: OnRowChange, qui spécifie que les modifications en attente sont appliquées à la base de données lorsque l`utilisateur sélectionne une ligne différente. D`autres stratégies sont QSqlTableModel:: OnManualSubmit (où toutes les modifications sont mises en cache dans le modèle jusqu`à ce que vous appele submitAll ()) et QSqlTableModel:: OnFieldChange (où aucune modification n`est mise en cache).

Ces derniers sont surtout utiles lorsque QSqlTableModel est utilisé avec une vue. QSqlTableModel:: OnFieldChange semble livrer la promesse que vous n`avez jamais besoin d`appeler submitAll () explicitement. Il y a deux écueils, cependant: un autre avantage de l`utilisation de ces classes est qu`il peut rendre votre code plus facile à adapter à d`autres sources de données. Par exemple, si vous utilisez QSqlTableModel et décidez ultérieurement d`utiliser des fichiers XML pour stocker des données au lieu d`une base de données, il s`agit essentiellement d`une question de remplacement d`un modèle de données par un autre. Ces classes dérivent de QAbstractTableModel (qui à son tour hérite de QAbstractItemModel) et facilitent la présentation des données à partir d`une base de données dans une classe d`affichage d`élément telle que QListView et QTableView. Ceci est expliqué en détail dans la section Présentation des données dans une vue de table. Pour plus d`informations, consultez la documentation QSqlRelationalTableModel. Le premier argument de QSqlTableModel:: removeRows () est l`index de la première ligne à supprimer. Vous pouvez également utiliser QSqlTableModel::d ATA () et QSqlTableModel:: setData (), qui sont hérités de QAbstractItemModel, pour accéder aux données. Par exemple, voici comment mettre à jour un enregistrement à l`aide de setData (): en plus de QSqlQuery, QT propose trois classes de niveau supérieur pour accéder aux bases de données. Ces classes sont QSqlQueryModel, QSqlTableModel et QSqlRelationalTableModel. L`extrait de code suivant montre comment le QSqlRelationalTableModel a été configuré: utilisez QSqlTableModel:: record () pour récupérer une ligne dans la table et QSqlTableModel:: setRecord () pour modifier la ligne.

Par exemple, le code suivant augmentera le salaire de chaque salarié de 10%: après avoir définir la requête à l`aide de QSqlQueryModel:: setQuery (), vous pouvez utiliser QSqlQueryModel:: record (int) pour accéder aux enregistrements individuels. Vous pouvez également utiliser QSqlQueryModel::d ATA () et toutes les autres fonctions héritées de QAbstractItemModel. En effet, pour certains amateurs, si vous ne payez pas de frais pour obtenir leur QSL, il est probable que vous ne le recevrez jamais! Est-il encore la radio amateur quand vous avez à payer pour obtenir la confirmation de votre QSO? Je ne pense pas, et le comportement de ces amateurs doit être pris. New One pour Jacquie, XYL du client passé Dave VK4QL, maintenant sur l`air de Deep OZ.. Catch`em quand vous le pouvez, ce double trouble K1NSS personnalisé QSL couple.

Comments are closed.