diff options
Diffstat (limited to 'src/sql/doc/snippets/sqldatabase')
-rw-r--r-- | src/sql/doc/snippets/sqldatabase/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/sql/doc/snippets/sqldatabase/sqldatabase.cpp | 6 | ||||
-rw-r--r-- | src/sql/doc/snippets/sqldatabase/sqldatabase_snippet.cpp | 256 |
3 files changed, 4 insertions, 260 deletions
diff --git a/src/sql/doc/snippets/sqldatabase/CMakeLists.txt b/src/sql/doc/snippets/sqldatabase/CMakeLists.txt index 2028cdac1d..5179c694d0 100644 --- a/src/sql/doc/snippets/sqldatabase/CMakeLists.txt +++ b/src/sql/doc/snippets/sqldatabase/CMakeLists.txt @@ -1,5 +1,5 @@ # Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: BSD-3-Clause +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause add_library(sqldatabase_snippets OBJECT sqldatabase.cpp diff --git a/src/sql/doc/snippets/sqldatabase/sqldatabase.cpp b/src/sql/doc/snippets/sqldatabase/sqldatabase.cpp index 933124e74d..5702116365 100644 --- a/src/sql/doc/snippets/sqldatabase/sqldatabase.cpp +++ b/src/sql/doc/snippets/sqldatabase/sqldatabase.cpp @@ -156,9 +156,9 @@ void QSqlQuery_snippets() { // examine with named or positional binding //! [14] - QVariantList list = query.boundValues(); - for (int i = 0; i < list.size(); ++i) - cout << i << ": " << list.at(i).toString().toUtf8().data() << "\n"; + const QVariantList list = query.boundValues(); + for (qsizetype i = 0; i < list.size(); ++i) + qDebug() << i << ":" << list.at(i).toString(); //! [14] } } diff --git a/src/sql/doc/snippets/sqldatabase/sqldatabase_snippet.cpp b/src/sql/doc/snippets/sqldatabase/sqldatabase_snippet.cpp index e81436a247..48382bfee9 100644 --- a/src/sql/doc/snippets/sqldatabase/sqldatabase_snippet.cpp +++ b/src/sql/doc/snippets/sqldatabase/sqldatabase_snippet.cpp @@ -17,17 +17,13 @@ //! [20] } -//! [21] QSqlQueryModel model; model.setQuery("SELECT name, salary FROM employee"); int salary = model.record(4).value("salary").toInt(); -//! [21] Q_UNUSED(salary); { -//! [22] int salary = model.data(model.index(4, 1)).toInt(); -//! [22] Q_UNUSED(salary); } @@ -47,7 +43,6 @@ public: int m_specialColumnNo; }; -//! [23] QVariant MyModel::data(const QModelIndex &item, int role) const { if (item.column() == m_specialColumnNo) { @@ -55,7 +50,6 @@ QVariant MyModel::data(const QModelIndex &item, int role) const } return QSqlQueryModel::data(item, role); } -//! [23] void QSqlTableModel_snippets() { @@ -72,258 +66,8 @@ void QSqlTableModel_snippets() view->hideColumn(0); // don't show the ID view->show(); //! [24] - - { -//! [25] - QSqlTableModel model; - model.setTable("employee"); - model.select(); - int salary = model.record(4).value("salary").toInt(); -//! [25] - } -} - -void sql_intro_snippets() -{ - { -//! [26] - QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); - db.setHostName("bigblue"); - db.setDatabaseName("flightdb"); - db.setUserName("acarlson"); - db.setPassword("1uTbSbAs"); - bool ok = db.open(); -//! [26] - Q_UNUSED(ok); - } - - { -//! [27] - QSqlDatabase firstDB = QSqlDatabase::addDatabase("QMYSQL", "first"); - QSqlDatabase secondDB = QSqlDatabase::addDatabase("QMYSQL", "second"); -//! [27] - } - - { -//! [28] - QSqlDatabase defaultDB = QSqlDatabase::database(); -//! [28] //! [29] - QSqlDatabase firstDB = QSqlDatabase::database("first"); -//! [29] //! [30] - QSqlDatabase secondDB = QSqlDatabase::database("second"); -//! [30] - } - - { - // SELECT1 -//! [31] - QSqlQuery query; - query.exec("SELECT name, salary FROM employee WHERE salary > 50000"); -//! [31] - -//! [32] - while (query.next()) { - QString name = query.value(0).toString(); - int salary = query.value(1).toInt(); - qDebug() << name << salary; - } -//! [32] - } - - { - // FEATURE -//! [33] - QSqlQuery query; - int numRows; - query.exec("SELECT name, salary FROM employee WHERE salary > 50000"); - - QSqlDatabase defaultDB = QSqlDatabase::database(); - if (defaultDB.driver()->hasFeature(QSqlDriver::QuerySize)) { - numRows = query.size(); - } else { - // this can be very slow - query.last(); - numRows = query.at() + 1; - } -//! [33] - } - - { - // INSERT1 -//! [34] - QSqlQuery query; - query.exec("INSERT INTO employee (id, name, salary) " - "VALUES (1001, 'Thad Beaumont', 65000)"); -//! [34] - } - - { - // NAMED BINDING -//! [35] - QSqlQuery query; - query.prepare("INSERT INTO employee (id, name, salary) " - "VALUES (:id, :name, :salary)"); - query.bindValue(":id", 1001); - query.bindValue(":name", "Thad Beaumont"); - query.bindValue(":salary", 65000); - query.exec(); -//! [35] - } - - { - // POSITIONAL BINDING -//! [36] - QSqlQuery query; - query.prepare("INSERT INTO employee (id, name, salary) " - "VALUES (?, ?, ?)"); - query.addBindValue(1001); - query.addBindValue("Thad Beaumont"); - query.addBindValue(65000); - query.exec(); -//! [36] - } - - { - // UPDATE1 -//! [37] - QSqlQuery query; - query.exec("UPDATE employee SET salary = 70000 WHERE id = 1003"); -//! [37] - } - - { - // DELETE1 -//! [38] - QSqlQuery query; - query.exec("DELETE FROM employee WHERE id = 1007"); -//! [38] - } - - { - // TRANSACTION -//! [39] - QSqlDatabase::database().transaction(); - QSqlQuery query; - query.exec("SELECT id FROM employee WHERE name = 'Torild Halvorsen'"); - if (query.next()) { - int employeeId = query.value(0).toInt(); - query.exec("INSERT INTO project (id, name, ownerid) " - "VALUES (201, 'Manhattan Project', " - + QString::number(employeeId) + ')'); - } - QSqlDatabase::database().commit(); -//! [39] - } - - { - // SQLQUERYMODEL1 -//! [40] - QSqlQueryModel model; - model.setQuery("SELECT * FROM employee"); - - for (int i = 0; i < model.rowCount(); ++i) { - int id = model.record(i).value("id").toInt(); - QString name = model.record(i).value("name").toString(); - qDebug() << id << name; - } -//! [40] - } - - { - // SQLTABLEMODEL1 -//! [41] - QSqlTableModel model; - model.setTable("employee"); - model.setFilter("salary > 50000"); - model.setSort(2, Qt::DescendingOrder); - model.select(); - - for (int i = 0; i < model.rowCount(); ++i) { - QString name = model.record(i).value("name").toString(); - int salary = model.record(i).value("salary").toInt(); - qDebug() << name << salary; - } -//! [41] - } - - { - // SQLTABLEMODEL2 - QSqlTableModel model; - model.setTable("employee"); - -//! [42] - for (int i = 0; i < model.rowCount(); ++i) { - QSqlRecord record = model.record(i); - double salary = record.value("salary").toInt(); - salary *= 1.1; - record.setValue("salary", salary); - model.setRecord(i, record); - } - model.submitAll(); -//! [42] - - // SQLTABLEMODEL3 - int row = 1; - int column = 2; -//! [43] - model.setData(model.index(row, column), 75000); - model.submitAll(); -//! [43] - - // SQLTABLEMODEL4 -//! [44] - model.insertRows(row, 1); - model.setData(model.index(row, 0), 1013); - model.setData(model.index(row, 1), "Peter Gordon"); - model.setData(model.index(row, 2), 68500); - model.submitAll(); -//! [44] - -//! [45] - model.removeRows(row, 5); -//! [45] //! [46] - model.submitAll(); -//! [46] - } } -//! [47] -class XyzResult : public QSqlResult -{ -public: - XyzResult(const QSqlDriver *driver) - : QSqlResult(driver) {} - ~XyzResult() {} - -protected: - QVariant data(int /* index */) override { return QVariant(); } - bool isNull(int /* index */) override { return false; } - bool reset(const QString & /* query */) override { return false; } - bool fetch(int /* index */) override { return false; } - bool fetchFirst() override { return false; } - bool fetchLast() override { return false; } - int size() override { return 0; } - int numRowsAffected() override { return 0; } - QSqlRecord record() const override { return QSqlRecord(); } -}; -//! [47] - -//! [48] -class XyzDriver : public QSqlDriver -{ -public: - XyzDriver() {} - ~XyzDriver() {} - - bool hasFeature(DriverFeature /* feature */) const override { return false; } - bool open(const QString & /* db */, const QString & /* user */, - const QString & /* password */, const QString & /* host */, - int /* port */, const QString & /* options */) override - { return false; } - void close() {} - QSqlResult *createResult() const override { return new XyzResult(this); } -}; -//! [48] int main(int argc, char **argv) { |