<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # QSqlRelationalTableModel Class Reference ## [[QtSql](index.htm) module] 該QSqlRelationalTableModel類提供了一個可編輯的數據模型為單個數據庫表,與外鍵的支持。[More...](#details) 繼承[QSqlTableModel](qsqltablemodel.html)。 ### Types * `enum JoinMode { InnerJoin, LeftJoin }` ### Methods * `__init__ (self, QObject?parent?=?None, QSqlDatabase?db?=?QSqlDatabase())` * `clear (self)` * `QVariant data (self, QModelIndex?index, int?role?=?Qt.DisplayRole)` * `bool insertRowIntoTable (self, QSqlRecord?values)` * `QString orderByClause (self)` * `QSqlRelation relation (self, int?column)` * `QSqlTableModel relationModel (self, int?column)` * `bool removeColumns (self, int?column, int?count, QModelIndex?parent?=?QModelIndex())` * `revertRow (self, int?row)` * `bool select (self)` * `QString selectStatement (self)` * `bool setData (self, QModelIndex?index, QVariant?value, int?role?=?Qt.EditRole)` * `setJoinMode (self, JoinMode?joinMode)` * `setRelation (self, int?column, QSqlRelation?relation)` * `setTable (self, QString?tableName)` * `bool updateRowInTable (self, int?row, QSqlRecord?values)` * * * ## Detailed Description 該QSqlRelationalTableModel類提供了一個可編輯的數據模型為單個數據庫表,與外鍵的支持。 QSqlRelationalTableModel就像[QSqlTableModel](qsqltablemodel.html),但允許列要被設置為外鍵成其他數據庫表。 | ![](https://img.kancloud.cn/74/cc/74cc77add97e8a591a615abf5ddacd1c_448x206.png) | ![](https://img.kancloud.cn/0e/13/0e13503c86cef3ea674a25c02cf8912b_448x206.png) | 左邊的屏幕截圖顯示了純[QSqlTableModel](qsqltablemodel.html)在[QTableView](qtableview.html)。外鍵(`city`和`country`)不會被解析為可讀價值。右邊的屏幕截圖顯示了QSqlRelationalTableModel ,與外鍵分解成可讀的文本字符串。 下面的代碼片段顯示了QSqlRelationalTableModel是如何設置: ``` model->setTable("employee"); model->setRelation(2, [QSqlRelation](qsqlrelation.html)("city", "id", "name")); model->setRelation(3, [QSqlRelation](qsqlrelation.html)("country", "id", "name")); ``` 該[setRelation](qsqlrelationaltablemodel.html#setRelation)( )函數調用建立兩個表之間的關系。第一次調用指定表2列`employee`是,與字段映射外鍵`id`表`city`,而認為應該提出的`city`的`name`字段給用戶。第二次調用是否與第3列類似的東西。 如果你使用一個讀寫QSqlRelationalTableModel ,你可能想使用[QSqlRelationalDelegate](qsqlrelationaldelegate.html)在視圖上。不同的是默認的委讬,[QSqlRelationalDelegate](qsqlrelationaldelegate.html)提供了一個組合框是外鍵到其他表中的字段。使用類,只需調用[QAbstractItemView.setItemDelegate](qabstractitemview.html#setItemDelegate)( )與實例的視圖[QSqlRelationalDelegate](qsqlrelationaldelegate.html): ``` [QTableView](qtableview.html) *view = new [QTableView](qtableview.html); view->setModel(model); view->setItemDelegate(new [QSqlRelationalDelegate](qsqlrelationaldelegate.html)(view)); ``` 該[sql/relationaltablemodel](index.htm)示例說明了如何使用QSqlRelationalTableModel與配合[QSqlRelationalDelegate](qsqlrelationaldelegate.html)提供表外鍵的支持。 ![](https://img.kancloud.cn/35/e5/35e506eae1d9ba6906dfb9ad4ef923b1_457x205.png) 注意事項: * The table must have a primary key declared. * The table's primary key may not contain a relation to another table. * If a relational table contains keys that refer to non-existent rows in the referenced table, the rows containing the invalid keys will not be exposed through the model. The user or the database is responsible for keeping referential integrity. * If a relation's display column name is also used as a column name in the main table, or if it is used as display column name in more than one relation it will be aliased. The alias is is the relation's table name and display column name joined by an underscore (e.g. tablename_columnname). All occurrences of the duplicate display column name are aliased when duplication is detected, but no aliasing is done to the column names in the main table. The aliasing doesn't affect [QSqlRelation](qsqlrelation.html), so [QSqlRelation.displayColumn](qsqlrelation.html#displayColumn)() will return the original display column name, but [QSqlRecord.fieldName](qsqlrecord.html#fieldName)() will return aliases. * When using [setData](qsqlrelationaltablemodel.html#setData)() the role should always be [Qt.EditRole](qt.html#ItemDataRole-enum), and when using [data](qsqlrelationaltablemodel.html#data)() the role should always be [Qt.DisplayRole](qt.html#ItemDataRole-enum). * * * ## Type Documentation ``` QSqlRelationalTableModel.JoinMode ``` 此枚舉指定的模式連接兩個表時要使用的類型。 | Constant | Value | Description | | --- | --- | --- | | `QSqlRelationalTableModel.InnerJoin` | `0` | 內部聯接模式,返回行的時候,至少有一個匹配兩個表中。 | | `QSqlRelationalTableModel.LeftJoin` | `1` | LEFT JOIN模式,返回左表( table_name1 )的所有行,即使在右表( table_name2 )的結果。 | 這個枚舉被引入或修改的Qt 4.8 。 **See also** [QSqlRelationalTableModel.setJoinMode](qsqlrelationaltablemodel.html#setJoinMode)( ) 。 * * * ## Method Documentation ``` QSqlRelationalTableModel.__init__ (self, QObject?parent?=?None, QSqlDatabase?db?=?QSqlDatabase()) ``` 該_parent_的說法,如果不是沒有,原因_self_通過Qt的,而不是PyQt的擁有。 創建一個空的[QSqlRelationalTableModel](qsqlrelationaltablemodel.html)并設置父_parent_與數據庫連接_db_。如果_db_是無效的,默認的數據庫連接將被使用。 ``` QSqlRelationalTableModel.clear (self) ``` 從重新實現[QSqlQueryModel.clear](qsqlquerymodel.html#clear)( ) 。 ``` QVariant QSqlRelationalTableModel.data (self, QModelIndex?index, int?role?=?Qt.DisplayRole) ``` 從重新實現[QAbstractItemModel.data](qabstractitemmodel.html#data)( ) 。 **See also** [setData](qsqlrelationaltablemodel.html#setData)( ) 。 ``` bool QSqlRelationalTableModel.insertRowIntoTable (self, QSqlRecord?values) ``` 從重新實現[QSqlTableModel.insertRowIntoTable](qsqltablemodel.html#insertRowIntoTable)( ) 。 ``` QString QSqlRelationalTableModel.orderByClause (self) ``` 從重新實現[QSqlTableModel.orderByClause](qsqltablemodel.html#orderByClause)( ) 。 ``` QSqlRelation QSqlRelationalTableModel.relation (self, int?column) ``` [ 返回列的關系_column_或無效的關系,如果沒有關系設定。 ](qsqlrelation.html) [**See also**](qsqlrelation.html) [setRelation](qsqlrelationaltablemodel.html#setRelation)()和[QSqlRelation.isValid](qsqlrelation.html#isValid)( ) 。 ``` QSqlTableModel QSqlRelationalTableModel.relationModel (self, int?column) ``` [](qsqltablemodel.html) [返回](qsqltablemodel.html)[QSqlTableModel](qsqltablemodel.html)對象,用于訪問表的量_column_是外鍵,或者0,如果沒有為給定的沒有關系_column_。 返回的對象是由資[QSqlRelationalTableModel](qsqlrelationaltablemodel.html)。 **See also** [setRelation](qsqlrelationaltablemodel.html#setRelation)()和[relation](qsqlrelationaltablemodel.html#relation)( ) 。 ``` bool QSqlRelationalTableModel.removeColumns (self, int?column, int?count, QModelIndex?parent?=?QModelIndex()) ``` 從重新實現[QAbstractItemModel.removeColumns](qabstractitemmodel.html#removeColumns)( ) 。 ``` QSqlRelationalTableModel.revertRow (self, int?row) ``` 從重新實現[QSqlTableModel.revertRow](qsqltablemodel.html#revertRow)( ) 。 ``` bool QSqlRelationalTableModel.select (self) ``` 從重新實現[QSqlTableModel.select](qsqltablemodel.html#select)( ) 。 ``` QString QSqlRelationalTableModel.selectStatement (self) ``` 從重新實現[QSqlTableModel.selectStatement](qsqltablemodel.html#selectStatement)( ) 。 ``` bool QSqlRelationalTableModel.setData (self, QModelIndex?index, QVariant?value, int?role?=?Qt.EditRole) ``` 從重新實現[QAbstractItemModel.setData](qabstractitemmodel.html#setData)( ) 。 設置數據的_role_在用指定的項_index_到_value_給出。取決于編輯策略,則該值可能被應用到數據庫一次,或者它可以在模型中被緩存。 返回True如果該值可以設置,或虛假的錯誤(例如,如果_index_是出界) 。 對于關系欄目,_value_必須是索引,而不是顯示值。該指數還必須存在于被引用表,否則返回False 。 **See also** [editStrategy](qsqltablemodel.html#editStrategy)( )[data](qsqlrelationaltablemodel.html#data)( )[submit](qsqltablemodel.html#submit)()和[revertRow](qsqlrelationaltablemodel.html#revertRow)( ) 。 ``` QSqlRelationalTableModel.setJoinMode (self, JoinMode?joinMode) ``` 設置SQL加盟模式由給定的值_joinMode_要顯示或隱藏與NULL外鍵的行。 In [InnerJoin](qsqlrelationaltablemodel.html#JoinMode-enum)模式(默認)這些行不會被顯示;使用[LeftJoin](qsqlrelationaltablemodel.html#JoinMode-enum)模式下,如果你想向他們展示。 此功能被引入Qt的4.8 。 **See also** [QSqlRelationalTableModel.JoinMode](qsqlrelationaltablemodel.html#JoinMode-enum)。 ``` QSqlRelationalTableModel.setRelation (self, int?column, QSqlRelation?relation) ``` 讓指定的_column_可以通過指定的外國指數_relation_。 例如: ``` model->setTable("employee"); model->setRelation(2, [QSqlRelation](qsqlrelation.html)("city", "id", "name")); ``` 該setRelation ( )調用指定表2列`employee`是,與字段映射外鍵`id`表`city`,而認為應該提出的`city`的`name`字段給用戶。 注:表中的主鍵可能不包含關系到另一個表。 **See also** [relation](qsqlrelationaltablemodel.html#relation)( ) 。 ``` QSqlRelationalTableModel.setTable (self, QString?tableName) ``` 從重新實現[QSqlTableModel.setTable](qsqltablemodel.html#setTable)( ) 。 ``` bool QSqlRelationalTableModel.updateRowInTable (self, int?row, QSqlRecord?values) ``` 從重新實現[QSqlTableModel.updateRowInTable](qsqltablemodel.html#updateRowInTable)( ) 。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看