<?xml version="1.0"?>
<doc>
    <assembly>
        <name>qyoto-qtsql</name>
    </assembly>
    <members>
        <member name="T:QtSql.QSqlDatabase">
            <summary>
            The QSqlDatabase class represents a connection to a database.
            </summary>
            <remarks>
            <para></para>
            <para>The QSqlDatabase class provides an interface for accessing a database through a connection. An instance of QSqlDatabase represents the connection. The connection provides access to the database via one of the supported database drivers, which are derived from QSqlDriver. Alternatively, you can subclass your own database driver from QSqlDriver. See How to Write Your Own Database Driver for more information.</para>
            <para>Create a connection (i.e., an instance of QSqlDatabase) by calling one of the static addDatabase() functions, where you specify the driver or type of driver to use (i.e., what kind of database will you access?) and a connection name. A connection is known by its own name, not by the name of the database it connects to. You can have multiple connections to one database. QSqlDatabase also supports the concept of a default connection, which is the unnamed connection. To create the default connection, don't pass the connection name argument when you call addDatabase(). Subsequently, when you call any static member function that takes the connection name argument, if you don't pass the connection name argument, the default connection is assumed. The following snippet shows how to create and open a default connection to a PostgreSQL database:</para>
            <para>     QSqlDatabase db = QSqlDatabase::addDatabase(&amp;quot;QPSQL&amp;quot;);</para>
            <para>     db.setHostName(&amp;quot;acidalia&amp;quot;);</para>
            <para>     db.setDatabaseName(&amp;quot;customdb&amp;quot;);</para>
            <para>     db.setUserName(&amp;quot;mojito&amp;quot;);</para>
            <para>     db.setPassword(&amp;quot;J0a1m8&amp;quot;);</para>
            <para>     bool ok = db.open();</para>
            <para>Once the QSqlDatabase object has been created, set the connection parameters with setDatabaseName(), setUserName(), setPassword(), setHostName(), setPort(), and setConnectOptions(). Then call open() to activate the physical connection to the database. The connection is not usable until you open it.</para>
            <para>The connection defined above will be the default connection, because we didn't give a connection name to addDatabase(). Subsequently, you can get the default connection by calling database() without the connection name argument:</para>
            <para>     QSqlDatabase db = QSqlDatabase::database();</para>
            <para>QSqlDatabase is a value class. Changes made to a database connection via one instance of QSqlDatabase will affect other instances of QSqlDatabase that represent the same connection. Use cloneDatabase() to create an independent database connection based on an existing one.</para>
            <para>If you create multiple database connections, specify a unique connection name for each one, when you call addDatabase(). Use database() with a connection name to get that connection. Use removeDatabase() with a connection name to remove a connection. QSqlDatabase outputs a warning if you try to remove a connection referenced by other QSqlDatabase objects. Use contains() to see if a given connection name is in the list of connections.</para>
            <para>Once a connection is established, you can call tables() to get the list of tables in the database, call primaryIndex() to get a table's primary index, and call record() to get meta-information about a table's fields (e.g., field names).</para>
            <para>Note: QSqlDatabase::exec() is deprecated. Use QSqlQuery::exec() instead.</para>
            <para>If the driver supports transactions, use transaction() to start a transaction, and commit() or rollback() to complete it. Use hasFeature() to ask if the driver supports transactions. Note: When using transactions, you must start the transaction before you create your query.</para>
            <para>If an error occurrs, lastError() will return information about it.</para>
            <para>Get the names of the available SQL drivers with drivers(). Check for the presence of a particular driver with isDriverAvailable(). If you have created your own custom driver, you must register it with registerSqlDriver().</para>
            <para></para>
            <para>See also QSqlDriver, QSqlQuery, QtSql Module, and Threads and the SQL Module.</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlDatabase.#ctor">
            <summary>
            <para>Creates an empty, invalid QSqlDatabase object. Use addDatabase(), removeDatabase(), and database() to get valid QSqlDatabase objects.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.#ctor(QtSql.QSqlDatabase)">
            <summary>
            <para>Creates a copy of other.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.#ctor(QtSql.QSqlDriver)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Creates a database connection using the given driver.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.#ctor(System.String)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Creates a QSqlDatabase connection that uses the driver referred to by type. If the type is not recognized, the database connection will have no functionality.</para>
            <para>The currently available driver types are:</para>
            <para></para>
            <para>Driver TypeDescription</para>
            <para>QDB2	IBM DB2</para>
            <para>QIBASE	Borland InterBase Driver</para>
            <para>QMYSQL	MySQL Driver</para>
            <para>QOCI	Oracle Call Interface Driver</para>
            <para>QODBC	ODBC Driver (includes Microsoft SQL Server)</para>
            <para>QPSQL	PostgreSQL Driver</para>
            <para>QSQLITE	SQLite version 3 or above</para>
            <para>QSQLITE2	SQLite version 2</para>
            <para>QTDS	Sybase Adaptive Server</para>
            <para></para>
            <para>Additional third party drivers, including your own custom drivers, can be loaded dynamically.</para>
            <para>See also SQL Database Drivers, registerSqlDriver(), and drivers().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.AddDatabase(QtSql.QSqlDriver)">
            <summary>
            <para>Adds a database to the list of database connections using the driver type and the connection name connectionName. If there already exists a database connection called connectionName, that connection is removed.</para>
            <para>The database connection is referred to by connectionName. The newly added database connection is returned.</para>
            <para>If type is not available or could not be loaded, isValid() returns false.</para>
            <para>If connectionName is not specified, the new connection becomes the default connection for the application, and subsequent calls to database() without the connection name argument will return the default connection. If a connectionName is provided here, use database(connectionName) to retrieve the connection.</para>
            <para>Warning: If you add a connection with the same name as an existing connection, the new connection replaces the old one. If you call this function more than once without specifying connectionName, the default connection will be the one replaced.</para>
            <para>Before using the connection, it must be initialized. e.g., call some or all of setDatabaseName(), setUserName(), setPassword(), setHostName(), setPort(), and setConnectOptions(), and, finally, open().</para>
            <para>Note: This function is thread-safe.</para>
            <para>See also database(), removeDatabase(), and Threads and the SQL Module.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.AddDatabase(QtSql.QSqlDriver,System.String)">
            <summary>
            <para>Adds a database to the list of database connections using the driver type and the connection name connectionName. If there already exists a database connection called connectionName, that connection is removed.</para>
            <para>The database connection is referred to by connectionName. The newly added database connection is returned.</para>
            <para>If type is not available or could not be loaded, isValid() returns false.</para>
            <para>If connectionName is not specified, the new connection becomes the default connection for the application, and subsequent calls to database() without the connection name argument will return the default connection. If a connectionName is provided here, use database(connectionName) to retrieve the connection.</para>
            <para>Warning: If you add a connection with the same name as an existing connection, the new connection replaces the old one. If you call this function more than once without specifying connectionName, the default connection will be the one replaced.</para>
            <para>Before using the connection, it must be initialized. e.g., call some or all of setDatabaseName(), setUserName(), setPassword(), setHostName(), setPort(), and setConnectOptions(), and, finally, open().</para>
            <para>Note: This function is thread-safe.</para>
            <para>See also database(), removeDatabase(), and Threads and the SQL Module.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.AddDatabase(System.String)">
            <summary>
            <para>Adds a database to the list of database connections using the driver type and the connection name connectionName. If there already exists a database connection called connectionName, that connection is removed.</para>
            <para>The database connection is referred to by connectionName. The newly added database connection is returned.</para>
            <para>If type is not available or could not be loaded, isValid() returns false.</para>
            <para>If connectionName is not specified, the new connection becomes the default connection for the application, and subsequent calls to database() without the connection name argument will return the default connection. If a connectionName is provided here, use database(connectionName) to retrieve the connection.</para>
            <para>Warning: If you add a connection with the same name as an existing connection, the new connection replaces the old one. If you call this function more than once without specifying connectionName, the default connection will be the one replaced.</para>
            <para>Before using the connection, it must be initialized. e.g., call some or all of setDatabaseName(), setUserName(), setPassword(), setHostName(), setPort(), and setConnectOptions(), and, finally, open().</para>
            <para>Note: This function is thread-safe.</para>
            <para>See also database(), removeDatabase(), and Threads and the SQL Module.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.AddDatabase(System.String,System.String)">
            <summary>
            <para>Adds a database to the list of database connections using the driver type and the connection name connectionName. If there already exists a database connection called connectionName, that connection is removed.</para>
            <para>The database connection is referred to by connectionName. The newly added database connection is returned.</para>
            <para>If type is not available or could not be loaded, isValid() returns false.</para>
            <para>If connectionName is not specified, the new connection becomes the default connection for the application, and subsequent calls to database() without the connection name argument will return the default connection. If a connectionName is provided here, use database(connectionName) to retrieve the connection.</para>
            <para>Warning: If you add a connection with the same name as an existing connection, the new connection replaces the old one. If you call this function more than once without specifying connectionName, the default connection will be the one replaced.</para>
            <para>Before using the connection, it must be initialized. e.g., call some or all of setDatabaseName(), setUserName(), setPassword(), setHostName(), setPort(), and setConnectOptions(), and, finally, open().</para>
            <para>Note: This function is thread-safe.</para>
            <para>See also database(), removeDatabase(), and Threads and the SQL Module.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.CloneDatabase(QtSql.QSqlDatabase,System.String)">
            <summary>
            <para>Clones the database connection other and and stores it as connectionName. All the settings from the original database, e.g. databaseName(), hostName(), etc., are copied across. Does nothing if other is an invalid database. Returns the newly created database connection.</para>
            <para>Note: The new connection has not been opened. Before using the new connection, you must call open().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Close">
            <summary>
            <para>Closes the database connection, freeing any resources acquired, and invalidating any existing QSqlQuery objects that are used with the database.</para>
            <para>This will also affect copies of this QSqlDatabase object.</para>
            <para>See also removeDatabase().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Commit">
            <summary>
            <para>Commits a transaction to the database if the driver supports transactions and a transaction() has been started. Returns true if the operation succeeded. Otherwise it returns false.</para>
            <para>Note: For some databases, the commit will fail and return false if there is an active query using the database for a SELECT. Make the query inactive before doing the commit.</para>
            <para>Call lastError() to get information about errors.</para>
            <para>See also QSqlQuery::isActive(), QSqlDriver::hasFeature(), and rollback().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.ConnectionName">
            <summary>
            <para>Returns the connection name, which may be empty. Note: The connection name is not the database name.</para>
            <para>This function was introduced in Qt 4.4.</para>
            <para>See also addDatabase().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.ConnectionNames">
            <summary>
            <para>Returns a list containing the names of all connections.</para>
            <para>Note: This function is thread-safe.</para>
            <para>See also contains(), database(), and Threads and the SQL Module.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Contains">
            <summary>
            <para>Returns true if the list of database connections contains connectionName; otherwise returns false.</para>
            <para>Note: This function is thread-safe.</para>
            <para>See also connectionNames(), database(), and Threads and the SQL Module.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Contains(System.String)">
            <summary>
            <para>Returns true if the list of database connections contains connectionName; otherwise returns false.</para>
            <para>Note: This function is thread-safe.</para>
            <para>See also connectionNames(), database(), and Threads and the SQL Module.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Database">
            <summary>
            <para>Returns the database connection called connectionName. The database connection must have been previously added with addDatabase(). If open is true (the default) and the database connection is not already open it is opened now. If no connectionName is specified the default connection is used. If connectionName does not exist in the list of databases, an invalid connection is returned.</para>
            <para>Note: This function is thread-safe.</para>
            <para>See also isOpen() and Threads and the SQL Module.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Database(System.String,System.Boolean)">
            <summary>
            <para>Returns the database connection called connectionName. The database connection must have been previously added with addDatabase(). If open is true (the default) and the database connection is not already open it is opened now. If no connectionName is specified the default connection is used. If connectionName does not exist in the list of databases, an invalid connection is returned.</para>
            <para>Note: This function is thread-safe.</para>
            <para>See also isOpen() and Threads and the SQL Module.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Driver">
            <summary>
            <para>Returns the database driver used to access the database connection.</para>
            <para>See also addDatabase() and drivers().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.DriverName">
            <summary>
            <para>Returns the connection's driver name.</para>
            <para>See also addDatabase() and driver().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Drivers">
            <summary>
            <para>Returns a list of all the available database drivers.</para>
            <para>See also registerSqlDriver().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Exec(System.String)">
            <summary>
            <para>Executes a SQL statement on the database and returns a QSqlQuery object. Use lastError() to retrieve error information. If query is empty, an empty, invalid query is returned and lastError() is not affected.</para>
            <para>See also QSqlQuery and lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.IsDriverAvailable(System.String)">
            <summary>
            <para>Returns true if a driver called name is available; otherwise returns false.</para>
            <para>See also drivers().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.IsOpen">
            <summary>
            <para>Returns true if the database connection is currently open; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.IsOpenError">
            <summary>
            <para>Returns true if there was an error opening the database connection; otherwise returns false. Error information can be retrieved using the lastError() function.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.IsValid">
            <summary>
            <para>Returns true if the QSqlDatabase has a valid driver.</para>
            <para>Example:</para>
            <para> QSqlDatabase db;</para>
            <para> qDebug() &lt;&lt; db.isValid();    // Returns false</para>
            <para></para>
            <para> db = QSqlDatabase::database(&quot;sales&quot;);</para>
            <para> qDebug() &lt;&lt; db.isValid();    // Returns true if &quot;sales&quot; connection exists</para>
            <para></para>
            <para> QSqlDatabase::removeDatabase(&quot;sales&quot;);</para>
            <para> qDebug() &lt;&lt; db.isValid();    // Returns false</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.LastError">
            <summary>
            <para>Returns information about the last error that occurred on the database.</para>
            <para>Failures that occur in conjunction with an individual query are reported by QSqlQuery::lastError().</para>
            <para>See also QSqlError and QSqlQuery::lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Open">
            <summary>
            <para>Opens the database connection using the current connection values. Returns true on success; otherwise returns false. Error information can be retrieved using lastError().</para>
            <para>See also lastError(), setDatabaseName(), setUserName(), setPassword(), setHostName(), setPort(), and setConnectOptions().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Open(System.String,System.String)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Opens the database connection using the given user name and password. Returns true on success; otherwise returns false. Error information can be retrieved using the lastError() function.</para>
            <para>This function does not store the password it is given. Instead, the password is passed directly to the driver for opening the connection and it is then discarded.</para>
            <para>See also lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.PrimaryIndex(System.String)">
            <summary>
            <para>Returns the primary index for table tablename. If no primary index exists an empty QSqlIndex is returned.</para>
            <para>See also tables() and record().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Record(System.String)">
            <summary>
            <para>Returns a QSqlRecord populated with the names of all the fields in the table (or view) called tablename. The order in which the fields appear in the record is undefined. If no such table (or view) exists, an empty record is returned.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.RegisterSqlDriver(System.String,QtSql.QSqlDriverCreatorBase)">
            <summary>
            <para>This function registers a new SQL driver called name, within the SQL framework. This is useful if you have a custom SQL driver and don't want to compile it as a plugin.</para>
            <para>Example:</para>
            <para> QSqlDatabase::registerSqlDriver(&quot;MYDRIVER&quot;,</para>
            <para>                                 new QSqlDriverCreator&lt;MyDatabaseDriver&gt;);</para>
            <para> QSqlDatabase db = QSqlDatabase::addDatabase(&quot;MYDRIVER&quot;);</para>
            <para>QSqlDatabase takes ownership of the creator pointer, so you mustn't delete it yourself.</para>
            <para>See also drivers().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.RemoveDatabase(System.String)">
            <summary>
            <para>Removes the database connection connectionName from the list of database connections.</para>
            <para>Warning: There should be no open queries on the database connection when this function is called, otherwise a resource leak will occur.</para>
            <para>Example:</para>
            <para> // WRONG</para>
            <para> QSqlDatabase db = QSqlDatabase::database(&quot;sales&quot;);</para>
            <para> QSqlQuery query(&quot;SELECT NAME, DOB FROM EMPLOYEES&quot;, db);</para>
            <para> QSqlDatabase::removeDatabase(&quot;sales&quot;); // will output a warning</para>
            <para></para>
            <para> // &quot;db&quot; is now a dangling invalid database connection,</para>
            <para> // &quot;query&quot; contains an invalid result set</para>
            <para>The correct way to do it:</para>
            <para> {</para>
            <para>     QSqlDatabase db = QSqlDatabase::database(&quot;sales&quot;);</para>
            <para>     QSqlQuery query(&quot;SELECT NAME, DOB FROM EMPLOYEES&quot;, db);</para>
            <para> }</para>
            <para> // Both &quot;db&quot; and &quot;query&quot; are destroyed because they are out of scope</para>
            <para> QSqlDatabase::removeDatabase(&quot;sales&quot;); // correct</para>
            <para>To remove the default connection, which may have been created with a call to addDatabase() not specifying a connection name, you can retrieve the default connection name by calling connectionName() on the database returned by database(). Note that if a default database hasn't been created an invalid database will be returned.</para>
            <para>Note: This function is thread-safe.</para>
            <para>See also database(), connectionName(), and Threads and the SQL Module.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Rollback">
            <summary>
            <para>Rolls back a transaction on the database, if the driver supports transactions and a transaction() has been started. Returns true if the operation succeeded. Otherwise it returns false.</para>
            <para>Note: For some databases, the rollback will fail and return false if there is an active query using the database for a SELECT. Make the query inactive before doing the rollback.</para>
            <para>Call lastError() to get information about errors.</para>
            <para>See also QSqlQuery::isActive(), QSqlDriver::hasFeature(), and commit().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Tables(QSql.TableType)">
            <summary>
            <para>Returns a list of the database's tables, system tables and views, as specified by the parameter type.</para>
            <para>See also primaryIndex() and record().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Transaction">
            <summary>
            <para>Begins a transaction on the database if the driver supports transactions. Returns true if the operation succeeded. Otherwise it returns false.</para>
            <para>See also QSqlDriver::hasFeature(), commit(), and rollback().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDatabase.Finalize">
            <summary>
            <para>Destroys the object and frees any allocated resources.</para>
            <para>If this is the last QSqlDatabase object that uses a certain database connection, the database connection is automatically closed.</para>
            <para>See also close().</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlDatabase.ConnectOptions">
            <summary>
            <para>Returns the connection options string used for this connection. The string may be empty.</para>
            <para>Sets database-specific options. This must be done before the connection is opened or it has no effect (or you can close() the connection, call this function and open() the connection again).</para>
            <para>The format of the options string is a semicolon separated list of option names or option=value pairs. The options depend on the database client used:</para>
            <para></para>
            <para>ODBCMySQLPostgreSQL</para>
            <para></para>
            <para>SQL_ATTR_ACCESS_MODE</para>
            <para>SQL_ATTR_LOGIN_TIMEOUT</para>
            <para>SQL_ATTR_CONNECTION_TIMEOUT</para>
            <para>SQL_ATTR_CURRENT_CATALOG</para>
            <para>SQL_ATTR_METADATA_ID</para>
            <para>SQL_ATTR_PACKET_SIZE</para>
            <para>SQL_ATTR_TRACEFILE</para>
            <para>SQL_ATTR_TRACE</para>
            <para>SQL_ATTR_CONNECTION_POOLING</para>
            <para>SQL_ATTR_ODBC_VERSION</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlDatabase.DatabaseName">
            <summary>
            <para>Returns the connection's database name, which may be empty. Note: The database name is not the connection name.</para>
            <para>Sets the connection's database name to name. To have effect, the database name must be set before the connection is opened. Alternatively, you can close() the connection, set the database name, and call open() again. Note: The database name is not the connection name. The connection name must be passed to addDatabase() at connection object create time.</para>
            <para>For the QOCI (Oracle) driver, the database name is the TNS Service Name.</para>
            <para>For the QODBC driver, the name can either be a DSN, a DSN filename (in which case the file must have a .dsn extension), or a connection string.</para>
            <para>For example, Microsoft Access users can use the following connection string to open an .mdb file directly, instead of having to create a DSN entry in the ODBC manager:</para>
            <para> ...</para>
            <para> db = QSqlDatabase::addDatabase(&quot;QODBC&quot;);</para>
            <para> db.setDatabaseName(&quot;DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=myaccessfile.mdb&quot;);</para>
            <para> if (db.open()) {</para>
            <para>     // success!</para>
            <para> }</para>
            <para> ...</para>
            <para>There is no default value.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlDatabase.HostName">
            <summary>
            <para>Returns the connection's host name; it may be empty.</para>
            <para>Sets the connection's host name to host. To have effect, the host name must be set before the connection is opened. Alternatively, you can close() the connection, set the host name, and call open() again.</para>
            <para>There is no default value.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlDatabase.NumericalPrecisionPolicy">
            <summary>
            <para>Returns the current default precision policy for the database connection.</para>
            <para>This function was introduced in Qt 4.6.</para>
            <para>Sets the default numerical precision policy used by queries created on this database connection to precisionPolicy.</para>
            <para>Note: Drivers that don't support fetching numerical values with low precision will ignore the precision policy. You can use QSqlDriver::hasFeature() to find out whether a driver supports this feature.</para>
            <para>Note: Setting the default precision policy to precisionPolicy doesn't affect any currently active queries.</para>
            <para>This function was introduced in Qt 4.6.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlDatabase.Password">
            <summary>
            <para>Returns the connection's password. If the password was not set with setPassword(), and if the password was given in the open() call, or if no password was used, an empty string is returned.</para>
            <para>Sets the connection's password to password. To have effect, the password must be set before the connection is opened. Alternatively, you can close() the connection, set the password, and call open() again.</para>
            <para>There is no default value.</para>
            <para>Warning: This function stores the password in plain text within Qt. Use the open() call that takes a password as parameter to avoid this behavior.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlDatabase.Port">
            <summary>
            <para>Returns the connection's port number. The value is undefined if the port number has not been set.</para>
            <para>Sets the connection's port number to port. To have effect, the port number must be set before the connection is opened. Alternatively, you can close() the connection, set the port number, and call open() again..</para>
            <para>There is no default value.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlDatabase.UserName">
            <summary>
            <para>Returns the connection's user name; it may be empty.</para>
            <para>Sets the connection's user name to name. To have effect, the user name must be set before the connection is opened. Alternatively, you can close() the connection, set the user name, and call open() again.</para>
            <para>There is no default value.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlDriver">
            <summary>
            The QSqlDriver class is an abstract base class for accessing specific SQL databases.
            </summary>
            <remarks>
            <para></para>
            <para>This class should not be used directly. Use QSqlDatabase instead.</para>
            <para>If you want to create your own SQL drivers, you can subclass this class and reimplement its pure virtual functions and those virtual functions that you need. See How to Write Your Own Database Driver for more information.</para>
            <para></para>
            <para>See also QSqlDatabase and QSqlResult.</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlDriver.#ctor(QtCore.QObject)">
            <summary>
            <para>Constructs a new driver with the given parent.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.BeginTransaction">
            <summary>
            <para>This function is called to begin a transaction. If successful, return true, otherwise return false. The default implementation does nothing and returns false.</para>
            <para>See also commitTransaction() and rollbackTransaction().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.Close">
            <summary>
            <para>Derived classes must reimplement this pure virtual function in order to close the database connection. Return true on success, false on failure.</para>
            <para>See also open() and setOpen().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.CommitTransaction">
            <summary>
            <para>This function is called to commit a transaction. If successful, return true, otherwise return false. The default implementation does nothing and returns false.</para>
            <para>See also beginTransaction() and rollbackTransaction().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.CreateResult">
            <summary>
            <para>Creates an empty SQL result on the database. Derived classes must reimplement this function and return a QSqlResult object appropriate for their database to the caller.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.EscapeIdentifier(System.String,QtSql.QSqlDriver.IdentifierType)">
            <summary>
            <para>Returns the identifier escaped according to the database rules. identifier can either be a table name or field name, dependent on type.</para>
            <para>The default implementation does nothing.</para>
            <para>See also isIdentifierEscaped().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.FormatValue(QtSql.QSqlField,System.Boolean)">
            <summary>
            <para>Returns a string representation of the field value for the database. This is used, for example, when constructing INSERT and UPDATE statements.</para>
            <para>The default implementation returns the value formatted as a string according to the following rules:</para>
            <para></para>
            <para>If field is character data, the value is returned enclosed in single quotation marks, which is appropriate for many SQL databases. Any embedded single-quote characters are escaped (replaced with two single-quote characters). If trimStrings is true (the default is false), all trailing whitespace is trimmed from the field.</para>
            <para>If field is date/time data, the value is formatted in ISO format and enclosed in single quotation marks. If the date/time data is invalid, &quot;NULL&quot; is returned.</para>
            <para>If field is bytearray data, and the driver can edit binary fields, the value is formatted as a hexadecimal string.</para>
            <para>For any other field type, toString() is called on its value and the result of this is returned.</para>
            <para></para>
            <para>See also QVariant::toString().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.Handle">
            <summary>
            <para>Returns the low-level database handle wrapped in a QVariant or an invalid variant if there is no handle.</para>
            <para>Warning: Use this with uttermost care and only if you know what you're doing.</para>
            <para>Warning: The handle returned here can become a stale pointer if the connection is modified (for example, if you close the connection).</para>
            <para>Warning: The handle can be NULL if the connection is not open yet.</para>
            <para>The handle returned here is database-dependent, you should query the type name of the variant before accessing it.</para>
            <para>This example retrieves the handle for a connection to sqlite:</para>
            <para> QSqlDatabase db = ...;</para>
            <para> QVariant v = db.driver()-&gt;handle();</para>
            <para> if (v.isValid() &amp;&amp; qstrcmp(v.typeName(), &quot;sqlite3*&quot;) == 0) {</para>
            <para>     // v.data() returns a pointer to the handle</para>
            <para>     sqlite3 *handle = *static_cast&lt;sqlite3 **&gt;(v.data());</para>
            <para>     if (handle != 0) { // check that it is not NULL</para>
            <para>         ...</para>
            <para>     }</para>
            <para> }</para>
            <para>This snippet returns the handle for PostgreSQL or MySQL:</para>
            <para> if (qstrcmp(v.typeName(), &quot;PGconn*&quot;) == 0) {</para>
            <para>     PGconn *handle = *static_cast&lt;PGconn **&gt;(v.data());</para>
            <para>     if (handle != 0) ...</para>
            <para> }</para>
            <para></para>
            <para> if (qstrcmp(v.typeName(), &quot;MYSQL*&quot;) == 0) {</para>
            <para>     MYSQL *handle = *static_cast&lt;MYSQL **&gt;(v.data());</para>
            <para>     if (handle != 0) ...</para>
            <para> }</para>
            <para>See also QSqlResult::handle().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.HasFeature(QtSql.QSqlDriver.DriverFeature)">
            <summary>
            <para>Returns true if the driver supports feature feature; otherwise returns false.</para>
            <para>Note that some databases need to be open() before this can be determined.</para>
            <para>See also DriverFeature.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.IsIdentifierEscaped(System.String,QtSql.QSqlDriver.IdentifierType)">
            <summary>
            <para>Returns whether identifier is escaped according to the database rules. identifier can either be a table name or field name, dependent on type.</para>
            <para>Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide your own implementation in your QSqlDriver subclass, reimplement the isIdentifierEscapedImplementation() slot in your subclass instead. The isIdentifierEscapedFunction() will dynamically detect the slot and call it.</para>
            <para>See also stripDelimiters() and escapeIdentifier().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.IsIdentifierEscapedImplementation(System.String,QtSql.QSqlDriver.IdentifierType)">
            <summary>
            <para>This slot returns whether identifier is escaped according to the database rules. identifier can either be a table name or field name, dependent on type.</para>
            <para>Because of binary compatibility constraints, isIdentifierEscaped() function (introduced in Qt 4.5) is not virtual. Instead, isIdentifierEscaped() will dynamically detect and call this slot. The default implementation assumes the escape/delimiter character is a double quote. Reimplement this slot in your own QSqlDriver if your database engine uses a different delimiter character.</para>
            <para>This function was introduced in Qt 4.6.</para>
            <para>See also isIdentifierEscaped().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.IsOpen">
            <summary>
            <para>Returns true if the database connection is open; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.IsOpenError">
            <summary>
            <para>Returns true if the there was an error opening the database connection; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.LastError">
            <summary>
            <para>Returns a QSqlError object which contains information about the last error that occurred on the database.</para>
            <para>See also setLastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.OnNotification(System.String)">
            <summary>
            <para>This signal is emitted when the database posts an event notification that the driver subscribes to. name identifies the event notification.</para>
            <para>This function was introduced in Qt 4.4.</para>
            <para>See also subscribeToNotification().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.Open(System.String,System.String,System.String,System.String,System.Int32,System.String)">
            <summary>
            <para>Derived classes must reimplement this pure virtual function to open a database connection on database db, using user name user, password password, host host, port port and connection options options.</para>
            <para>The function must return true on success and false on failure.</para>
            <para>See also setOpen().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.PrimaryIndex(System.String)">
            <summary>
            <para>Returns the primary index for table tableName. Returns an empty QSqlIndex if the table doesn't have a primary index. The default implementation returns an empty index.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.Record(System.String)">
            <summary>
            <para>Returns a QSqlRecord populated with the names of the fields in table tableName. If no such table exists, an empty record is returned. The default implementation returns an empty record.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.RollbackTransaction">
            <summary>
            <para>This function is called to rollback a transaction. If successful, return true, otherwise return false. The default implementation does nothing and returns false.</para>
            <para>See also beginTransaction() and commitTransaction().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.SetLastError(QtSql.QSqlError)">
            <summary>
            <para>This function is used to set the value of the last error, error, that occurred on the database.</para>
            <para>See also lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.SetOpen(System.Boolean)">
            <summary>
            <para>This function sets the open state of the database to open. Derived classes can use this function to report the status of open().</para>
            <para>See also open() and setOpenError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.SetOpenError(System.Boolean)">
            <summary>
            <para>This function sets the open error state of the database to error. Derived classes can use this function to report the status of open(). Note that if error is true the open state of the database is set to closed (i.e., isOpen() returns false).</para>
            <para>See also isOpenError(), open(), and setOpen().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.SqlStatement(QtSql.QSqlDriver.StatementType,System.String,QtSql.QSqlRecord,System.Boolean)">
            <summary>
            <para>Returns a SQL statement of type type for the table tableName with the values from rec. If preparedStatement is true, the string will contain placeholders instead of values.</para>
            <para>This method can be used to manipulate tables without having to worry about database-dependent SQL dialects. For non-prepared statements, the values will be properly escaped.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.StripDelimiters(System.String,QtSql.QSqlDriver.IdentifierType)">
            <summary>
            <para>Returns the identifier with the leading and trailing delimiters removed, identifier can either be a table name or field name, dependent on type. If identifier does not have leading and trailing delimiter characters, identifier is returned without modification.</para>
            <para>Warning: Because of binary compatibility constraints, this function is not virtual, If you want to provide your own implementation in your QSqlDriver subclass, reimplement the stripDelimitersImplementation() slot in your subclass instead. The stripDelimiters() function will dynamically detect the slot and call it.</para>
            <para>This function was introduced in Qt 4.5.</para>
            <para>See also isIdentifierEscaped().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.StripDelimitersImplementation(System.String,QtSql.QSqlDriver.IdentifierType)">
            <summary>
            <para>This slot returns identifier with the leading and trailing delimiters removed, identifier can either be a tablename or field name, dependent on type. If identifier does not have leading and trailing delimiter characters, identifier is returned without modification.</para>
            <para>Because of binary compatibility constraints, the stripDelimiters() function (introduced in Qt 4.5) is not virtual. Instead, stripDelimiters() will dynamically detect and call this slot. It generally unnecessary to reimplement this slot.</para>
            <para>This function was introduced in Qt 4.6.</para>
            <para>See also stripDelimiters().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.SubscribeToNotification(System.String)">
            <summary>
            <para>This function is called to subscribe to event notifications from the database. name identifies the event notification.</para>
            <para>If successful, return true, otherwise return false.</para>
            <para>The database must be open when this function is called. When the database is closed by calling close() all subscribed event notifications are automatically unsubscribed. Note that calling open() on an already open database may implicitly cause close() to be called, which will cause the driver to unsubscribe from all event notifications.</para>
            <para>When an event notification identified by name is posted by the database the notification() signal is emitted.</para>
            <para>Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide event notification support in your own QSqlDriver subclass, reimplement the subscribeToNotificationImplementation() slot in your subclass instead. The subscribeToNotification() function will dynamically detect the slot and call it.</para>
            <para>This function was introduced in Qt 4.4.</para>
            <para>See also unsubscribeFromNotification(), subscribedToNotifications(), and QSqlDriver::hasFeature().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.SubscribeToNotificationImplementation(System.String)">
            <summary>
            <para>This slot is called to subscribe to event notifications from the database. name identifies the event notification.</para>
            <para>If successful, return true, otherwise return false.</para>
            <para>The database must be open when this slot is called. When the database is closed by calling close() all subscribed event notifications are automatically unsubscribed. Note that calling open() on an already open database may implicitly cause close() to be called, which will cause the driver to unsubscribe from all event notifications.</para>
            <para>When an event notification identified by name is posted by the database the notification() signal is emitted.</para>
            <para>Reimplement this slot to provide your own QSqlDriver subclass with event notification support; because of binary compatibility constraints, the subscribeToNotification() function (introduced in Qt 4.4) is not virtual. Instead, subscribeToNotification() will dynamically detect and call this slot. The default implementation does nothing and returns false.</para>
            <para>This function was introduced in Qt 4.4.</para>
            <para>See also subscribeToNotification().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.SubscribedToNotifications">
            <summary>
            <para>Returns a list of the names of the event notifications that are currently subscribed to.</para>
            <para>Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide event notification support in your own QSqlDriver subclass, reimplement the subscribedToNotificationsImplementation() slot in your subclass instead. The subscribedToNotifications() function will dynamically detect the slot and call it.</para>
            <para>This function was introduced in Qt 4.4.</para>
            <para>See also subscribeToNotification() and unsubscribeFromNotification().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.SubscribedToNotificationsImplementation">
            <summary>
            <para>Returns a list of the names of the event notifications that are currently subscribed to.</para>
            <para>Reimplement this slot to provide your own QSqlDriver subclass with event notification support; because of binary compatibility constraints, the subscribedToNotifications() function (introduced in Qt 4.4) is not virtual. Instead, subscribedToNotifications() will dynamically detect and call this slot. The default implementation simply returns an empty QStringList.</para>
            <para>This function was introduced in Qt 4.4.</para>
            <para>See also subscribedToNotifications().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.Tables(QSql.TableType)">
            <summary>
            <para>Returns a list of the names of the tables in the database. The default implementation returns an empty list.</para>
            <para>The tableType argument describes what types of tables should be returned. Due to binary compatibility, the string contains the value of the enum QSql::TableTypes as text. An empty string should be treated as QSql::Tables for backward compatibility.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.UnsubscribeFromNotification(System.String)">
            <summary>
            <para>This function is called to unsubscribe from event notifications from the database. name identifies the event notification.</para>
            <para>If successful, return true, otherwise return false.</para>
            <para>The database must be open when this function is called. All subscribed event notifications are automatically unsubscribed from when the close() function is called.</para>
            <para>After calling this function the notification() signal will no longer be emitted when an event notification identified by name is posted by the database.</para>
            <para>Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide event notification support in your own QSqlDriver subclass, reimplement the unsubscribeFromNotificationImplementation() slot in your subclass instead. The unsubscribeFromNotification() function will dynamically detect the slot and call it.</para>
            <para>This function was introduced in Qt 4.4.</para>
            <para>See also subscribeToNotification() and subscribedToNotifications().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.UnsubscribeFromNotificationImplementation(System.String)">
            <summary>
            <para>This slot is called to unsubscribe from event notifications from the database. name identifies the event notification.</para>
            <para>If successful, return true, otherwise return false.</para>
            <para>The database must be open when this slot is called. All subscribed event notifications are automatically unsubscribed from when the close() function is called.</para>
            <para>After calling this slot the notification() signal will no longer be emitted when an event notification identified by name is posted by the database.</para>
            <para>Reimplement this slot to provide your own QSqlDriver subclass with event notification support; because of binary compatibility constraints, the unsubscribeFromNotification() function (introduced in Qt 4.4) is not virtual. Instead, unsubscribeFromNotification() will dynamically detect and call this slot. The default implementation does nothing and returns false.</para>
            <para>This function was introduced in Qt 4.4.</para>
            <para>See also unsubscribeFromNotification().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriver.Finalize">
            <summary>
            <para>Destroys the object and frees any allocated resources.</para>
            </summary>
        </member>
        <member name="E:QtSql.QSqlDriver.Notification">
            <summary>
            <para>This signal is emitted when the database posts an event notification that the driver subscribes to. name identifies the event notification.</para>
            <para>This function was introduced in Qt 4.4.</para>
            <para>See also subscribeToNotification().</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlDriver.NumericalPrecisionPolicy">
            <summary>
            <para>Returns the current default precision policy for the database connection.</para>
            <para>This function was introduced in Qt 4.6.</para>
            <para>Sets the default numerical precision policy used by queries created by this driver to precisionPolicy.</para>
            <para>Note: Setting the default precision policy to precisionPolicy doesn't affect any currently active queries.</para>
            <para>This function was introduced in Qt 4.6.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlDriver.DriverFeature">
            <summary>
            <para>This enum contains a list of features a driver might support. Use hasFeature() to query whether a feature is supported or not.</para>
            <para>More information about supported features can be found in the Qt SQL driver documentation.</para>
            <para>See also hasFeature().</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.BLOB">
            <summary>
            <para>Whether the driver supports Binary Large Object fields.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.BatchOperations">
            <summary>
            <para>Whether the driver supports batched operations, see QSqlQuery::execBatch()</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.EventNotifications">
            <summary>
            <para>Whether the driver supports database event notifications.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.FinishQuery">
            <summary>
            <para>Whether the driver can do any low-level resource cleanup when QSqlQuery::finish() is called.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.LastInsertId">
            <summary>
            <para>Whether the driver supports returning the Id of the last touched row.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.LowPrecisionNumbers">
            <summary>
            <para>Whether the driver allows fetching numerical values with low precision.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.MultipleResultSets">
            <summary>
            <para>Whether the driver can access multiple result sets returned from batched statements or stored procedures.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.NamedPlaceholders">
            <summary>
            <para>Whether the driver supports the use of named placeholders.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.PositionalPlaceholders">
            <summary>
            <para>Whether the driver supports the use of positional placeholders.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.PreparedQueries">
            <summary>
            <para>Whether the driver supports prepared query execution.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.QuerySize">
            <summary>
            <para>Whether the database is capable of reporting the size of a query. Note that some databases do not support returning the size (i.e. number of rows returned) of a query, in which case QSqlQuery::size() will return -1.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.SimpleLocking">
            <summary>
            <para>Whether the driver disallows a write lock on a table while other queries have a read lock on it.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.Transactions">
            <summary>
            <para>Whether the driver supports SQL transactions.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.DriverFeature.Unicode">
            <summary>
            <para>Whether the driver supports Unicode strings if the database server does.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlDriver.IdentifierType">
            <summary>
            <para>This enum contains a list of SQL identifier types.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.IdentifierType.FieldName">
            <summary>
            <para>A SQL field name</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.IdentifierType.TableName">
            <summary>
            <para>A SQL table name</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlDriver.StatementType">
            <summary>
            <para>This enum contains a list of SQL statement (or clause) types the driver can create.</para>
            <para>See also sqlStatement().</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.StatementType.DeleteStatement">
            <summary>
            <para>An SQL DELETE statement (e.g., DELETE FROM t).</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.StatementType.InsertStatement">
            <summary>
            <para>An SQL INSERT statement (e.g., INSERT INTO t (f) values (1)).</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.StatementType.SelectStatement">
            <summary>
            <para>An SQL SELECT statement (e.g., SELECT f FROM t).</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.StatementType.UpdateStatement">
            <summary>
            <para>An SQL UPDATE statement (e.g., UPDATE TABLE t set f = 1).</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlDriver.StatementType.WhereStatement">
            <summary>
            <para>An SQL WHERE statement (e.g., WHERE f = 5).</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlDriverCreatorBase">
            <summary>
            The QSqlDriverCreatorBase class is the base class for SQL driver factories.
            </summary>
            <remarks>
            <para></para>
            <para>Reimplement createObject() to return an instance of the specific QSqlDriver subclass that you want to provide.</para>
            <para>See QSqlDatabase::registerSqlDriver() for details.</para>
            <para></para>
            <para>See also QSqlDriverCreator.</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlDriverCreatorBase.CreateObject">
            <summary>
            <para>Reimplement this function to returns a new instance of a QSqlDriver subclass.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriverCreatorBase.Finalize">
            <summary>
            <para>Destroys the SQL driver creator object.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlDriverPlugin">
            <summary>
            The QSqlDriverPlugin class provides an abstract base for custom QSqlDriver plugins.
            </summary>
            <remarks>
            <para></para>
            <para>The SQL driver plugin is a simple plugin interface that makes it easy to create your own SQL driver plugins that can be loaded dynamically by Qt.</para>
            <para>Writing a SQL plugin is achieved by subclassing this base class, reimplementing the pure virtual functions keys() and create(), and exporting the class with the Q_EXPORT_PLUGIN2() macro. See the SQL plugins that come with Qt for example implementations (in the plugins/src/sqldrivers subdirectory of the source distribution).</para>
            <para></para>
            <para>See also How to Create Qt Plugins.</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlDriverPlugin.#ctor(QtCore.QObject)">
            <summary>
            <para>Constructs a SQL driver plugin and sets the parent to parent. This is invoked automatically by the Q_EXPORT_PLUGIN2() macro.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriverPlugin.Create(System.String)">
            <summary>
            <para>Creates and returns a QSqlDriver object for the driver called key. The driver key is usually the class name of the required driver. Keys are case sensitive.</para>
            <para>See also keys().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriverPlugin.Keys">
            <summary>
            <para>Returns the list of drivers (keys) this plugin supports.</para>
            <para>These keys are usually the class names of the custom drivers that are implemented in the plugin.</para>
            <para>See also create().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlDriverPlugin.Finalize">
            <summary>
            <para>Destroys the SQL driver plugin.</para>
            <para>You never have to call this explicitly. Qt destroys a plugin automatically when it is no longer used.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlError">
            <summary>
            The QSqlError class provides SQL database error information.
            </summary>
            <remarks>
            <para></para>
            <para>A QSqlError object can provide database-specific error data, including the driverText() and databaseText() messages (or both concatenated together as text()), and the error number() and type(). The functions all have setters so that you can create and return QSqlError objects from your own classes, for example from your own SQL drivers.</para>
            <para></para>
            <para>See also QSqlDatabase::lastError() and QSqlQuery::lastError().</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlError.#ctor(QtSql.QSqlError)">
            <summary>
            <para>Creates a copy of other.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlError.#ctor(System.String,System.String,QtSql.QSqlError.ErrorType,System.Int32)">
            <summary>
            <para>Constructs an error containing the driver error text driverText, the database-specific error text databaseText, the type type and the optional error number number.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlError.IsValid">
            <summary>
            <para>Returns true if an error is set, otherwise false.</para>
            <para>Example:</para>
            <para> QSqlQueryModel model;</para>
            <para> model.setQuery(&quot;select * from myTable&quot;);</para>
            <para> if (model.lastError().isValid())</para>
            <para>     qDebug() &lt;&lt; model.lastError();</para>
            <para>See also type().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlError.Text">
            <summary>
            <para>This is a convenience function that returns databaseText() and driverText() concatenated into a single string.</para>
            <para>See also driverText() and databaseText().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlError.Finalize">
            <summary>
            <para>Destroys the object and frees any allocated resources.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlError.DatabaseText">
            <summary>
            <para>Returns the text of the error as reported by the database. This may contain database-specific descriptions; it may be empty.</para>
            <para>Sets the database error text to the value of databaseText.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlError.DriverText">
            <summary>
            <para>Returns the text of the error as reported by the driver. This may contain database-specific descriptions. It may also be empty.</para>
            <para>Sets the driver error text to the value of driverText.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlError.Number">
            <summary>
            <para>Returns the database-specific error number, or -1 if it cannot be determined.</para>
            <para>Sets the database-specific error number to number.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlError.Type">
            <summary>
            <para>Returns the error type, or -1 if the type cannot be determined.</para>
            <para>Sets the error type to the value of type.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlError.ErrorType">
            <summary>
            <para>This enum type describes the context in which the error occurred, e.g., a connection error, a statement error, etc.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlError.ErrorType.ConnectionError">
            <summary>
            <para>Connection error.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlError.ErrorType.NoError">
            <summary>
            <para>No error occurred.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlError.ErrorType.StatementError">
            <summary>
            <para>SQL statement syntax error.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlError.ErrorType.TransactionError">
            <summary>
            <para>Transaction failed error.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlError.ErrorType.UnknownError">
            <summary>
            <para>Unknown error.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlField">
            <summary>
            The QSqlField class manipulates the fields in SQL database tables and views.
            </summary>
            <remarks>
            <para></para>
            <para>QSqlField represents the characteristics of a single column in a database table or view, such as the data type and column name. A field also contains the value of the database column, which can be viewed or changed.</para>
            <para>Field data values are stored as QVariants. Using an incompatible type is not permitted. For example:</para>
            <para>     QSqlField field(&amp;quot;age&amp;quot;, QVariant::Int);</para>
            <para>     field.setValue(QPixmap());  // WRONG</para>
            <para>However, the field will attempt to cast certain data types to the field data type where possible:</para>
            <para>     QSqlField field(&amp;quot;age&amp;quot;, QVariant::Int);</para>
            <para>     field.setValue(QString(&amp;quot;123&amp;quot;));  // casts QString to int</para>
            <para>QSqlField objects are rarely created explicitly in application code. They are usually accessed indirectly through QSqlRecords that already contain a list of fields. For example:</para>
            <para>     QSqlQuery query;</para>
            <para>     ...</para>
            <para>     QSqlRecord record = query.record();</para>
            <para>     QSqlField field = record.field(&amp;quot;country&amp;quot;);</para>
            <para>A QSqlField object can provide some meta-data about the field, for example, its name(), variant type(), length(), precision(), defaultValue(), typeID(), and its requiredStatus(), isGenerated() and isReadOnly(). The field's data can be checked to see if it isNull(), and its value() retrieved. When editing the data can be set with setValue() or set to NULL with clear().</para>
            <para></para>
            <para>See also QSqlRecord.</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlField.#ctor(QtSql.QSqlField)">
            <summary>
            <para>Constructs a copy of other.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.#ctor(System.String,QtCore.QVariant.Type)">
            <summary>
            <para>Constructs an empty field called fieldName of variant type type.</para>
            <para>See also setRequiredStatus(), setLength(), setPrecision(), setDefaultValue(), setGenerated(), and setReadOnly().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.Clear">
            <summary>
            <para>Clears the value of the field and sets it to NULL. If the field is read-only, nothing happens.</para>
            <para>See also setValue(), isReadOnly(), and requiredStatus().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.IsAutoValue">
            <summary>
            <para>Returns true if the value is auto-generated by the database, for example auto-increment primary key values.</para>
            <para>See also setAutoValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.IsGenerated">
            <summary>
            <para>Returns true if the field is generated; otherwise returns false.</para>
            <para>See also setGenerated(), type(), requiredStatus(), length(), precision(), and defaultValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.IsNull">
            <summary>
            <para>Returns true if the field's value is NULL; otherwise returns false.</para>
            <para>See also value().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.IsReadOnly">
            <summary>
            <para>Returns true if the field's value is read-only; otherwise returns false.</para>
            <para>See also setReadOnly(), type(), requiredStatus(), length(), precision(), defaultValue(), and isGenerated().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.IsValid">
            <summary>
            <para>Returns true if the field's variant type is valid; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.op_Inequality(QtSql.QSqlField,QtSql.QSqlField)">
            <summary>
            <para>Returns true if the field is unequal to other; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.op_Equality(QtSql.QSqlField,QtSql.QSqlField)">
            <summary>
            <para>Returns true if the field is equal to other; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.SetAutoValue(System.Boolean)">
            <summary>
            <para>Marks the field as an auto-generated value if autoVal is true.</para>
            <para>See also isAutoValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.SetGenerated(System.Boolean)">
            <summary>
            <para>Sets the generated state. If gen is false, no SQL will be generated for this field; otherwise, Qt classes such as QSqlQueryModel and QSqlTableModel will generate SQL for this field.</para>
            <para>See also isGenerated(), setType(), setRequiredStatus(), setLength(), setPrecision(), setDefaultValue(), and setReadOnly().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.SetReadOnly(System.Boolean)">
            <summary>
            <para>Sets the read only flag of the field's value to readOnly. A read-only field cannot have its value set with setValue() and cannot be cleared to NULL with clear().</para>
            <para>See also isReadOnly().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.SetRequired(System.Boolean)">
            <summary>
            <para>Sets the required status of this field to Required if required is true; otherwise sets it to Optional.</para>
            <para>See also setRequiredStatus() and requiredStatus().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlField.Finalize">
            <summary>
            <para>Destroys the object and frees any allocated resources.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlField.DefaultValue">
            <summary>
            <para>Returns the field's default value (which may be NULL).</para>
            <para>Sets the default value used for this field to value.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlField.Length">
            <summary>
            <para>Returns the field's length.</para>
            <para>If the returned value is negative, it means that the information is not available from the database.</para>
            <para>Sets the field's length to fieldLength. For strings this is the maximum number of characters the string can hold; the meaning varies for other types.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlField.Name">
            <summary>
            <para>Returns the name of the field.</para>
            <para>Sets the name of the field to name.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlField.Precision">
            <summary>
            <para>Returns the field's precision; this is only meaningful for numeric types.</para>
            <para>If the returned value is negative, it means that the information is not available from the database.</para>
            <para>Sets the field's precision. This only affects numeric fields.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlField.requiredStatus">
            <summary>
            <para>Returns true if this is a required field; otherwise returns false. An INSERT will fail if a required field does not have a value.</para>
            <para>Sets the required status of this field to required.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlField.Type">
            <summary>
            <para>Returns the field's type as stored in the database. Note that the actual value might have a different type, Numerical values that are too large to store in a long int or double are usually stored as strings to prevent precision loss.</para>
            <para>Set's the field's variant type to type.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlField.Value">
            <summary>
            <para>Returns the value of the field as a QVariant.</para>
            <para>Use isNull() to check if the field's value is NULL.</para>
            <para>Sets the value of the field to value. If the field is read-only (isReadOnly() returns true), nothing happens.</para>
            <para>If the data type of value differs from the field's current data type, an attempt is made to cast it to the proper type. This preserves the data type of the field in the case of assignment, e.g. a QString to an integer data type.</para>
            <para>To set the value to NULL, use clear().</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlField.RequiredStatus">
            <summary>
            <para>Specifies whether the field is required or optional.</para>
            <para>See also requiredStatus().</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlField.RequiredStatus.Optional">
            <summary>
            <para>The fields doesn't have to be specified when inserting records.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlField.RequiredStatus.Required">
            <summary>
            <para>The field must be specified when inserting records.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlField.RequiredStatus.Unknown">
            <summary>
            <para>The database driver couldn't determine whether the field is required or optional.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlIndex">
            <summary>
            The QSqlIndex class provides functions to manipulate and describe database indexes.
            </summary>
            <remarks>
            <para></para>
            <para>An index refers to a single table or view in a database. Information about the fields that comprise the index can be used to generate SQL statements.</para>
            </remarks>
        </member>
        <member name="T:QtSql.QSqlRecord">
            <summary>
            The QSqlRecord class encapsulates a database record.
            </summary>
            <remarks>
            <para></para>
            <para>The QSqlRecord class encapsulates the functionality and characteristics of a database record (usually a row in a table or view within the database). QSqlRecord supports adding and removing fields as well as setting and retrieving field values.</para>
            <para>The values of a record's fields' can be set by name or position with setValue(); if you want to set a field to null use setNull(). To find the position of a field by name use indexOf(), and to find the name of a field at a particular position use fieldName(). Use field() to retrieve a QSqlField object for a given field. Use contains() to see if the record contains a particular field name.</para>
            <para>When queries are generated to be executed on the database only those fields for which isGenerated() is true are included in the generated SQL.</para>
            <para>A record can have fields added with append() or insert(), replaced with replace(), and removed with remove(). All the fields can be removed with clear(). The number of fields is given by count(); all their values can be cleared (to null) using clearValues().</para>
            <para></para>
            <para>See also QSqlField and QSqlQuery::record().</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlRecord.#ctor">
            <summary>
            <para>Constructs an empty record.</para>
            <para>See also isEmpty(), append(), and insert().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.#ctor(QtSql.QSqlRecord)">
            <summary>
            <para>Constructs a copy of other.</para>
            <para>QSqlRecord is implicitly shared. This means you can make copies of a record in constant time.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Append(QtSql.QSqlField)">
            <summary>
            <para>Append a copy of field field to the end of the record.</para>
            <para>See also insert(), replace(), and remove().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Clear">
            <summary>
            <para>Removes all the record's fields.</para>
            <para>See also clearValues() and isEmpty().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.ClearValues">
            <summary>
            <para>Clears the value of all fields in the record and sets each field to null.</para>
            <para>See also setValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Contains(System.String)">
            <summary>
            <para>Returns true if there is a field in the record called name; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Count">
            <summary>
            <para>Returns the number of fields in the record.</para>
            <para>See also isEmpty().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Field(System.Int32)">
            <summary>
            <para>Returns the field at position index. If the index is out of range, function returns a default-constructed value.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Field(System.String)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Returns the field called name.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.FieldName(System.Int32)">
            <summary>
            <para>Returns the name of the field at position index. If the field does not exist, an empty string is returned.</para>
            <para>See also indexOf().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.IndexOf(System.String)">
            <summary>
            <para>Returns the position of the field called name within the record, or -1 if it cannot be found. Field names are not case-sensitive. If more than one field matches, the first one is returned.</para>
            <para>See also fieldName().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Insert(System.Int32,QtSql.QSqlField)">
            <summary>
            <para>Inserts the field field at position pos in the record.</para>
            <para>See also append(), replace(), and remove().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.IsEmpty">
            <summary>
            <para>Returns true if there are no fields in the record; otherwise returns false.</para>
            <para>See also append(), insert(), and clear().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.IsGenerated(System.Int32)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Returns true if the record has a field at position index and this field is to be generated (the default); otherwise returns false.</para>
            <para>See also setGenerated().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.IsGenerated(System.String)">
            <summary>
            <para>Returns true if the record has a field called name and this field is to be generated (the default); otherwise returns false.</para>
            <para>See also setGenerated().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.IsNull(System.Int32)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Returns true if the field index is null or if there is no field at position index; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.IsNull(System.String)">
            <summary>
            <para>Returns true if the field called name is null or if there is no field called name; otherwise returns false.</para>
            <para>See also setNull().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.op_Inequality(QtSql.QSqlRecord,QtSql.QSqlRecord)">
            <summary>
            <para>Returns true if this object is not identical to other; otherwise returns false.</para>
            <para>See also operator==().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.op_Equality(QtSql.QSqlRecord,QtSql.QSqlRecord)">
            <summary>
            <para>Returns true if this object is identical to other (i.e., has the same fields in the same order); otherwise returns false.</para>
            <para>See also operator!=().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Remove(System.Int32)">
            <summary>
            <para>Removes the field at position pos. If pos is out of range, nothing happens.</para>
            <para>See also append(), insert(), and replace().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Replace(System.Int32,QtSql.QSqlField)">
            <summary>
            <para>Replaces the field at position pos with the given field. If pos is out of range, nothing happens.</para>
            <para>See also append(), insert(), and remove().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.SetGenerated(System.String,System.Boolean)">
            <summary>
            <para>Sets the generated flag for the field called name to generated. If the field does not exist, nothing happens. Only fields that have generated set to true are included in the SQL that is generated by QSqlQueryModel for example.</para>
            <para>See also isGenerated().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.SetGenerated(System.Int32,System.Boolean)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Sets the generated flag for the field index to generated.</para>
            <para>See also isGenerated().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.SetNull(System.Int32)">
            <summary>
            <para>Sets the value of field index to null. If the field does not exist, nothing happens.</para>
            <para>See also isNull() and setValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.SetNull(System.String)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Sets the value of the field called name to null. If the field does not exist, nothing happens.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.SetValue(System.Int32,System.Object)">
            <summary>
            <para>Sets the value of the field at position index to val. If the field does not exist, nothing happens.</para>
            <para>See also value() and setNull().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.SetValue(System.String,System.Object)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Sets the value of the field called name to val. If the field does not exist, nothing happens.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Value(System.Int32)">
            <summary>
            <para>Returns the value of the field located at position index in the record. If index is out of bounds, an invalid QVariant is returned.</para>
            <para>See also setValue(), fieldName(), and isNull().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Value(System.String)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Returns the value of the field called name in the record. If field name does not exist an invalid variant is returned.</para>
            <para>See also indexOf().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRecord.Finalize">
            <summary>
            <para>Destroys the object and frees any allocated resources.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlIndex.#ctor(QtSql.QSqlIndex)">
            <summary>
            <para>Constructs a copy of other.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlIndex.#ctor(System.String,System.String)">
            <summary>
            <para>Constructs an empty index using the cursor name cursorname and index name name.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlIndex.Append(QtSql.QSqlField)">
            <summary>
            <para>Appends the field field to the list of indexed fields. The field is appended with an ascending sort order.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlIndex.Append(QtSql.QSqlField,System.Boolean)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Appends the field field to the list of indexed fields. The field is appended with an ascending sort order, unless desc is true.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlIndex.IsDescending(System.Int32)">
            <summary>
            <para>Returns true if field i in the index is sorted in descending order; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlIndex.SetDescending(System.Int32,System.Boolean)">
            <summary>
            <para>If desc is true, field i is sorted in descending order. Otherwise, field i is sorted in ascending order (the default). If the field does not exist, nothing happens.</para>
            <para>See also isDescending().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlIndex.Finalize">
            <summary>
            <para>Destroys the object and frees any allocated resources.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlIndex.CursorName">
            <summary>
            <para>Returns the name of the cursor which the index is associated with.</para>
            <para>Sets the name of the cursor that the index is associated with to cursorName.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlIndex.Name">
            <summary>
            <para>Returns the name of the index.</para>
            <para>Sets the name of the index to name.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlQuery">
            <summary>
            The QSqlQuery class provides a means of executing and manipulating SQL statements.
            </summary>
            <remarks>
            <para></para>
            <para>QSqlQuery encapsulates the functionality involved in creating, navigating and retrieving data from SQL queries which are executed on a QSqlDatabase. It can be used to execute DML (data manipulation language) statements, such as SELECT, INSERT, UPDATE and DELETE, as well as DDL (data definition language) statements, such as CREATE TABLE. It can also be used to execute database-specific commands which are not standard SQL (e.g. SET DATESTYLE=ISO for PostgreSQL).</para>
            <para>Successfully executed SQL statements set the query's state to active so that isActive() returns true. Otherwise the query's state is set to inactive. In either case, when executing a new SQL statement, the query is positioned on an invalid record. An active query must be navigated to a valid record (so that isValid() returns true) before values can be retrieved.</para>
            <para>For some databases, if an active query that is a SELECT statement exists when you call commit() or rollback(), the commit or rollback will fail. See isActive() for details.</para>
            <para>Navigating records is performed with the following functions:</para>
            <para></para>
            <para>next()</para>
            <para>previous()</para>
            <para>first()</para>
            <para>last()</para>
            <para>seek()</para>
            <para></para>
            <para>These functions allow the programmer to move forward, backward or arbitrarily through the records returned by the query. If you only need to move forward through the results (e.g., by using next()), you can use setForwardOnly(), which will save a significant amount of memory overhead and improve performance on some databases. Once an active query is positioned on a valid record, data can be retrieved using value(). All data is transferred from the SQL backend using QVariants.</para>
            <para>For example:</para>
            <para>     QSqlQuery query(&amp;quot;SELECT country FROM artist&amp;quot;);</para>
            <para>     while (query.next()) {</para>
            <para>         QString country = query.value(0).toString();</para>
            <para>         doSomething(country);</para>
            <para>     }</para>
            <para>To access the data returned by a query, use value(int). Each field in the data returned by a SELECT statement is accessed by passing the field's position in the statement, starting from 0. This makes using SELECT * queries inadvisable because the order of the fields returned is indeterminate.</para>
            <para>For the sake of efficiency, there are no functions to access a field by name (unless you use prepared queries with names, as explained below). To convert a field name into an index, use record().indexOf(), for example:</para>
            <para>     QSqlQuery query(&amp;quot;SELECT * FROM artist&amp;quot;);</para>
            <para>     int fieldNo = query.record().indexOf(&amp;quot;country&amp;quot;);</para>
            <para>     while (query.next()) {</para>
            <para>         QString country = query.value(fieldNo).toString();</para>
            <para>         doSomething(country);</para>
            <para>     }</para>
            <para>QSqlQuery supports prepared query execution and the binding of parameter values to placeholders. Some databases don't support these features, so for those, Qt emulates the required functionality. For example, the Oracle and ODBC drivers have proper prepared query support, and Qt makes use of it; but for databases that don't have this support, Qt implements the feature itself, e.g. by replacing placeholders with actual values when a query is executed. Use numRowsAffected() to find out how many rows were affected by a non-SELECT query, and size() to find how many were retrieved by a SELECT.</para>
            <para>Oracle databases identify placeholders by using a colon-name syntax, e.g :name. ODBC simply uses ? characters. Qt supports both syntaxes, with the restriction that you can't mix them in the same query.</para>
            <para>You can retrieve the values of all the fields in a single variable (a map) using boundValues().</para>
            <para></para>
            <para>Approaches to Binding Values</para>
            <para>Below we present the same example using each of the four different binding approaches, as well as one example of binding values to a stored procedure.</para>
            <para>Named binding using named placeholders:</para>
            <para>     QSqlQuery query;</para>
            <para>     query.prepare(&amp;quot;INSERT INTO person (id, forename, surname) &amp;quot;</para>
            <para>                   &amp;quot;VALUES (:id, :forename, :surname)&amp;quot;);</para>
            <para>     query.bindValue(&amp;quot;:id&amp;quot;, 1001);</para>
            <para>     query.bindValue(&amp;quot;:forename&amp;quot;, &amp;quot;Bart&amp;quot;);</para>
            <para>     query.bindValue(&amp;quot;:surname&amp;quot;, &amp;quot;Simpson&amp;quot;);</para>
            <para>     query.exec();</para>
            <para>Positional binding using named placeholders:</para>
            <para>     QSqlQuery query;</para>
            <para>     query.prepare(&amp;quot;INSERT INTO person (id, forename, surname) &amp;quot;</para>
            <para>                   &amp;quot;VALUES (:id, :forename, :surname)&amp;quot;);</para>
            <para>     query.bindValue(0, 1001);</para>
            <para>     query.bindValue(1, &amp;quot;Bart&amp;quot;);</para>
            <para>     query.bindValue(2, &amp;quot;Simpson&amp;quot;);</para>
            <para>     query.exec();</para>
            <para>Binding values using positional placeholders (version 1):</para>
            <para>     QSqlQuery query;</para>
            <para>     query.prepare(&amp;quot;INSERT INTO person (id, forename, surname) &amp;quot;</para>
            <para>                   &amp;quot;VALUES (?, ?, ?)&amp;quot;);</para>
            <para>     query.bindValue(0, 1001);</para>
            <para>     query.bindValue(1, &amp;quot;Bart&amp;quot;);</para>
            <para>     query.bindValue(2, &amp;quot;Simpson&amp;quot;);</para>
            <para>     query.exec();</para>
            <para>Binding values using positional placeholders (version 2):</para>
            <para>     QSqlQuery query;</para>
            <para>     query.prepare(&amp;quot;INSERT INTO person (id, forename, surname) &amp;quot;</para>
            <para>                   &amp;quot;VALUES (?, ?, ?)&amp;quot;);</para>
            <para>     query.addBindValue(1001);</para>
            <para>     query.addBindValue(&amp;quot;Bart&amp;quot;);</para>
            <para>     query.addBindValue(&amp;quot;Simpson&amp;quot;);</para>
            <para>     query.exec();</para>
            <para>Binding values to a stored procedure:</para>
            <para>This code calls a stored procedure called AsciiToInt(), passing it a character through its in parameter, and taking its result in the out parameter.</para>
            <para>     QSqlQuery query;</para>
            <para>     query.prepare(&amp;quot;CALL AsciiToInt(?, ?)&amp;quot;);</para>
            <para>     query.bindValue(0, &amp;quot;A&amp;quot;);</para>
            <para>     query.bindValue(1, 0, QSql::Out);</para>
            <para>     query.exec();</para>
            <para>     int i = query.boundValue(1).toInt(); // i is 65</para>
            <para>Note that unbound parameters will retain their values.</para>
            <para>Stored procedures that uses the return statement to return values, or return multiple result sets, are not fully supported. For specific details see SQL Database Drivers.</para>
            <para>Warning: You must load the SQL driver and open the connection before a QSqlQuery is created. Also, the connection must remain open while the query exists; otherwise, the behavior of QSqlQuery is undefined.</para>
            <para></para>
            <para>See also QSqlDatabase, QSqlQueryModel, QSqlTableModel, and QVariant.</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlQuery.#ctor(QtSql.QSqlResult)">
            <summary>
            <para>Constructs a QSqlQuery object which uses the QSqlResult result to communicate with a database.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.#ctor(QtSql.QSqlDatabase)">
            <summary>
            <para>Constructs a QSqlQuery object using the database db. If db is invalid, the application's default database will be used.</para>
            <para>See also QSqlDatabase.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.#ctor(QtSql.QSqlQuery)">
            <summary>
            <para>Constructs a copy of other.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.#ctor(System.String)">
            <summary>
            <para>Constructs a QSqlQuery object which uses the QSqlResult result to communicate with a database.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.#ctor(System.String,QtSql.QSqlDatabase)">
            <summary>
            <para>Constructs a QSqlQuery object which uses the QSqlResult result to communicate with a database.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.AddBindValue(System.Object,QSql.ParamTypeFlag)">
            <summary>
            <para>Adds the value val to the list of values when using positional value binding. The order of the addBindValue() calls determines which placeholder a value will be bound to in the prepared query. If paramType is QSql::Out or QSql::InOut, the placeholder will be overwritten with data from the database after the exec() call.</para>
            <para>To bind a NULL value, use a null QVariant; for example, use QVariant(QVariant::String) if you are binding a string.</para>
            <para>See also bindValue(), prepare(), exec(), boundValue(), and boundValues().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.At">
            <summary>
            <para>Returns the current internal position of the query. The first record is at position zero. If the position is invalid, the function returns QSql::BeforeFirstRow or QSql::AfterLastRow, which are special negative values.</para>
            <para>See also previous(), next(), first(), last(), seek(), isActive(), and isValid().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.BindValue(System.String,System.Object,QSql.ParamTypeFlag)">
            <summary>
            <para>Set the placeholder placeholder to be bound to value val in the prepared statement. Note that the placeholder mark (e.g :) must be included when specifying the placeholder name. If paramType is QSql::Out or QSql::InOut, the placeholder will be overwritten with data from the database after the exec() call. In this case, sufficient space must be pre-allocated to store the result into.</para>
            <para>To bind a NULL value, use a null QVariant; for example, use QVariant(QVariant::String) if you are binding a string.</para>
            <para>Values cannot be bound to multiple locations in the query, eg:</para>
            <para> INSERT INTO testtable (id, name, samename) VALUES (:id, :name, :name)</para>
            <para>Binding to name will bind to the first :name, but not the second.</para>
            <para>See also addBindValue(), prepare(), exec(), boundValue(), and boundValues().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.BindValue(System.Int32,System.Object,QSql.ParamTypeFlag)">
            <summary>
            <para>Set the placeholder placeholder to be bound to value val in the prepared statement. Note that the placeholder mark (e.g :) must be included when specifying the placeholder name. If paramType is QSql::Out or QSql::InOut, the placeholder will be overwritten with data from the database after the exec() call. In this case, sufficient space must be pre-allocated to store the result into.</para>
            <para>To bind a NULL value, use a null QVariant; for example, use QVariant(QVariant::String) if you are binding a string.</para>
            <para>Values cannot be bound to multiple locations in the query, eg:</para>
            <para> INSERT INTO testtable (id, name, samename) VALUES (:id, :name, :name)</para>
            <para>Binding to name will bind to the first :name, but not the second.</para>
            <para>See also addBindValue(), prepare(), exec(), boundValue(), and boundValues().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.BoundValue(System.String)">
            <summary>
            <para>Returns the value for the placeholder.</para>
            <para>See also boundValues(), bindValue(), and addBindValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.BoundValue(System.Int32)">
            <summary>
            <para>Returns the value for the placeholder at position pos.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.BoundValues">
            <summary>
            <para>Returns a map of the bound values.</para>
            <para>With named binding, the bound values can be examined in the following ways:</para>
            <para>     QMapIterator&lt;QString, QVariant&gt; i(query.boundValues());</para>
            <para>     while (i.hasNext()) {</para>
            <para>         i.next();</para>
            <para>         cout &lt;&lt; i.key().toAscii().data() &lt;&lt; &quot;: &quot;</para>
            <para>              &lt;&lt; i.value().toString().toAscii().data() &lt;&lt; endl;</para>
            <para>     }</para>
            <para>With positional binding, the code becomes:</para>
            <para>     QList&lt;QVariant&gt; list = query.boundValues().values();</para>
            <para>     for (int i = 0; i &lt; list.size(); ++i)</para>
            <para>         cout &lt;&lt; i &lt;&lt; &quot;: &quot; &lt;&lt; list.at(i).toString().toAscii().data() &lt;&lt; endl;</para>
            <para>See also boundValue(), bindValue(), and addBindValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Clear">
            <summary>
            <para>Clears the result set and releases any resources held by the query. Sets the query state to inactive. You should rarely if ever need to call this function.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Driver">
            <summary>
            <para>Returns the database driver associated with the query.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Exec">
            <summary>
            <para>Executes a previously prepared SQL query. Returns true if the query executed successfully; otherwise returns false.</para>
            <para>Note that the last error for this query is reset when exec() is called.</para>
            <para>See also prepare(), bindValue(), addBindValue(), boundValue(), and boundValues().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Exec(System.String)">
            <summary>
            <para>Executes the SQL in query. Returns true and sets the query state to active if the query was successful; otherwise returns false. The query string must use syntax appropriate for the SQL database being queried (for example, standard SQL).</para>
            <para>After the query is executed, the query is positioned on an invalid record and must be navigated to a valid record before data values can be retrieved (for example, using next()).</para>
            <para>Note that the last error for this query is reset when exec() is called.</para>
            <para>For SQLite, the query string can contain only one statement at a time. If more than one statements is give, the function returns false.</para>
            <para>Example:</para>
            <para>     QSqlQuery query;</para>
            <para>     query.exec(&quot;INSERT INTO employee (id, name, salary) &quot;</para>
            <para>                &quot;VALUES (1001, 'Thad Beaumont', 65000)&quot;);</para>
            <para>See also isActive(), isValid(), next(), previous(), first(), last(), and seek().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.ExecBatch(QtSql.QSqlQuery.BatchExecutionMode)">
            <summary>
            <para>Executes a previously prepared SQL query in a batch. All the bound parameters have to be lists of variants. If the database doesn't support batch executions, the driver will simulate it using conventional exec() calls.</para>
            <para>Returns true if the query is executed successfully; otherwise returns false.</para>
            <para>Example:</para>
            <para> QSqlQuery q;</para>
            <para> q.prepare(&quot;insert into myTable values (?, ?)&quot;);</para>
            <para></para>
            <para> QVariantList ints;</para>
            <para> ints &lt;&lt; 1 &lt;&lt; 2 &lt;&lt; 3 &lt;&lt; 4;</para>
            <para> q.addBindValue(ints);</para>
            <para></para>
            <para> QVariantList names;</para>
            <para> names &lt;&lt; &quot;Harald&quot; &lt;&lt; &quot;Boris&quot; &lt;&lt; &quot;Trond&quot; &lt;&lt; QVariant(QVariant::String);</para>
            <para> q.addBindValue(names);</para>
            <para></para>
            <para> if (!q.execBatch())</para>
            <para>     qDebug() &lt;&lt; q.lastError();</para>
            <para>The example above inserts four new rows into myTable:</para>
            <para> 1  Harald</para>
            <para> 2  Boris</para>
            <para> 3  Trond</para>
            <para> 4  NULL</para>
            <para>To bind NULL values, a null QVariant of the relevant type has to be added to the bound QVariantList; for example, QVariant(QVariant::String) should be used if you are using strings.</para>
            <para>Note: Every bound QVariantList must contain the same amount of variants.</para>
            <para>Note: The type of the QVariants in a list must not change. For example, you cannot mix integer and string variants within a QVariantList.</para>
            <para>The mode parameter indicates how the bound QVariantList will be interpreted. If mode is ValuesAsRows, every variant within the QVariantList will be interpreted as a value for a new row. ValuesAsColumns is a special case for the Oracle driver. In this mode, every entry within a QVariantList will be interpreted as array-value for an IN or OUT value within a stored procedure. Note that this will only work if the IN or OUT value is a table-type consisting of only one column of a basic type, for example TYPE myType IS TABLE OF VARCHAR(64) INDEX BY BINARY_INTEGER;</para>
            <para>This function was introduced in Qt 4.2.</para>
            <para>See also prepare(), bindValue(), and addBindValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.ExecutedQuery">
            <summary>
            <para>Returns the last query that was successfully executed.</para>
            <para>In most cases this function returns the same string as lastQuery(). If a prepared query with placeholders is executed on a DBMS that does not support it, the preparation of this query is emulated. The placeholders in the original query are replaced with their bound values to form a new query. This function returns the modified query. It is mostly useful for debugging purposes.</para>
            <para>See also lastQuery().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Finish">
            <summary>
            <para>Instruct the database driver that no more data will be fetched from this query until it is re-executed. There is normally no need to call this function, but it may be helpful in order to free resources such as locks or cursors if you intend to re-use the query at a later time.</para>
            <para>Sets the query to inactive. Bound values retain their values.</para>
            <para>This function was introduced in Qt 4.3.2.</para>
            <para>See also prepare(), exec(), and isActive().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.First">
            <summary>
            <para>Retrieves the first record in the result, if available, and positions the query on the retrieved record. Note that the result must be in the active state and isSelect() must return true before calling this function or it will do nothing and return false. Returns true if successful. If unsuccessful the query position is set to an invalid position and false is returned.</para>
            <para>See also next(), previous(), last(), seek(), at(), isActive(), and isValid().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.IsActive">
            <summary>
            <para>Returns true if the query is active. An active QSqlQuery is one that has been exec()'d successfully but not yet finished with. When you are finished with an active query, you can make make the query inactive by calling finish() or clear(), or you can delete the QSqlQuery instance.</para>
            <para>Note: Of particular interest is an active query that is a SELECT statement. For some databases that support transactions, an active query that is a SELECT statement can cause a commit() or a rollback() to fail, so before committing or rolling back, you should make your active SELECT statement query inactive using one of the ways listed above.</para>
            <para>See also isSelect().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.IsForwardOnly">
            <summary>
            <para>Returns true if you can only scroll forward through a result set; otherwise returns false.</para>
            <para>See also setForwardOnly() and next().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.IsNull(System.Int32)">
            <summary>
            <para>Returns true if the query is active and positioned on a valid record and the field is NULL; otherwise returns false. Note that for some drivers, isNull() will not return accurate information until after an attempt is made to retrieve data.</para>
            <para>See also isActive(), isValid(), and value().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.IsSelect">
            <summary>
            <para>Returns true if the current query is a SELECT statement; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.IsValid">
            <summary>
            <para>Returns true if the query is currently positioned on a valid record; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Last">
            <summary>
            <para>Retrieves the last record in the result, if available, and positions the query on the retrieved record. Note that the result must be in the active state and isSelect() must return true before calling this function or it will do nothing and return false. Returns true if successful. If unsuccessful the query position is set to an invalid position and false is returned.</para>
            <para>See also next(), previous(), first(), seek(), at(), isActive(), and isValid().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.LastError">
            <summary>
            <para>Returns error information about the last error (if any) that occurred with this query.</para>
            <para>See also QSqlError and QSqlDatabase::lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.LastInsertId">
            <summary>
            <para>Returns the object ID of the most recent inserted row if the database supports it. An invalid QVariant will be returned if the query did not insert any value or if the database does not report the id back. If more than one row was touched by the insert, the behavior is undefined.</para>
            <para>For MySQL databases the row's auto-increment field will be returned.</para>
            <para>Note: For this function to work in PSQL, the table table must contain OIDs, which may not have been created by default. Check the default_with_oids configuration variable to be sure.</para>
            <para>See also QSqlDriver::hasFeature().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.LastQuery">
            <summary>
            <para>Returns the text of the current query being used, or an empty string if there is no current query text.</para>
            <para>See also executedQuery().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Next">
            <summary>
            <para>Retrieves the next record in the result, if available, and positions the query on the retrieved record. Note that the result must be in the active state and isSelect() must return true before calling this function or it will do nothing and return false.</para>
            <para>The following rules apply:</para>
            <para></para>
            <para>If the result is currently located before the first record, e.g. immediately after a query is executed, an attempt is made to retrieve the first record.</para>
            <para>If the result is currently located after the last record, there is no change and false is returned.</para>
            <para>If the result is located somewhere in the middle, an attempt is made to retrieve the next record.</para>
            <para></para>
            <para>If the record could not be retrieved, the result is positioned after the last record and false is returned. If the record is successfully retrieved, true is returned.</para>
            <para>See also previous(), first(), last(), seek(), at(), isActive(), and isValid().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.NextResult">
            <summary>
            <para>Discards the current result set and navigates to the next if available.</para>
            <para>Some databases are capable of returning multiple result sets for stored procedures or SQL batches (a query strings that contains multiple statements). If multiple result sets are available after executing a query this function can be used to navigate to the next result set(s).</para>
            <para>If a new result set is available this function will return true. The query will be repositioned on an invalid record in the new result set and must be navigated to a valid record before data values can be retrieved. If a new result set isn't available the function returns false and the query is set to inactive. In any case the old result set will be discarded.</para>
            <para>When one of the statements is a non-select statement a count of affected rows may be available instead of a result set.</para>
            <para>Note that some databases, i.e. Microsoft SQL Server, requires non-scrollable cursors when working with multiple result sets. Some databases may execute all statements at once while others may delay the execution until the result set is actually accessed, and some databases may have restrictions on which statements are allowed to be used in a SQL batch.</para>
            <para>This function was introduced in Qt 4.4.</para>
            <para>See also QSqlDriver::hasFeature(), setForwardOnly(), next(), isSelect(), numRowsAffected(), isActive(), and lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.NumRowsAffected">
            <summary>
            <para>Returns the number of rows affected by the result's SQL statement, or -1 if it cannot be determined. Note that for SELECT statements, the value is undefined; use size() instead. If the query is not active, -1 is returned.</para>
            <para>See also size() and QSqlDriver::hasFeature().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Prepare(System.String)">
            <summary>
            <para>Prepares the SQL query query for execution. Returns true if the query is prepared successfully; otherwise returns false.</para>
            <para>The query may contain placeholders for binding values. Both Oracle style colon-name (e.g., :surname), and ODBC style (?) placeholders are supported; but they cannot be mixed in the same query. See the Detailed Description for examples.</para>
            <para>Portability note: Some databases choose to delay preparing a query until it is executed the first time. In this case, preparing a syntactically wrong query succeeds, but every consecutive exec() will fail.</para>
            <para>For SQLite, the query string can contain only one statement at a time. If more than one statements are give, the function returns false.</para>
            <para>Example:</para>
            <para>     QSqlQuery query;</para>
            <para>     query.prepare(&quot;INSERT INTO person (id, forename, surname) &quot;</para>
            <para>                   &quot;VALUES (:id, :forename, :surname)&quot;);</para>
            <para>     query.bindValue(&quot;:id&quot;, 1001);</para>
            <para>     query.bindValue(&quot;:forename&quot;, &quot;Bart&quot;);</para>
            <para>     query.bindValue(&quot;:surname&quot;, &quot;Simpson&quot;);</para>
            <para>     query.exec();</para>
            <para>See also exec(), bindValue(), and addBindValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Previous">
            <summary>
            <para>Retrieves the previous record in the result, if available, and positions the query on the retrieved record. Note that the result must be in the active state and isSelect() must return true before calling this function or it will do nothing and return false.</para>
            <para>The following rules apply:</para>
            <para></para>
            <para>If the result is currently located before the first record, there is no change and false is returned.</para>
            <para>If the result is currently located after the last record, an attempt is made to retrieve the last record.</para>
            <para>If the result is somewhere in the middle, an attempt is made to retrieve the previous record.</para>
            <para></para>
            <para>If the record could not be retrieved, the result is positioned before the first record and false is returned. If the record is successfully retrieved, true is returned.</para>
            <para>See also next(), first(), last(), seek(), at(), isActive(), and isValid().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Record">
            <summary>
            <para>Returns a QSqlRecord containing the field information for the current query. If the query points to a valid row (isValid() returns true), the record is populated with the row's values. An empty record is returned when there is no active query (isActive() returns false).</para>
            <para>To retrieve values from a query, value() should be used since its index-based lookup is faster.</para>
            <para>In the following example, a SELECT * FROM query is executed. Since the order of the columns is not defined, QSqlRecord::indexOf() is used to obtain the index of a column.</para>
            <para> QSqlQuery q(&quot;select * from employees&quot;);</para>
            <para> QSqlRecord rec = q.record();</para>
            <para></para>
            <para> qDebug() &lt;&lt; &quot;Number of columns: &quot; &lt;&lt; rec.count();</para>
            <para></para>
            <para> int nameCol = rec.indexOf(&quot;name&quot;); // index of the field &quot;name&quot;</para>
            <para> while (q.next())</para>
            <para>     qDebug() &lt;&lt; q.value(nameCol).toString(); // output all names</para>
            <para>See also value().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Result">
            <summary>
            <para>Returns the result associated with the query.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Seek(System.Int32,System.Boolean)">
            <summary>
            <para>Retrieves the record at position index, if available, and positions the query on the retrieved record. The first record is at position 0. Note that the query must be in an active state and isSelect() must return true before calling this function.</para>
            <para>If relative is false (the default), the following rules apply:</para>
            <para></para>
            <para>If index is negative, the result is positioned before the first record and false is returned.</para>
            <para>Otherwise, an attempt is made to move to the record at position index. If the record at position index could not be retrieved, the result is positioned after the last record and false is returned. If the record is successfully retrieved, true is returned.</para>
            <para></para>
            <para>If relative is true, the following rules apply:</para>
            <para></para>
            <para>If the result is currently positioned before the first record or on the first record, and index is negative, there is no change, and false is returned.</para>
            <para>If the result is currently located after the last record, and index is positive, there is no change, and false is returned.</para>
            <para>If the result is currently located somewhere in the middle, and the relative offset index moves the result below zero, the result is positioned before the first record and false is returned.</para>
            <para>Otherwise, an attempt is made to move to the record index records ahead of the current record (or index records behind the current record if index is negative). If the record at offset index could not be retrieved, the result is positioned after the last record if index &gt;= 0, (or before the first record if index is negative), and false is returned. If the record is successfully retrieved, true is returned.</para>
            <para></para>
            <para>See also next(), previous(), first(), last(), at(), isActive(), and isValid().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.SetForwardOnly(System.Boolean)">
            <summary>
            <para>Sets forward only mode to forward. If forward is true, only next() and seek() with positive values, are allowed for navigating the results.</para>
            <para>Forward only mode can be (depending on the driver) more memory efficient since results do not need to be cached. It will also improve performance on some databases. For this to be true, you must call setForwardOnly() before the query is prepared or executed. Note that the constructor that takes a query and a database may execute the query.</para>
            <para>Forward only mode is off by default.</para>
            <para>Setting forward only to false is a suggestion to the database engine, which has the final say on whether a result set is forward only or scrollable. isForwardOnly() will always return the correct status of the result set.</para>
            <para>Note: Calling setForwardOnly after execution of the query will result in unexpected results at best, and crashes at worst.</para>
            <para>See also isForwardOnly(), next(), seek(), and QSqlResult::setForwardOnly().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Size">
            <summary>
            <para>Returns the size of the result (number of rows returned), or -1 if the size cannot be determined or if the database does not support reporting information about query sizes. Note that for non-SELECT statements (isSelect() returns false), size() will return -1. If the query is not active (isActive() returns false), -1 is returned.</para>
            <para>To determine the number of rows affected by a non-SELECT statement, use numRowsAffected().</para>
            <para>See also isActive(), numRowsAffected(), and QSqlDriver::hasFeature().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Value(System.Int32)">
            <summary>
            <para>Returns the value of field index in the current record.</para>
            <para>The fields are numbered from left to right using the text of the SELECT statement, e.g. in</para>
            <para> SELECT forename, surname FROM people;</para>
            <para>field 0 is forename and field 1 is surname. Using SELECT * is not recommended because the order of the fields in the query is undefined.</para>
            <para>An invalid QVariant is returned if field index does not exist, if the query is inactive, or if the query is positioned on an invalid record.</para>
            <para>See also previous(), next(), first(), last(), seek(), isActive(), and isValid().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQuery.Finalize">
            <summary>
            <para>Destroys the object and frees any allocated resources.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlQuery.NumericalPrecisionPolicy">
            <summary>
            <para>Returns the current precision policy.</para>
            <para>Instruct the database driver to return numerical values with a precision specified by precisionPolicy.</para>
            <para>The Oracle driver, for example, can retrieve numerical values as strings to prevent the loss of precision. If high precision doesn't matter, use this method to increase execution speed by bypassing string conversions.</para>
            <para>Note: Drivers that don't support fetching numerical values with low precision will ignore the precision policy. You can use QSqlDriver::hasFeature() to find out whether a driver supports this feature.</para>
            <para>Note: Setting the precision policy doesn't affect the currently active query. Call exec(QString) or prepare() in order to activate the policy.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlQuery.BatchExecutionMode.ValuesAsColumns">
            <summary>
            <para>- Updates a single row. Treats every entry in a QVariantList as a single value of an array type.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlQuery.BatchExecutionMode.ValuesAsRows">
            <summary>
            <para>- Updates multiple rows. Treats every entry in a QVariantList as a value for updating the next row.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlQueryModel">
            <summary>
            The QSqlQueryModel class provides a read-only data model for SQL result sets.
            </summary>
            <remarks>
            <para></para>
            <para>QSqlQueryModel is a high-level interface for executing SQL statements and traversing the result set. It is built on top of the lower-level QSqlQuery and can be used to provide data to view classes such as QTableView. For example:</para>
            <para>     QSqlQueryModel *model = new QSqlQueryModel;</para>
            <para>     model-&amp;gt;setQuery(&amp;quot;SELECT name, salary FROM employee&amp;quot;);</para>
            <para>     model-&amp;gt;setHeaderData(0, Qt::Horizontal, tr(&amp;quot;Name&amp;quot;));</para>
            <para>     model-&amp;gt;setHeaderData(1, Qt::Horizontal, tr(&amp;quot;Salary&amp;quot;));</para>
            <para></para>
            <para>     QTableView *view = new QTableView;</para>
            <para>     view-&amp;gt;setModel(model);</para>
            <para>     view-&amp;gt;show();</para>
            <para>We set the model's query, then we set up the labels displayed in the view header.</para>
            <para>QSqlQueryModel can also be used to access a database programmatically, without binding it to a view:</para>
            <para>     QSqlQueryModel model;</para>
            <para>     model.setQuery(&amp;quot;SELECT * FROM employee&amp;quot;);</para>
            <para>     int salary = model.record(4).value(&amp;quot;salary&amp;quot;).toInt();</para>
            <para>The code snippet above extracts the salary field from record 4 in the result set of the query SELECT * from employee. Assuming that salary is column 2, we can rewrite the last line as follows:</para>
            <para>     int salary = model.data(model.index(4, 2)).toInt();</para>
            <para>The model is read-only by default. To make it read-write, you must subclass it and reimplement setData() and flags(). Another option is to use QSqlTableModel, which provides a read-write model based on a single database table.</para>
            <para>The sql/querymodel example illustrates how to use QSqlQueryModel to display the result of a query. It also shows how to subclass QSqlQueryModel to customize the contents of the data before showing it to the user, and how to create a read-write model based on QSqlQueryModel.</para>
            <para>If the database doesn't return the number of selected rows in a query, the model will fetch rows incrementally. See fetchMore() for more information.</para>
            <para></para>
            <para>See also QSqlTableModel, QSqlRelationalTableModel, QSqlQuery, Model/View Programming, and Query Model Example.</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlQueryModel.#ctor(QtCore.QObject)">
            <summary>
            <para>Creates an empty QSqlQueryModel with the given parent.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.CanFetchMore">
            <summary>
            <para>Reimplemented from QAbstractItemModel::canFetchMore().</para>
            <para>Returns true if it is possible to read more rows from the database. This only affects databases that don't report back the size of a query (see QSqlDriver::hasFeature()).</para>
            <para>parent should always be an invalid QModelIndex.</para>
            <para>This function was introduced in Qt 4.1.</para>
            <para>See also fetchMore().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.CanFetchMore(QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::canFetchMore().</para>
            <para>Returns true if it is possible to read more rows from the database. This only affects databases that don't report back the size of a query (see QSqlDriver::hasFeature()).</para>
            <para>parent should always be an invalid QModelIndex.</para>
            <para>This function was introduced in Qt 4.1.</para>
            <para>See also fetchMore().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.Clear">
            <summary>
            <para>Clears the model and releases any acquired resource.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.ColumnCount">
            <summary>
            <para>Reimplemented from QAbstractItemModel::columnCount().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.ColumnCount(QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::columnCount().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.Data(QtCore.QModelIndex,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::data().</para>
            <para>Returns the value for the specified item and role.</para>
            <para>If item is out of bounds or if an error occurred, an invalid QVariant is returned.</para>
            <para>See also lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.FetchMore">
            <summary>
            <para>Reimplemented from QAbstractItemModel::fetchMore().</para>
            <para>Fetches more rows from a database. This only affects databases that don't report back the size of a query (see QSqlDriver::hasFeature()).</para>
            <para>To force fetching of the entire result set, you can use the following:</para>
            <para> while (myModel-&gt;canFetchMore())</para>
            <para>     myModel-&gt;fetchMore();</para>
            <para>parent should always be an invalid QModelIndex.</para>
            <para>This function was introduced in Qt 4.1.</para>
            <para>See also canFetchMore().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.FetchMore(QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::fetchMore().</para>
            <para>Fetches more rows from a database. This only affects databases that don't report back the size of a query (see QSqlDriver::hasFeature()).</para>
            <para>To force fetching of the entire result set, you can use the following:</para>
            <para> while (myModel-&gt;canFetchMore())</para>
            <para>     myModel-&gt;fetchMore();</para>
            <para>parent should always be an invalid QModelIndex.</para>
            <para>This function was introduced in Qt 4.1.</para>
            <para>See also canFetchMore().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.HeaderData(System.Int32,QtCore.Qt.Orientation,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::headerData().</para>
            <para>Returns the header data for the given role in the section of the header with the specified orientation.</para>
            <para>See also setHeaderData().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.IndexInQuery(QtCore.QModelIndex)">
            <summary>
            <para>Returns the index of the value in the database result set for the given item in the model.</para>
            <para>The return value is identical to item if no columns or rows have been inserted, removed, or moved around.</para>
            <para>Returns an invalid model index if item is out of bounds or if item does not point to a value in the result set.</para>
            <para>See also QSqlTableModel::indexInQuery(), insertColumns(), and removeColumns().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.InsertColumns(System.Int32,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::insertColumns().</para>
            <para>Inserts count columns into the model at position column. The parent parameter must always be an invalid QModelIndex, since the model does not support parent-child relationships.</para>
            <para>Returns true if column is within bounds; otherwise returns false.</para>
            <para>By default, inserted columns are empty. To fill them with data, reimplement data() and handle any inserted column separately:</para>
            <para> QVariant MyModel::data(const QModelIndex &amp;item, int role) const</para>
            <para> {</para>
            <para>     if (item.column() == m_specialColumnNo) {</para>
            <para>         // handle column separately</para>
            <para>     }</para>
            <para>     return QSqlQueryModel::data(item, role);</para>
            <para> }</para>
            <para>See also removeColumns().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.InsertColumns(System.Int32,System.Int32,QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::insertColumns().</para>
            <para>Inserts count columns into the model at position column. The parent parameter must always be an invalid QModelIndex, since the model does not support parent-child relationships.</para>
            <para>Returns true if column is within bounds; otherwise returns false.</para>
            <para>By default, inserted columns are empty. To fill them with data, reimplement data() and handle any inserted column separately:</para>
            <para> QVariant MyModel::data(const QModelIndex &amp;item, int role) const</para>
            <para> {</para>
            <para>     if (item.column() == m_specialColumnNo) {</para>
            <para>         // handle column separately</para>
            <para>     }</para>
            <para>     return QSqlQueryModel::data(item, role);</para>
            <para> }</para>
            <para>See also removeColumns().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.LastError">
            <summary>
            <para>Returns information about the last error that occurred on the database.</para>
            <para>See also setLastError() and query().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.QueryChange">
            <summary>
            <para>This virtual function is called whenever the query changes. The default implementation does nothing.</para>
            <para>query() returns the new query.</para>
            <para>See also query() and setQuery().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.Record">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Returns an empty record containing information about the fields of the current query.</para>
            <para>If the model is not initialized, an empty record will be returned.</para>
            <para>See also QSqlRecord::isEmpty().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.Record(System.Int32)">
            <summary>
            <para>Returns the record containing information about the fields of the current query. If row is the index of a valid row, the record will be populated with values from that row.</para>
            <para>If the model is not initialized, an empty record will be returned.</para>
            <para>See also QSqlRecord::isEmpty().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.RemoveColumns(System.Int32,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::removeColumns().</para>
            <para>Removes count columns from the model starting from position column. The parent parameter must always be an invalid QModelIndex, since the model does not support parent-child relationships.</para>
            <para>Removing columns effectively hides them. It does not affect the underlying QSqlQuery.</para>
            <para>Returns true if the columns were removed; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.RemoveColumns(System.Int32,System.Int32,QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::removeColumns().</para>
            <para>Removes count columns from the model starting from position column. The parent parameter must always be an invalid QModelIndex, since the model does not support parent-child relationships.</para>
            <para>Removing columns effectively hides them. It does not affect the underlying QSqlQuery.</para>
            <para>Returns true if the columns were removed; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.RowCount">
            <summary>
            <para>Reimplemented from QAbstractItemModel::rowCount().</para>
            <para>If the database supports returning the size of a query (see QSqlDriver::hasFeature()), the number of rows of the current query is returned. Otherwise, returns the number of rows currently cached on the client.</para>
            <para>parent should always be an invalid QModelIndex.</para>
            <para>This function was introduced in Qt 4.1.</para>
            <para>See also canFetchMore() and QSqlDriver::hasFeature().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.RowCount(QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::rowCount().</para>
            <para>If the database supports returning the size of a query (see QSqlDriver::hasFeature()), the number of rows of the current query is returned. Otherwise, returns the number of rows currently cached on the client.</para>
            <para>parent should always be an invalid QModelIndex.</para>
            <para>This function was introduced in Qt 4.1.</para>
            <para>See also canFetchMore() and QSqlDriver::hasFeature().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.SetHeaderData(System.Int32,QtCore.Qt.Orientation,System.Object,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::setHeaderData().</para>
            <para>Sets the caption for a horizontal header for the specified role to value. This is useful if the model is used to display data in a view (e.g., QTableView).</para>
            <para>Returns true if orientation is Qt::Horizontal and the section refers to a valid section; otherwise returns false.</para>
            <para>Note that this function cannot be used to modify values in the database since the model is read-only.</para>
            <para>See also headerData() and data().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.SetLastError(QtSql.QSqlError)">
            <summary>
            <para>Protected function which allows derived classes to set the value of the last error that occurred on the database to error.</para>
            <para>See also lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.SetQuery(System.String)">
            <summary>
            <para>Resets the model and sets the data provider to be the given query. Note that the query must be active and must not be isForwardOnly().</para>
            <para>lastError() can be used to retrieve verbose information if there was an error setting the query.</para>
            <para>Note: Calling setQuery() will remove any inserted columns.</para>
            <para>See also query(), QSqlQuery::isActive(), QSqlQuery::setForwardOnly(), and lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.SetQuery(System.String,QtSql.QSqlDatabase)">
            <summary>
            <para>Resets the model and sets the data provider to be the given query. Note that the query must be active and must not be isForwardOnly().</para>
            <para>lastError() can be used to retrieve verbose information if there was an error setting the query.</para>
            <para>Note: Calling setQuery() will remove any inserted columns.</para>
            <para>See also query(), QSqlQuery::isActive(), QSqlQuery::setForwardOnly(), and lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlQueryModel.Finalize">
            <summary>
            <para>Destroys the object and frees any allocated resources.</para>
            <para>See also clear().</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlQueryModel.Query">
            <summary>
            <para>Returns the QSqlQuery associated with this model.</para>
            <para>Resets the model and sets the data provider to be the given query. Note that the query must be active and must not be isForwardOnly().</para>
            <para>lastError() can be used to retrieve verbose information if there was an error setting the query.</para>
            <para>Note: Calling setQuery() will remove any inserted columns.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlRelation">
            <summary>
            The QSqlRelation class stores information about an SQL foreign key.
            </summary>
            <remarks>
            <para></para>
            <para>QSqlRelation is a helper class for QSqlRelationalTableModel. See QSqlRelationalTableModel::setRelation() and QSqlRelationalTableModel::relation() for details.</para>
            <para></para>
            <para>See also QSqlRelationalTableModel, QSqlRelationalDelegate, and Relational Table Model Example.</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlRelation.#ctor">
            <summary>
            <para>Constructs an invalid QSqlRelation object.</para>
            <para>For such an object, the tableName(), indexColumn(), and displayColumn() functions return an empty string.</para>
            <para>See also isValid().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelation.#ctor(QtSql.QSqlRelation)">
            <summary>
            <para>Constructs an invalid QSqlRelation object.</para>
            <para>For such an object, the tableName(), indexColumn(), and displayColumn() functions return an empty string.</para>
            <para>See also isValid().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelation.#ctor(System.String,System.String,System.String)">
            <summary>
            <para>Constructs a QSqlRelation object, where tableName is the SQL table name to which a foreign key refers, indexColumn is the foreign key, and displayColumn is the field that should be presented to the user.</para>
            <para>See also tableName(), indexColumn(), and displayColumn().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelation.DisplayColumn">
            <summary>
            <para>Returns the column from table tableName() that should be presented to the user instead of a foreign key.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelation.IndexColumn">
            <summary>
            <para>Returns the index column from table tableName() to which a foreign key refers.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelation.IsValid">
            <summary>
            <para>Returns true if the QSqlRelation object is valid; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelation.TableName">
            <summary>
            <para>Returns the name of the table to which a foreign key refers.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlRelationalDelegate">
            <summary>
            The QSqlRelationalDelegate class provides a delegate that is used to display and edit data from a QSqlRelationalTableModel.
            </summary>
            <remarks>
            <para></para>
            <para>Unlike the default delegate, QSqlRelationalDelegate provides a combobox for fields that are foreign keys into other tables. To use the class, simply call QAbstractItemView::setItemDelegate() on the view with an instance of QSqlRelationalDelegate:</para>
            <para>     QTableView *view = new QTableView;</para>
            <para>     view-&amp;gt;setModel(model);</para>
            <para>     view-&amp;gt;setItemDelegate(new QSqlRelationalDelegate(view));</para>
            <para>The Relational Table Model example (shown below) illustrates how to use QSqlRelationalDelegate in conjunction with QSqlRelationalTableModel to provide tables with foreign key support.</para>
            <para></para>
            <para>See also QSqlRelationalTableModel and Model/View Programming.</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlRelationalDelegate.#ctor(QtCore.QObject)">
            <summary>
            <para>Constructs a QSqlRelationalDelegate object with the given parent.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalDelegate.CreateEditor(QtGui.QWidget,QtGui.QStyleOptionViewItem,QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemDelegate::createEditor().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalDelegate.SetEditorData(QtGui.QWidget,QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemDelegate::setEditorData().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalDelegate.SetModelData(QtGui.QWidget,QtCore.QAbstractItemModel,QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemDelegate::setModelData().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalDelegate.Finalize">
            <summary>
            <para>Destroys the QSqlRelationalDelegate object and frees any allocated resources.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlRelationalTableModel">
            <summary>
            The QSqlRelationalTableModel class provides an editable data model for a single database table, with foreign key support.
            </summary>
            <remarks>
            <para></para>
            <para>QSqlRelationalTableModel acts like QSqlTableModel, but allows columns to be set as foreign keys into other database tables.</para>
            <para></para>
            <para>	</para>
            <para></para>
            <para>The screenshot on the left shows a plain QSqlTableModel in a QTableView. Foreign keys (city and country) aren't resolved to human-readable values. The screenshot on the right shows a QSqlRelationalTableModel, with foreign keys resolved into human-readable text strings.</para>
            <para>The following code snippet shows how the QSqlRelationalTableModel was set up:</para>
            <para>     model-&amp;gt;setTable(&amp;quot;employee&amp;quot;);</para>
            <para></para>
            <para>     model-&amp;gt;setRelation(2, QSqlRelation(&amp;quot;city&amp;quot;, &amp;quot;id&amp;quot;, &amp;quot;name&amp;quot;));</para>
            <para>     model-&amp;gt;setRelation(3, QSqlRelation(&amp;quot;country&amp;quot;, &amp;quot;id&amp;quot;, &amp;quot;name&amp;quot;));</para>
            <para>The setRelation() function calls establish a relationship between two tables. The first call specifies that column 2 in table employee is a foreign key that maps with field id of table city, and that the view should present the city's name field to the user. The second call does something similar with column 3.</para>
            <para>If you use a read-write QSqlRelationalTableModel, you probably want to use QSqlRelationalDelegate on the view. Unlike the default delegate, QSqlRelationalDelegate provides a combobox for fields that are foreign keys into other tables. To use the class, simply call QAbstractItemView::setItemDelegate() on the view with an instance of QSqlRelationalDelegate:</para>
            <para>     QTableView *view = new QTableView;</para>
            <para>     view-&amp;gt;setModel(model);</para>
            <para>     view-&amp;gt;setItemDelegate(new QSqlRelationalDelegate(view));</para>
            <para>The sql/relationaltablemodel example illustrates how to use QSqlRelationalTableModel in conjunction with QSqlRelationalDelegate to provide tables with foreign key support.</para>
            <para>Notes:</para>
            <para></para>
            <para>The table must have a primary key declared.</para>
            <para>The table's primary key may not contain a relation to another table.</para>
            <para>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.</para>
            <para>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, so QSqlRelation::displayColumn() will return the original display column name, but QSqlRecord::fieldName() will return aliases.</para>
            <para>When using setData() the role should always be Qt::EditRole, and when using data() the role should always be Qt::DisplayRole.</para>
            <para></para>
            <para></para>
            <para>See also QSqlRelation, QSqlRelationalDelegate, and Relational Table Model Example.</para>
            </remarks>
        </member>
        <member name="T:QtSql.QSqlTableModel">
            <summary>
            The QSqlTableModel class provides an editable data model for a single database table.
            </summary>
            <remarks>
            <para></para>
            <para>QSqlTableModel is a high-level interface for reading and writing database records from a single table. It is build on top of the lower-level QSqlQuery and can be used to provide data to view classes such as QTableView. For example:</para>
            <para>     QSqlTableModel *model = new QSqlTableModel(parentObject, database);</para>
            <para>     model-&amp;gt;setTable(&amp;quot;employee&amp;quot;);</para>
            <para>     model-&amp;gt;setEditStrategy(QSqlTableModel::OnManualSubmit);</para>
            <para>     model-&amp;gt;select();</para>
            <para>     model-&amp;gt;setHeaderData(0, Qt::Horizontal, tr(&amp;quot;Name&amp;quot;));</para>
            <para>     model-&amp;gt;setHeaderData(1, Qt::Horizontal, tr(&amp;quot;Salary&amp;quot;));</para>
            <para></para>
            <para>     QTableView *view = new QTableView;</para>
            <para>     view-&amp;gt;setModel(model);</para>
            <para>     view-&amp;gt;hideColumn(0); // don't show the ID</para>
            <para>     view-&amp;gt;show();</para>
            <para>We set the SQL table's name and the edit strategy, then we set up the labels displayed in the view header. The edit strategy dictates when the changes done by the user in the view are actually applied to the database. The possible values are OnFieldChange, OnRowChange, and OnManualSubmit.</para>
            <para>QSqlTableModel can also be used to access a database programmatically, without binding it to a view:</para>
            <para>     QSqlQueryModel model;</para>
            <para>     model.setQuery(&amp;quot;SELECT * FROM employee&amp;quot;);</para>
            <para>     int salary = model.record(4).value(&amp;quot;salary&amp;quot;).toInt();</para>
            <para>The code snippet above extracts the salary field from record 4 in the result set of the query SELECT * from employee.</para>
            <para>It is possible to set filters using setFilter(), or modify the sort order using setSort(). At the end, you must call select() to populate the model with data.</para>
            <para>The sql/tablemodel example illustrates how to use QSqlTableModel as the data source for a QTableView.</para>
            <para>QSqlTableModel provides no direct support for foreign keys. Use the QSqlRelationalTableModel and QSqlRelationalDelegate if you want to resolve foreign keys.</para>
            <para></para>
            <para>See also QSqlRelationalTableModel, QSqlQuery, Model/View Programming, Table Model Example, and Cached Table Example.</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlTableModel.#ctor(QtCore.QObject)">
            <summary>
            <para>Creates an empty QSqlTableModel and sets the parent to parent and the database connection to db. If db is not valid, the default database connection will be used.</para>
            <para>The default edit strategy is OnRowChange.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.#ctor(QtCore.QObject,QtSql.QSqlDatabase)">
            <summary>
            <para>Creates an empty QSqlTableModel and sets the parent to parent and the database connection to db. If db is not valid, the default database connection will be used.</para>
            <para>The default edit strategy is OnRowChange.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.OnBeforeDelete(System.Int32)">
            <summary>
            <para>This signal is emitted by deleteRowFromTable() before the row is deleted from the currently active database table.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.OnBeforeInsert(QtSql.QSqlRecord)">
            <summary>
            <para>This signal is emitted by insertRowIntoTable() before a new row is inserted into the currently active database table. The values that are about to be inserted are stored in record and can be modified before they will be inserted.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.OnBeforeUpdate(System.Int32,QtSql.QSqlRecord)">
            <summary>
            <para>This signal is emitted by updateRowInTable() before the row is updated in the currently active database table with the values from record.</para>
            <para>Note that only values that are marked as generated will be updated. The generated flag can be set with QSqlRecord::setGenerated() and checked with QSqlRecord::isGenerated().</para>
            <para>See also QSqlRecord::isGenerated().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.Clear">
            <summary>
            <para>Reimplemented from QSqlQueryModel::clear().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.Data(QtCore.QModelIndex,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::data().</para>
            <para>See also setData().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.Database">
            <summary>
            <para>Returns a pointer to the used QSqlDatabase or 0 if no database was set.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.DeleteRowFromTable(System.Int32)">
            <summary>
            <para>Deletes the given row from the currently active database table.</para>
            <para>This is a low-level method that operates directly on the database and should not be called directly. Use removeRow() or removeRows() to delete values. The model will decide depending on its edit strategy when to modify the database.</para>
            <para>Returns true if the row was deleted; otherwise returns false.</para>
            <para>See also removeRow() and removeRows().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.FieldIndex(System.String)">
            <summary>
            <para>Returns the index of the field fieldName, or -1 if no corresponding field exists in the model.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.Flags(QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::flags().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.HeaderData(System.Int32,QtCore.Qt.Orientation,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::headerData().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.IndexInQuery(QtCore.QModelIndex)">
            <summary>
            <para>Returns the index of the value in the database result set for the given item in the model.</para>
            <para>The return value is identical to item if no columns or rows have been inserted, removed, or moved around.</para>
            <para>Returns an invalid model index if item is out of bounds or if item does not point to a value in the result set.</para>
            <para>See also QSqlQueryModel::indexInQuery().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.InsertRecord(System.Int32,QtSql.QSqlRecord)">
            <summary>
            <para>Inserts the record after row. If row is negative, the record will be appended to the end. Calls insertRows() and setRecord() internally.</para>
            <para>Returns true if the row could be inserted, otherwise false.</para>
            <para>See also insertRows() and removeRows().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.InsertRowIntoTable(QtSql.QSqlRecord)">
            <summary>
            <para>Inserts the values values into the currently active database table.</para>
            <para>This is a low-level method that operates directly on the database and should not be called directly. Use insertRow() and setData() to insert values. The model will decide depending on its edit strategy when to modify the database.</para>
            <para>Returns true if the values could be inserted, otherwise false. Error information can be retrieved with lastError().</para>
            <para>See also lastError(), insertRow(), and insertRows().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.InsertRows(System.Int32,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::insertRows().</para>
            <para>Inserts count empty rows at position row. Note that parent must be invalid, since this model does not support parent-child relations.</para>
            <para>Only one row at a time can be inserted when using the OnFieldChange or OnRowChange update strategies.</para>
            <para>The primeInsert() signal will be emitted for each new row. Connect to it if you want to initialize the new row with default values.</para>
            <para>Returns false if the parameters are out of bounds; otherwise returns true.</para>
            <para>See also primeInsert() and insertRecord().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.InsertRows(System.Int32,System.Int32,QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::insertRows().</para>
            <para>Inserts count empty rows at position row. Note that parent must be invalid, since this model does not support parent-child relations.</para>
            <para>Only one row at a time can be inserted when using the OnFieldChange or OnRowChange update strategies.</para>
            <para>The primeInsert() signal will be emitted for each new row. Connect to it if you want to initialize the new row with default values.</para>
            <para>Returns false if the parameters are out of bounds; otherwise returns true.</para>
            <para>See also primeInsert() and insertRecord().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.IsDirty(QtCore.QModelIndex)">
            <summary>
            <para>Returns true if the value at the index index is dirty, otherwise false. Dirty values are values that were modified in the model but not yet written into the database.</para>
            <para>If index is invalid or points to a non-existing row, false is returned.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.OrderByClause">
            <summary>
            <para>Returns an SQL ORDER BY clause based on the currently set sort order.</para>
            <para>See also setSort() and selectStatement().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.PrimaryKey">
            <summary>
            <para>Returns the primary key for the current table, or an empty QSqlIndex if the table is not set or has no primary key.</para>
            <para>See also setTable(), setPrimaryKey(), and QSqlDatabase::primaryIndex().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.OnPrimeInsert(System.Int32,QtSql.QSqlRecord)">
            <summary>
            <para>This signal is emitted by insertRows(), when an insertion is initiated in the given row of the currently active database table. The record parameter can be written to (since it is a reference), for example to populate some fields with default values.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.RemoveColumns(System.Int32,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::removeColumns().</para>
            <para>Removes count columns from the parent model, starting at index column.</para>
            <para>Returns if the columns were successfully removed; otherwise returns false.</para>
            <para>See also removeRows().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.RemoveColumns(System.Int32,System.Int32,QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::removeColumns().</para>
            <para>Removes count columns from the parent model, starting at index column.</para>
            <para>Returns if the columns were successfully removed; otherwise returns false.</para>
            <para>See also removeRows().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.RemoveRows(System.Int32,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::removeRows().</para>
            <para>Removes count rows starting at row. Since this model does not support hierarchical structures, parent must be an invalid model index.</para>
            <para>Emits the beforeDelete() signal before a row is deleted. When the edit strategy is OnManualSubmit signal emission is delayed until submitAll() is called.</para>
            <para>Returns true if all rows could be removed; otherwise returns false. Detailed error information can be retrieved using lastError().</para>
            <para>See also removeColumns() and insertRows().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.RemoveRows(System.Int32,System.Int32,QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::removeRows().</para>
            <para>Removes count rows starting at row. Since this model does not support hierarchical structures, parent must be an invalid model index.</para>
            <para>Emits the beforeDelete() signal before a row is deleted. When the edit strategy is OnManualSubmit signal emission is delayed until submitAll() is called.</para>
            <para>Returns true if all rows could be removed; otherwise returns false. Detailed error information can be retrieved using lastError().</para>
            <para>See also removeColumns() and insertRows().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.Revert">
            <summary>
            <para>Reimplemented from QAbstractItemModel::revert().</para>
            <para>This reimplemented slot is called by the item delegates when the user canceled editing the current row.</para>
            <para>Reverts the changes if the model's strategy is set to OnRowChange. Does nothing for the other edit strategies.</para>
            <para>Use revertAll() to revert all pending changes for the OnManualSubmit strategy or revertRow() to revert a specific row.</para>
            <para>See also submit(), submitAll(), revertRow(), and revertAll().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.RevertAll">
            <summary>
            <para>Reverts all pending changes.</para>
            <para>See also revert(), revertRow(), and submitAll().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.RevertRow(System.Int32)">
            <summary>
            <para>Reverts all changes for the specified row.</para>
            <para>See also revert(), revertAll(), submit(), and submitAll().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.RowCount">
            <summary>
            <para>Reimplemented from QAbstractItemModel::rowCount().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.RowCount(QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::rowCount().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.Select">
            <summary>
            <para>Populates the model with data from the table that was set via setTable(), using the specified filter and sort condition, and returns true if successful; otherwise returns false.</para>
            <para>Note: Calling select() will revert any unsubmitted changes and remove any inserted columns.</para>
            <para>See also setTable(), setFilter(), and selectStatement().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.SelectStatement">
            <summary>
            <para>Returns the SQL SELECT statement used internally to populate the model. The statement includes the filter and the ORDER BY clause.</para>
            <para>See also filter() and orderByClause().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.SetData(QtCore.QModelIndex,System.Object,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::setData().</para>
            <para>Sets the data for the item index for the role role to value. Depending on the edit strategy, the value might be applied to the database at once or cached in the model.</para>
            <para>Returns true if the value could be set or false on error, for example if index is out of bounds.</para>
            <para>See also editStrategy(), data(), submit(), submitAll(), and revertRow().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.SetPrimaryKey(QtSql.QSqlIndex)">
            <summary>
            <para>Protected method that allows subclasses to set the primary key to key.</para>
            <para>Normally, the primary index is set automatically whenever you call setTable().</para>
            <para>See also primaryKey() and QSqlDatabase::primaryIndex().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.SetQuery(QtSql.QSqlQuery)">
            <summary>
            <para>This function simply calls QSqlQueryModel::setQuery(query). You should normally not call it on a QSqlTableModel. Instead, use setTable(), setSort(), setFilter(), etc., to set up the query.</para>
            <para>See also selectStatement().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.SetRecord(System.Int32,QtSql.QSqlRecord)">
            <summary>
            <para>Sets the values at the specified row to the values of record. Returns true if all the values could be set; otherwise returns false.</para>
            <para>See also record().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.SetSort(System.Int32,QtCore.Qt.SortOrder)">
            <summary>
            <para>Sets the sort order for column to order. This does not affect the current data, to refresh the data using the new sort order, call select().</para>
            <para>See also sort(), select(), and orderByClause().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.SetTable(System.String)">
            <summary>
            <para>Sets the database table on which the model operates to tableName. Does not select data from the table, but fetches its field information.</para>
            <para>To populate the model with the table's data, call select().</para>
            <para>Error information can be retrieved with lastError().</para>
            <para>See also select(), setFilter(), and lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.Sort(System.Int32,QtCore.Qt.SortOrder)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::sort().</para>
            <para>Sorts the data by column with the sort order order. This will immediately select data, use setSort() to set a sort order without populating the model with data.</para>
            <para>See also setSort(), select(), and orderByClause().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.Submit">
            <summary>
            <para>Reimplemented from QAbstractItemModel::submit().</para>
            <para>This reimplemented slot is called by the item delegates when the user stopped editing the current row.</para>
            <para>Submits the currently edited row if the model's strategy is set to OnRowChange or OnFieldChange. Does nothing for the OnManualSubmit strategy.</para>
            <para>Use submitAll() to submit all pending changes for the OnManualSubmit strategy.</para>
            <para>Returns true on success; otherwise returns false. Use lastError() to query detailed error information.</para>
            <para>On success the model will be repopulated. Any views presenting it will lose their selections.</para>
            <para>See also revert(), revertRow(), submitAll(), revertAll(), and lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.SubmitAll">
            <summary>
            <para>Submits all pending changes and returns true on success. Returns false on error, detailed error information can be obtained with lastError().</para>
            <para>On success the model will be repopulated. Any views presenting it will lose their selections.</para>
            <para>Note: In OnManualSubmit mode, already submitted changes won't be cleared from the cache when submitAll() fails. This allows transactions to be rolled back and resubmitted again without losing data.</para>
            <para>See also revertAll() and lastError().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.TableName">
            <summary>
            <para>Returns the name of the currently selected table.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.UpdateRowInTable(System.Int32,QtSql.QSqlRecord)">
            <summary>
            <para>Updates the given row in the currently active database table with the specified values. Returns true if successful; otherwise returns false.</para>
            <para>This is a low-level method that operates directly on the database and should not be called directly. Use setData() to update values. The model will decide depending on its edit strategy when to modify the database.</para>
            <para>Note that only values that have the generated-flag set are updated. The generated-flag can be set with QSqlRecord::setGenerated() and tested with QSqlRecord::isGenerated().</para>
            <para>See also QSqlRecord::isGenerated() and setData().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlTableModel.Finalize">
            <summary>
            <para>Destroys the object and frees any allocated resources.</para>
            </summary>
        </member>
        <member name="E:QtSql.QSqlTableModel.PrimeInsert">
            <summary>
            <para>This signal is emitted by insertRows(), when an insertion is initiated in the given row of the currently active database table. The record parameter can be written to (since it is a reference), for example to populate some fields with default values.</para>
            </summary>
        </member>
        <member name="E:QtSql.QSqlTableModel.BeforeInsert">
            <summary>
            <para>This signal is emitted by insertRowIntoTable() before a new row is inserted into the currently active database table. The values that are about to be inserted are stored in record and can be modified before they will be inserted.</para>
            </summary>
        </member>
        <member name="E:QtSql.QSqlTableModel.BeforeUpdate">
            <summary>
            <para>This signal is emitted by updateRowInTable() before the row is updated in the currently active database table with the values from record.</para>
            <para>Note that only values that are marked as generated will be updated. The generated flag can be set with QSqlRecord::setGenerated() and checked with QSqlRecord::isGenerated().</para>
            <para>See also QSqlRecord::isGenerated().</para>
            </summary>
        </member>
        <member name="E:QtSql.QSqlTableModel.BeforeDelete">
            <summary>
            <para>This signal is emitted by deleteRowFromTable() before the row is deleted from the currently active database table.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlTableModel.editStrategy">
            <summary>
            <para>Returns the current edit strategy.</para>
            <para>Sets the strategy for editing values in the database to strategy.</para>
            <para>This will revert any pending changes.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlTableModel.Filter">
            <summary>
            <para>Returns the currently set filter.</para>
            <para>Sets the current filter to filter.</para>
            <para>The filter is a SQL WHERE clause without the keyword WHERE (for example, name='Josephine').</para>
            <para>If the model is already populated with data from a database, the model re-selects it with the new filter. Otherwise, the filter will be applied the next time select() is called.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlTableModel.EditStrategy">
            <summary>
            <para>This enum type describes which strategy to choose when editing values in the database.</para>
            <para>Note: To prevent inserting only partly initialized rows into the database, OnFieldChange will behave like OnRowChange for newly inserted rows.</para>
            <para>See also setEditStrategy().</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlTableModel.EditStrategy.OnFieldChange">
            <summary>
            <para>All changes to the model will be applied immediately to the database.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlTableModel.EditStrategy.OnManualSubmit">
            <summary>
            <para>All changes will be cached in the model until either submitAll() or revertAll() is called.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlTableModel.EditStrategy.OnRowChange">
            <summary>
            <para>Changes to a row will be applied when the user selects a different row.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.#ctor(QtCore.QObject)">
            <summary>
            <para>Creates an empty QSqlRelationalTableModel and sets the parent to parent and the database connection to db. If db is not valid, the default database connection will be used.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.#ctor(QtCore.QObject,QtSql.QSqlDatabase)">
            <summary>
            <para>Creates an empty QSqlRelationalTableModel and sets the parent to parent and the database connection to db. If db is not valid, the default database connection will be used.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.Clear">
            <summary>
            <para>Reimplemented from QSqlQueryModel::clear().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.Data(QtCore.QModelIndex,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::data().</para>
            <para>See also setData().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.InsertRowIntoTable(QtSql.QSqlRecord)">
            <summary>
            <para>Reimplemented from QSqlTableModel::insertRowIntoTable().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.OrderByClause">
            <summary>
            <para>Reimplemented from QSqlTableModel::orderByClause().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.Relation(System.Int32)">
            <summary>
            <para>Returns the relation for the column column, or an invalid relation if no relation is set.</para>
            <para>See also setRelation() and QSqlRelation::isValid().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.RelationModel(System.Int32)">
            <summary>
            <para>Returns a QSqlTableModel object for accessing the table for which column is a foreign key, or 0 if there is no relation for the given column.</para>
            <para>The returned object is owned by the QSqlRelationalTableModel.</para>
            <para>See also setRelation() and relation().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.RemoveColumns(System.Int32,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::removeColumns().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.RemoveColumns(System.Int32,System.Int32,QtCore.QModelIndex)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::removeColumns().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.RevertRow(System.Int32)">
            <summary>
            <para>Reimplemented from QSqlTableModel::revertRow().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.Select">
            <summary>
            <para>Reimplemented from QSqlTableModel::select().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.SelectStatement">
            <summary>
            <para>Reimplemented from QSqlTableModel::selectStatement().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.SetData(QtCore.QModelIndex,System.Object,System.Int32)">
            <summary>
            <para>Reimplemented from QAbstractItemModel::setData().</para>
            <para>Sets the data for the role in the item with the specified index to the value given. Depending on the edit strategy, the value might be applied to the database at once, or it may be cached in the model.</para>
            <para>Returns true if the value could be set, or false on error (for example, if index is out of bounds).</para>
            <para>For relational columns, value must be the index, not the display value. The index must also exist in the referenced table, otherwise the function returns false.</para>
            <para>See also editStrategy(), data(), submit(), and revertRow().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.SetJoinMode(QtSql.QSqlRelationalTableModel.JoinMode)">
            <summary>
            <para>Sets the SQL join mode to the value given by joinMode to show or hide rows with NULL foreign keys.</para>
            <para>In InnerJoin mode (the default) these rows will not be shown; use the LeftJoin mode if you want to show them.</para>
            <para>This function was introduced in Qt 4.8.</para>
            <para>See also QSqlRelationalTableModel::JoinMode.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.SetRelation(System.Int32,QtSql.QSqlRelation)">
            <summary>
            <para>Lets the specified column be a foreign index specified by relation.</para>
            <para>Example:</para>
            <para>     model-&gt;setTable(&quot;employee&quot;);</para>
            <para></para>
            <para>     model-&gt;setRelation(2, QSqlRelation(&quot;city&quot;, &quot;id&quot;, &quot;name&quot;));</para>
            <para>The setRelation() call specifies that column 2 in table employee is a foreign key that maps with field id of table city, and that the view should present the city's name field to the user.</para>
            <para>Note: The table's primary key may not contain a relation to another table.</para>
            <para>See also relation().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.SetTable(System.String)">
            <summary>
            <para>Reimplemented from QSqlTableModel::setTable().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.UpdateRowInTable(System.Int32,QtSql.QSqlRecord)">
            <summary>
            <para>Reimplemented from QSqlTableModel::updateRowInTable().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlRelationalTableModel.Finalize">
            <summary>
            <para>Destroys the object and frees any allocated resources.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlRelationalTableModel.JoinMode">
            <summary>
            <para>This enum specifies the type of mode to use when joining two tables.</para>
            <para>This enum was introduced or modified in Qt 4.8.</para>
            <para>See also QSqlRelationalTableModel::setJoinMode().</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlRelationalTableModel.JoinMode.InnerJoin">
            <summary>
            <para>Inner join mode, return rows when there is at least one match in both tables.</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlRelationalTableModel.JoinMode.LeftJoin">
            <summary>
            <para>Left join mode, returns all rows from the left table (table_name1), even if there are no matches in the right table (table_name2).</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlResult">
            <summary>
            The QSqlResult class provides an abstract interface for accessing data from specific SQL databases.
            </summary>
            <remarks>
            <para></para>
            <para>Normally, you would use QSqlQuery instead of QSqlResult, since QSqlQuery provides a generic wrapper for database-specific implementations of QSqlResult.</para>
            <para>If you are implementing your own SQL driver (by subclassing QSqlDriver), you will need to provide your own QSqlResult subclass that implements all the pure virtual functions and other virtual functions that you need.</para>
            <para></para>
            <para>See also QSqlDriver.</para>
            </remarks>
        </member>
        <member name="M:QtSql.QSqlResult.#ctor(QtSql.QSqlDriver)">
            <summary>
            <para>Creates a QSqlResult using database driver db. The object is initialized to an inactive state.</para>
            <para>See also isActive() and driver().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.AddBindValue(System.Object,QSql.ParamTypeFlag)">
            <summary>
            <para>Binds the value val of parameter type paramType to the next available position in the current record (row).</para>
            <para>See also bindValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.BindValue(System.Int32,System.Object,QSql.ParamTypeFlag)">
            <summary>
            <para>Binds the value val of parameter type paramType to position index in the current record (row).</para>
            <para>See also addBindValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.BindValue(System.String,System.Object,QSql.ParamTypeFlag)">
            <summary>
            <para>Binds the value val of parameter type paramType to position index in the current record (row).</para>
            <para>See also addBindValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.BindValueType(System.String)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Returns the parameter type for the value bound with the given placeholder name.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.BindValueType(System.Int32)">
            <summary>
            <para>Returns the parameter type for the value bound at position index.</para>
            <para>See also boundValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.bindingSyntax">
            <summary>
            <para>Returns the binding syntax used by prepared queries.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.BoundValue(System.String)">
            <summary>
            <para>This is an overloaded function.</para>
            <para>Returns the value bound by the given placeholder name in the current record (row).</para>
            <para>See also bindValueType().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.BoundValue(System.Int32)">
            <summary>
            <para>Returns the value bound at position index in the current record (row).</para>
            <para>See also bindValue() and boundValues().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.BoundValueCount">
            <summary>
            <para>Returns the number of bound values in the result.</para>
            <para>See also boundValues().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.BoundValueName(System.Int32)">
            <summary>
            <para>Returns the name of the bound value at position index in the current record (row).</para>
            <para>See also boundValue().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.BoundValues">
            <summary>
            <para>Returns a vector of the result's bound values for the current record (row).</para>
            <para>See also boundValueCount().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.Clear">
            <summary>
            <para>Clears the entire result set and releases any associated resources.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.Data(System.Int32)">
            <summary>
            <para>Returns the data for field index in the current row as a QVariant. This function is only called if the result is in an active state and is positioned on a valid record and index is non-negative. Derived classes must reimplement this function and return the value of field index, or QVariant() if it cannot be determined.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.Driver">
            <summary>
            <para>Returns the driver associated with the result. This is the object that was passed to the constructor.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.Exec">
            <summary>
            <para>Executes the query, returning true if successful; otherwise returns false.</para>
            <para>See also prepare().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.ExecutedQuery">
            <summary>
            <para>Returns the query that was actually executed. This may differ from the query that was passed, for example if bound values were used with a prepared query and the underlying database doesn't support prepared queries.</para>
            <para>See also exec() and setQuery().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.Fetch(System.Int32)">
            <summary>
            <para>Positions the result to an arbitrary (zero-based) row index.</para>
            <para>This function is only called if the result is in an active state. Derived classes must reimplement this function and position the result to the row index, and call setAt() with an appropriate value. Return true to indicate success, or false to signify failure.</para>
            <para>See also isActive(), fetchFirst(), fetchLast(), fetchNext(), and fetchPrevious().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.FetchFirst">
            <summary>
            <para>Positions the result to the first record (row 0) in the result.</para>
            <para>This function is only called if the result is in an active state. Derived classes must reimplement this function and position the result to the first record, and call setAt() with an appropriate value. Return true to indicate success, or false to signify failure.</para>
            <para>See also fetch() and fetchLast().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.FetchLast">
            <summary>
            <para>Positions the result to the last record (last row) in the result.</para>
            <para>This function is only called if the result is in an active state. Derived classes must reimplement this function and position the result to the last record, and call setAt() with an appropriate value. Return true to indicate success, or false to signify failure.</para>
            <para>See also fetch() and fetchFirst().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.FetchNext">
            <summary>
            <para>Positions the result to the next available record (row) in the result.</para>
            <para>This function is only called if the result is in an active state. The default implementation calls fetch() with the next index. Derived classes can reimplement this function and position the result to the next record in some other way, and call setAt() with an appropriate value. Return true to indicate success, or false to signify failure.</para>
            <para>See also fetch() and fetchPrevious().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.FetchPrevious">
            <summary>
            <para>Positions the result to the previous record (row) in the result.</para>
            <para>This function is only called if the result is in an active state. The default implementation calls fetch() with the previous index. Derived classes can reimplement this function and position the result to the next record in some other way, and call setAt() with an appropriate value. Return true to indicate success, or false to signify failure.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.Handle">
            <summary>
            <para>Returns the low-level database handle for this result set wrapped in a QVariant or an invalid QVariant if there is no handle.</para>
            <para>Warning: Use this with uttermost care and only if you know what you're doing.</para>
            <para>Warning: The handle returned here can become a stale pointer if the result is modified (for example, if you clear it).</para>
            <para>Warning: The handle can be NULL if the result was not executed yet.</para>
            <para>The handle returned here is database-dependent, you should query the type name of the variant before accessing it.</para>
            <para>This example retrieves the handle for a sqlite result:</para>
            <para> QSqlQuery query = ...</para>
            <para> QVariant v = query.result()-&gt;handle();</para>
            <para> if (v.isValid() &amp;&amp; qstrcmp(v.typeName(), &quot;sqlite3_stmt*&quot;)) {</para>
            <para>     // v.data() returns a pointer to the handle</para>
            <para>     sqlite3_stmt *handle = *static_cast&lt;sqlite3_stmt **&gt;(v.data());</para>
            <para>     if (handle != 0) { // check that it is not NULL</para>
            <para>         ...</para>
            <para>     }</para>
            <para> }</para>
            <para>This snippet returns the handle for PostgreSQL or MySQL:</para>
            <para> if (v.typeName() == &quot;PGresult*&quot;) {</para>
            <para>     PGresult *handle = *static_cast&lt;PGresult **&gt;(v.data());</para>
            <para>     if (handle != 0) ...</para>
            <para> }</para>
            <para></para>
            <para> if (v.typeName() == &quot;MYSQL_STMT*&quot;) {</para>
            <para>     MYSQL_STMT *handle = *static_cast&lt;MYSQL_STMT **&gt;(v.data());</para>
            <para>     if (handle != 0) ...</para>
            <para> }</para>
            <para>See also QSqlDriver::handle().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.HasOutValues">
            <summary>
            <para>Returns true if at least one of the query's bound values is a QSql::Out or a QSql::InOut; otherwise returns false.</para>
            <para>See also bindValueType().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.IsActive">
            <summary>
            <para>Returns true if the result has records to be retrieved; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.IsForwardOnly">
            <summary>
            <para>Returns true if you can only scroll forward through the result set; otherwise returns false.</para>
            <para>See also setForwardOnly().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.IsNull(System.Int32)">
            <summary>
            <para>Returns true if the field at position index in the current row is null; otherwise returns false.</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.IsSelect">
            <summary>
            <para>Returns true if the current result is from a SELECT statement; otherwise returns false.</para>
            <para>See also setSelect().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.IsValid">
            <summary>
            <para>Returns true if the result is positioned on a valid record (that is, the result is not positioned before the first or after the last record); otherwise returns false.</para>
            <para>See also at().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.LastInsertId">
            <summary>
            <para>Returns the object ID of the most recent inserted row if the database supports it. An invalid QVariant will be returned if the query did not insert any value or if the database does not report the id back. If more than one row was touched by the insert, the behavior is undefined.</para>
            <para>Note that for Oracle databases the row's ROWID will be returned, while for MySQL databases the row's auto-increment field will be returned.</para>
            <para>See also QSqlDriver::hasFeature().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.LastQuery">
            <summary>
            <para>Returns the current SQL query text, or an empty string if there isn't one.</para>
            <para>See also setQuery().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.NumRowsAffected">
            <summary>
            <para>Returns the number of rows affected by the last query executed, or -1 if it cannot be determined or if the query is a SELECT statement.</para>
            <para>See also size().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.Prepare(System.String)">
            <summary>
            <para>Prepares the given query for execution; the query will normally use placeholders so that it can be executed repeatedly. Returns true if the query is prepared successfully; otherwise returns false.</para>
            <para>See also exec().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.Record">
            <summary>
            <para>Returns the current record if the query is active; otherwise returns an empty QSqlRecord.</para>
            <para>The default implementation always returns an empty QSqlRecord.</para>
            <para>See also isActive().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.Reset(System.String)">
            <summary>
            <para>Sets the result to use the SQL statement query for subsequent data retrieval.</para>
            <para>Derived classes must reimplement this function and apply the query to the database. This function is only called after the result is set to an inactive state and is positioned before the first record of the new result. Derived classes should return true if the query was successful and ready to be used, or false otherwise.</para>
            <para>See also setQuery().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.SavePrepare(System.String)">
            <summary>
            <para>Prepares the given query, using the underlying database functionality where possible. Returns true if the query is prepared successfully; otherwise returns false.</para>
            <para>See also prepare().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.SetActive(System.Boolean)">
            <summary>
            <para>This function is provided for derived classes to set the internal active state to active.</para>
            <para>See also isActive().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.SetForwardOnly(System.Boolean)">
            <summary>
            <para>Sets forward only mode to forward. If forward is true, only fetchNext() is allowed for navigating the results. Forward only mode needs much less memory since results do not have to be cached. By default, this feature is disabled.</para>
            <para>Setting forward only to false is a suggestion to the database engine, which has the final say on whether a result set is forward only or scrollable. isForwardOnly() will always return the correct status of the result set.</para>
            <para>Note: Calling setForwardOnly after execution of the query will result in unexpected results at best, and crashes at worst.</para>
            <para>See also isForwardOnly(), fetchNext(), and QSqlQuery::setForwardOnly().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.SetQuery(System.String)">
            <summary>
            <para>Sets the current query for the result to query. You must call reset() to execute the query on the database.</para>
            <para>See also reset() and lastQuery().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.SetSelect(System.Boolean)">
            <summary>
            <para>This function is provided for derived classes to indicate whether or not the current statement is a SQL SELECT statement. The select parameter should be true if the statement is a SELECT statement; otherwise it should be false.</para>
            <para>See also isSelect().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.Size">
            <summary>
            <para>Returns the size of the SELECT result, or -1 if it cannot be determined or if the query is not a SELECT statement.</para>
            <para>See also numRowsAffected().</para>
            </summary>
        </member>
        <member name="M:QtSql.QSqlResult.Finalize">
            <summary>
            <para>Destroys the object and frees any allocated resources.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlResult.At">
            <summary>
            <para>Returns the current (zero-based) row position of the result. May return the special values QSql::BeforeFirstRow or QSql::AfterLastRow.</para>
            <para>This function is provided for derived classes to set the internal (zero-based) row position to index.</para>
            </summary>
        </member>
        <member name="P:QtSql.QSqlResult.LastError">
            <summary>
            <para>Returns the last error associated with the result.</para>
            <para>This function is provided for derived classes to set the last error to error.</para>
            </summary>
        </member>
        <member name="T:QtSql.QSqlResult.BindingSyntax">
            <summary>
            <para>This enum type specifies the different syntaxes for specifying placeholders in prepared queries.</para>
            <para>See also bindingSyntax().</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlResult.BindingSyntax.NamedBinding">
            <summary>
            <para>Use the Oracle-style syntax with named placeholders (e.g., &quot;:id&quot;)</para>
            </summary>
        </member>
        <member name="F:QtSql.QSqlResult.BindingSyntax.PositionalBinding">
            <summary>
            <para>Use the ODBC-style positional syntax, with &quot;?&quot; as placeholders.</para>
            </summary>
        </member>
        <member name="M:QtSql.IQSqlDriverSignals.Notification(System.String)">
            <summary>
            <para>This signal is emitted when the database posts an event notification that the driver subscribes to. name identifies the event notification.</para>
            <para>This function was introduced in Qt 4.4.</para>
            <para>See also subscribeToNotification().</para>
            </summary>
        </member>
        <member name="M:QtSql.IQSqlTableModelSignals.PrimeInsert(System.Int32,QtSql.QSqlRecord)">
            <summary>
            <para>This signal is emitted by insertRows(), when an insertion is initiated in the given row of the currently active database table. The record parameter can be written to (since it is a reference), for example to populate some fields with default values.</para>
            </summary>
        </member>
        <member name="M:QtSql.IQSqlTableModelSignals.BeforeInsert(QtSql.QSqlRecord)">
            <summary>
            <para>This signal is emitted by insertRowIntoTable() before a new row is inserted into the currently active database table. The values that are about to be inserted are stored in record and can be modified before they will be inserted.</para>
            </summary>
        </member>
        <member name="M:QtSql.IQSqlTableModelSignals.BeforeUpdate(System.Int32,QtSql.QSqlRecord)">
            <summary>
            <para>This signal is emitted by updateRowInTable() before the row is updated in the currently active database table with the values from record.</para>
            <para>Note that only values that are marked as generated will be updated. The generated flag can be set with QSqlRecord::setGenerated() and checked with QSqlRecord::isGenerated().</para>
            <para>See also QSqlRecord::isGenerated().</para>
            </summary>
        </member>
        <member name="M:QtSql.IQSqlTableModelSignals.BeforeDelete(System.Int32)">
            <summary>
            <para>This signal is emitted by deleteRowFromTable() before the row is deleted from the currently active database table.</para>
            </summary>
        </member>
    </members>
</doc>
