From 0359a82e6ef538316e550e7fa7c6dee8db72a225 Mon Sep 17 00:00:00 2001 From: Nico Vertriest Date: Tue, 28 Jan 2020 12:41:16 +0100 Subject: Doc: make Qt Sql snippets compilable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-81496 Change-Id: Id6206e9179c2e8157c99e777a3de35bd83d49e34 Reviewed-by: Topi Reiniƶ Reviewed-by: Paul Wicking --- .../snippets/code/src_sql_kernel_qsqldatabase.cpp | 73 +++++++++------------- 1 file changed, 30 insertions(+), 43 deletions(-) (limited to 'src/sql/doc/snippets/code/src_sql_kernel_qsqldatabase.cpp') diff --git a/src/sql/doc/snippets/code/src_sql_kernel_qsqldatabase.cpp b/src/sql/doc/snippets/code/src_sql_kernel_qsqldatabase.cpp index f09315435e..c7ceb847da 100644 --- a/src/sql/doc/snippets/code/src_sql_kernel_qsqldatabase.cpp +++ b/src/sql/doc/snippets/code/src_sql_kernel_qsqldatabase.cpp @@ -47,18 +47,25 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ +#include +#include +#include +#include +void openDatabase() +{ //! [0] // WRONG QSqlDatabase db = QSqlDatabase::database("sales"); QSqlQuery query("SELECT NAME, DOB FROM EMPLOYEES", db); QSqlDatabase::removeDatabase("sales"); // will output a warning - // "db" is now a dangling invalid database connection, // "query" contains an invalid result set //! [0] +} - +void removeDatabase() +{ //! [1] { QSqlDatabase db = QSqlDatabase::database("sales"); @@ -67,72 +74,51 @@ QSqlDatabase::removeDatabase("sales"); // will output a warning // Both "db" and "query" are destroyed because they are out of scope QSqlDatabase::removeDatabase("sales"); // correct //! [1] +} - -//! [2] -QSqlDatabase::registerSqlDriver("MYDRIVER", - new QSqlDriverCreator); -QSqlDatabase db = QSqlDatabase::addDatabase("MYDRIVER"); -//! [2] - - +void setmyDatabase() +{ //! [3] -... -db = QSqlDatabase::addDatabase("QODBC"); +// ... +QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=myaccessfile.mdb"); if (db.open()) { // success! } -... +// ... //! [3] +} - -//! [4] -... +// ... // MySQL connection +void dbConnect() +{ +QSqlDatabase db; +//! [4] db.setConnectOptions("SSL_KEY=client-key.pem;SSL_CERT=client-cert.pem;SSL_CA=ca-cert.pem;CLIENT_IGNORE_SPACE=1"); // use an SSL connection to the server if (!db.open()) { db.setConnectOptions(); // clears the connect option string - ... + // ... } -... +// ... // PostgreSQL connection db.setConnectOptions("requiressl=1"); // enable PostgreSQL SSL connections if (!db.open()) { db.setConnectOptions(); // clear options - ... + // ... } -... +// ... // ODBC connection db.setConnectOptions("SQL_ATTR_ACCESS_MODE=SQL_MODE_READ_ONLY;SQL_ATTR_TRACE=SQL_OPT_TRACE_ON"); // set ODBC options if (!db.open()) { db.setConnectOptions(); // don't try to set this option - ... + // ... +} } //! [4] - -//! [5] -#include "qtdir/src/sql/drivers/psql/qsql_psql.cpp" -//! [5] - - -//! [6] -PGconn *con = PQconnectdb("host=server user=bart password=simpson dbname=springfield"); -QPSQLDriver *drv = new QPSQLDriver(con); -QSqlDatabase db = QSqlDatabase::addDatabase(drv); // becomes the new default connection -QSqlQuery query; -query.exec("SELECT NAME, ID FROM STAFF"); -... -//! [6] - - -//! [7] -unix:LIBS += -lpq -win32:LIBS += libpqdll.lib -//! [7] - - +void dbQdebug() +{ //! [8] QSqlDatabase db; qDebug() << db.isValid(); // Returns false @@ -143,3 +129,4 @@ qDebug() << db.isValid(); // Returns \c true if "sales" connection exists QSqlDatabase::removeDatabase("sales"); qDebug() << db.isValid(); // Returns false //! [8] +} -- cgit v1.2.3