69 QSqlQuery query(
"SELECT country FROM artist");
70 while (query.next()) {
71 QString country = query.value(0).toString();
80 QSqlQuery query(
"SELECT * FROM artist");
81 int fieldNo = query.record().indexOf(
"country");
82 while (query.next()) {
83 QString country = query.value(fieldNo).toString();
93 query.prepare(
"INSERT INTO person (id, forename, surname) "
94 "VALUES (:id, :forename, :surname)");
95 query.bindValue(
":id", 1001);
96 query.bindValue(
":forename",
"Bart");
97 query.bindValue(
":surname",
"Simpson");
106 query.prepare(
"INSERT INTO person (id, forename, surname) "
107 "VALUES (:id, :forename, :surname)");
108 query.bindValue(0, 1001);
109 query.bindValue(1,
"Bart");
110 query.bindValue(2,
"Simpson");
119 query.prepare(
"INSERT INTO person (id, forename, surname) "
121 query.bindValue(0, 1001);
122 query.bindValue(1,
"Bart");
123 query.bindValue(2,
"Simpson");
132 query.prepare(
"INSERT INTO person (id, forename, surname) "
134 query.addBindValue(1001);
135 query.addBindValue(
"Bart");
136 query.addBindValue(
"Simpson");
145 query.prepare(
"CALL AsciiToInt(?, ?)");
146 query.bindValue(0,
"A");
147 query.bindValue(1, 0, QSql::Out);
149 int i = query.boundValue(1).toInt();
159 const QVariantList list = query.boundValues();
160 for (qsizetype i = 0; i < list.size(); ++i)
161 qDebug() << i <<
":" << list.at(i).toString();
170 QSqlQueryModel model;
171 model.setQuery(
"SELECT name, salary FROM employee");
172 int salary = model.record(4).value(
"salary").toInt();
178 int salary = model.data(model.index(4, 1)).toInt();
183 for (
int row = 0; row < model.rowCount(); ++row) {
184 for (
int col = 0; col < model.columnCount(); ++col) {
185 qDebug() << model.data(model.index(row, col));
226 QSqlDatabase db = QSqlDatabase::addDatabase(
"QMYSQL");
227 db.setHostName(
"bigblue");
228 db.setDatabaseName(
"flightdb");
229 db.setUserName(
"acarlson");
230 db.setPassword(
"1uTbSbAs");
238 QSqlDatabase firstDB = QSqlDatabase::addDatabase(
"QMYSQL",
"first");
239 QSqlDatabase secondDB = QSqlDatabase::addDatabase(
"QMYSQL",
"second");
245 QSqlDatabase defaultDB = QSqlDatabase::database();
247 QSqlDatabase firstDB = QSqlDatabase::database(
"first");
249 QSqlDatabase secondDB = QSqlDatabase::database(
"second");
257 query.exec(
"SELECT name, salary FROM employee WHERE salary > 50000");
261 while (query.next()) {
262 QString name = query.value(0).toString();
263 int salary = query.value(1).toInt();
264 qDebug() << name << salary;
274 query.exec(
"SELECT name, salary FROM employee WHERE salary > 50000");
276 QSqlDatabase defaultDB = QSqlDatabase::database();
277 if (defaultDB.driver()->hasFeature(QSqlDriver::QuerySize)) {
278 numRows = query.size();
282 numRows = query.at() + 1;
292 query.exec(
"INSERT INTO employee (id, name, salary) "
293 "VALUES (1001, 'Thad Beaumont', 65000)");
301 query.prepare(
"INSERT INTO employee (id, name, salary) "
302 "VALUES (:id, :name, :salary)");
303 query.bindValue(
":id", 1001);
304 query.bindValue(
":name",
"Thad Beaumont");
305 query.bindValue(
":salary", 65000);
314 query.prepare(
"INSERT INTO employee (id, name, salary) "
316 query.addBindValue(1001);
317 query.addBindValue(
"Thad Beaumont");
318 query.addBindValue(65000);
327 query.exec(
"UPDATE employee SET salary = 70000 WHERE id = 1003");
335 query.exec(
"DELETE FROM employee WHERE id = 1007");
342 QSqlDatabase::database().transaction();
344 query.exec(
"SELECT id FROM employee WHERE name = 'Torild Halvorsen'");
346 int employeeId = query.value(0).toInt();
347 query.exec(
"INSERT INTO project (id, name, ownerid) "
348 "VALUES (201, 'Manhattan Project', "
349 + QString::number(employeeId) +
')');
351 QSqlDatabase::database().commit();
358 QSqlQueryModel model;
359 model.setQuery(
"SELECT * FROM employee");
361 for (
int i = 0; i < model.rowCount(); ++i) {
362 int id = model.record(i).value(
"id").toInt();
363 QString name = model.record(i).value(
"name").toString();
364 qDebug() << id << name;
372 QSqlTableModel model;
373 model.setTable(
"employee");
374 model.setFilter(
"salary > 50000");
375 model.setSort(2, Qt::DescendingOrder);
378 for (
int i = 0; i < model.rowCount(); ++i) {
379 QString name = model.record(i).value(
"name").toString();
380 int salary = model.record(i).value(
"salary").toInt();
381 qDebug() << name << salary;
388 QSqlTableModel model;
389 model.setTable(
"employee");
392 for (
int i = 0; i < model.rowCount(); ++i) {
393 QSqlRecord record = model.record(i);
394 double salary = record.value(
"salary").toInt();
396 record.setValue(
"salary", salary);
397 model.setRecord(i, record);
406 model.setData(model.index(row, column), 75000);
412 model.insertRows(row, 1);
413 model.setData(model.index(row, 0), 1013);
414 model.setData(model.index(row, 1),
"Peter Gordon");
415 model.setData(model.index(row, 2), 68500);
420 model.removeRows(row, 5);
bool open(const QString &, const QString &, const QString &, const QString &, int, const QString &) override
Derived classes must reimplement this pure virtual function to open a database connection on database...