1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3#include <QSqlDatabase>
4#include <QSqlQuery>
5#include <QSqlDriver>
6#include <QSqlResult>
7#include <QVariant>
8#include <QDebug>
9
10void testProc()
11{
12//! [2]
13QSqlQuery q;
14q.exec(query: "call qtestproc (@outval1, @outval2)");
15q.exec(query: "select @outval1, @outval2");
16if (q.next())
17 qDebug() << q.value(i: 0) << q.value(i: 1); // outputs "42" and "43"
18//! [2]
19}
20
21void callStoredProc()
22{
23//! [10]
24// STORED_PROC uses the return statement or returns multiple result sets
25QSqlQuery query;
26query.setForwardOnly(true);
27query.exec(query: "{call STORED_PROC}");
28//! [10]
29}
30
31void setHost()
32{
33//! [24]
34QSqlDatabase db;
35db.setHostName("MyServer");
36db.setDatabaseName("C:\\test.gdb");
37//! [24]
38}
39
40void exProc()
41{
42//! [26]
43QSqlQuery q;
44q.exec(query: "execute procedure my_procedure");
45if (q.next())
46 qDebug() << q.value(i: 0); // outputs the first RETURN/OUT value
47//! [26]
48
49qDebug( msg: \
50"QSqlDatabase: QMYSQL driver not loaded \
51QSqlDatabase: available drivers: QMYSQL" \
52);
53
54/* Commented because the following line is not compilable
55//! [34]
56column.contains(QRegularExpression("pattern"));
57//! [34]
58*/
59}
60
61
62
63void updTable2()
64{
65QSqlDatabase db;
66//! [37]
67int value;
68QSqlQuery query1;
69query1.setForwardOnly(true);
70query1.exec(query: "select * FROM table1");
71while (query1.next()) {
72 value = query1.value(i: 0).toInt();
73 if (value == 1) {
74 QSqlQuery query2;
75 query2.exec(query: "update table2 set col=2"); // WRONG: This will discard all results of
76 } // query1, and cause the loop to quit
77}
78//! [37]
79}
80
81void callOutProc()
82{
83//! [40]
84 QSqlDatabase db;
85 QSqlQuery query;
86 int i1 = 10, i2 = 0;
87 query.prepare(query: "call qtestproc(?, ?)");
88 query.bindValue(pos: 0, val: i1, type: QSql::InOut);
89 query.bindValue(pos: 1, val: i2, type: QSql::Out);
90 query.exec();
91//! [40]
92}
93

source code of qtbase/src/sql/doc/snippets/code/doc_src_sql-driver.cpp