Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
doc_src_sql-driver.qdoc
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
3
4//! [0]
5[...]
6
7Database options:
8
9 -sql-<driver> ........ Enable SQL <driver> plugin. Supported drivers:
10 db2 firebird ibase mysql oci odbc psql sqlite
11 [all auto]
12 -sqlite .............. Select used sqlite [system/qt]
13
14[...]
15//! [0]
16
17
18//! [1]
19create procedure qtestproc (OUT param1 INT, OUT param2 INT)
20BEGIN
21 set param1 = 42;
22 set param2 = 43;
23END
24//! [1]
25
26
27//! [3]
28mkdir build-sqldrivers
29cd build-sqldrivers
30qt-cmake -G Ninja <qt_source_directory>/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DMySQL_ROOT="/usr/local/mysql"
31cmake --build .
32cmake --install .
33//! [3]
34
35
36//! [5]
37mkdir build-sqldrivers
38cd build-sqldrivers
39qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform> -DMySQL_ROOT="C:\mysql-8.0.22-winx64"
40cmake --build .
41cmake --install .
42//! [5]
43
44
45//! [7]
46mkdir build-sqldrivers
47cd build-sqldrivers
48qt-cmake -G Ninja <qt_source_directory>/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DOracle_ROOT="/usr/include/oracle/21/client64"
49cmake --build .
50cmake --install .
51//! [7]
52
53
54//! [8]
55mkdir build-sqldrivers
56cd build-sqldrivers
57qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform> -DOracle_ROOT="C:\oracle"
58cmake --build .
59cmake --install .
60//! [8]
61
62
63//! [9]
64set PATH=%PATH%;C:\oracle
65//! [9]
66
67
68//! [11]
69mkdir build-sqldrivers
70cd build-sqldrivers
71qt-cmake -G Ninja <qt_source_directory>/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DODBC_INCLUDE_DIR="/usr/local/unixODBC/include" -DODBC_LIBRARY="/usr/local/unixODBC/lib/libodbc.<so|dylib>"
72cmake --build .
73cmake --install .
74//! [11]
75
76
77//! [12]
78mkdir build-sqldrivers
79cd build-sqldrivers
80qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform>
81cmake --build .
82cmake --install .
83//! [12]
84
85
86//! [13]
87mkdir build-psql-driver
88cd build-psql-driver
89
90qt-cmake -G Ninja <qt_source_directory>/qtbase/src/plugins/sqldrivers-DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DPostgreSQL_ROOT="/usr/local/pgsql"
91cmake --build .
92cmake --install .
93//! [13]
94
95
96//! [15]
97mkdir build-sqldrivers
98cd build-sqldrivers
99qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform> -DPostgreSQL_ROOT="C:\pgsql"
100cmake --build .
101cmake --install .
102//! [15]
103
104
105//! [18]
106mkdir build-sqldrivers
107cd build-sqldrivers
108qt-cmake -G Ninja <qt_source_directory>/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DDB2_ROOT="/usr/local/db2"
109cmake --build .
110cmake --install .
111//! [18]
112
113
114//! [20]
115mkdir build-sqldrivers
116cd build-sqldrivers
117qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform> -DDB2_ROOT="C:\db2"
118cmake --build .
119cmake --install .
120//! [20]
121
122
123//! [21]
124mkdir build-sqldrivers
125cd build-sqldrivers
126qt-cmake -G Ninja <qt_source_directory>/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DFEATURE_system_sqlite=ON -DCMAKE_INCLUDE_PATH="$SQLITE/include" -DCMAKE_LIBRARY_PATH="$SQLITE/lib"
127cmake --build .
128cmake --install .
129//! [21]
130
131
132//! [23]
133mkdir build-sqldrivers
134cd build-sqldrivers
135qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform> -DFEATURE_system_sqlite=ON -DCMAKE_INCLUDE_PATH="C:\SQLITE\include" -DCMAKE_LIBRARY_PATH="C:\SQLITE\lib"
136cmake --build .
137cmake --install .
138//! [23]
139
140
141//! [27]
142mkdir build-sqldrivers
143cd build-sqldrivers
144qt-cmake -G Ninja <qt_source_directory>/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DInterbase_ROOT="/opt/interbase/"
145cmake --build .
146cmake --install .
147//! [27]
148
149
150//! [29]
151mkdir build-sqldrivers
152cd build-sqldrivers
153qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform> -DInterbase_ROOT="C:\interbase"
154cmake --build .
155cmake --install .
156//! [29]
157
158
159//! [31]
160mkdir build-sqldrivers
161cd build-sqldrivers
162
163qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform> -DMimer_INCLUDE_DIR="/usr/include" -DMimer_LIBRARIES="/usr/lib/libmimer.so"
164cmake --build .
165cmake --install .
166//! [31]
167
168//! [32]
169mkdir build-sqldrivers
170cd build-sqldrivers
171
172qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform> -DMimer_INCLUDE_DIR="C:\Program Files\Mimer SQL Experience 11.0\dev\include" -DMimer_LIBRARIES="C:\Program Files\Mimer SQL Experience 11.0\dev\lib\amd64\mimapi64.lib|C:\Program Files\Mimer SQL Experience 11.0\dev\lib\x86\mimapi32.lib"
173cmake --build .
174cmake --install .
175//! [32]
176
177//! [45]
178mkdir build-sqldrivers
179cd build-sqldrivers
180qt-cmake -G Ninja <qt_source_directory>/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DFirebird_ROOT="/opt/firebird"
181cmake --build .
182cmake --install .
183//! [45]
184
185//! [46]
186mkdir build-sqldrivers
187cd build-sqldrivers
188qt-cmake -G Ninja <qt_installation_path>\Src\qtbase\src\plugins\sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>\<platform> -DFirebird_ROOT="C:\Program Files\Firebird\Firebird_5_0"
189cmake --build .
190cmake --install .
191//! [46]
192
193//! [35]
194QSqlDatabase: QPSQL driver not loaded
195QSqlDatabase: available drivers: QSQLITE QMYSQL QMARIADB QODBC QPSQL
196Could not create database object
197//! [35]
198
199
200//! [38]
201QPSQLDriver::getResult: Query results lost - probably discarded on executing another SQL query.
202//! [38]
203
204//! [39]
205CREATE TABLE "testTable" ("id" INTEGER);
206//! [39]
207
208//! [40]
209QString tableString("testTable");
210QSqlQuery q;
211// Create table query is not quoted, therefore it is mapped to lower case
212q.exec(QString("CREATE TABLE %1 (id INTEGER)").arg(tableString));
213// Call toLower() on the string so that it can be matched
214QSqlRecord rec = database.record(tableString.toLower());
215//! [40]
216
217//! [41]
218C:\Qt\6.0.0\mingw81_64\bin\qt-cmake -G Ninja C:\Qt\6.0.0\Src\qtbase\src\plugins\sqldrivers -DMySQL_INCLUDE_DIR="C:\mysql-8.0.22-winx64\include" -DMySQL_LIBRARY="C:\mysql-8.0.22-winx64\lib\libmysql.lib" -DCMAKE_INSTALL_PREFIX="C:\Qt\6.0.0\mingw81_64"
219Configure summary:
220
221Qt Sql Drivers:
222 DB2 (IBM) .............................. no
223 Firebird ............................... no
224 InterBase .............................. no
225 Mimer SQL .............................. yes
226 MySql .................................. yes
227 OCI (Oracle) ........................... no
228 ODBC ................................... yes
229 PostgreSQL ............................. no
230 SQLite ................................. yes
231 Using system provided SQLite ......... no
232
233-- Configuring done
234-- Generating done
235-- Build files have been written to: C:/build-qt6-sqldrivers
236//! [41]
237
238//! [42]
239C:\Qt\6.0.0\Src\configure.bat -sql-mysql -- -DMySQL_ROOT="C:\mysql-8.0.22-winx64"
240Configure summary:
241
242...
243Qt Sql Drivers:
244 DB2 (IBM) .............................. no
245 Firebird ............................... no
246 InterBase .............................. no
247 Mimer SQL .............................. yes
248 MySql .................................. yes
249 OCI (Oracle) ........................... no
250 ODBC ................................... yes
251 PostgreSQL ............................. no
252 SQLite ................................. yes
253 Using system provided SQLite ......... no
254...
255//! [42]
256
257//! [44]
258create procedure inout_proc (INOUT param1 INT, OUT param2 INT)
259BEGIN
260 set param1 = param1 * 2;
261 set param2 = param1 * param1;
262END
263//! [44]