Selecting data from mysql using qt?
-
this is the output after adding lastError.text()
@
Starting /home/zafar/c++/dbExample-build-desktop/dbExample...
" "
false
QSqlQuery::exec: database not open
/home/zafar/c++/dbExample-build-desktop/dbExample exited with code 0
@lyut: yes i use command with 'password' not '123456'
Dii sorry i didnt understand this db.setPassword("password");
where should i set this -
[quote author="doforumda" date="1286878193"]
lyut: yes i use command with 'password' not '123456'Dii sorry i didnt understand this db.setPassword("password");
where should i set this[/quote]- I assume you should have specified the actual password when running that query.
- @db.setPassword("password");@ should be added to your source code just where you set db options.
-
i ran query again with actual password
i have already setup password in my qt code here it is
@
#include <QApplication>
#include <QtSql>int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setDatabaseName("testTwo"); db.setUserName("root"); db.setPassword("123456"); db.setHostName("localhost"); qDebug() << db.lastError().text(); bool ok = db.open(); qDebug() << ok; QSqlQuery query; query.exec("SELECT firstname,lastname FROM testTable"); while(query.next()) { QString firstName = query.value(0).toString(); QString secondName = query.value(1).toString(); qDebug() << "First Name: " << firstName << "Last Name:" << secondName; qDebug() << db.lastError(); } return 0;
}
@
-
db.lasterror().text() should come after line 16 (db.open()).
The password in the Qt code must be the same what you have specified in the GRANT command above.I suspect probably, you haven't made the database and the table in mysql yet, if you go back to mysql command line, what do you get by these commands:
@SHOW databases;
USE testTwo;
SHOW tables;@
I go to dinner, be back in a few minutes :)
-
i changed db.lastError().text(); and place it after db.open()
this is the output
@
Starting /home/zafar/c++/dbExample-build-desktop/dbExample...
"Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) QMYSQL: Unable to connect"
false
QSqlQuery::exec: database not open
/home/zafar/c++/dbExample-build-desktop/dbExample exited with code 0
@the commands in mysql displayed are here
repectively to your commands@
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cdcol |
| mysql |
| phpmyadmin |
| test |
| testTwo |
+--------------------+
6 rows in set (0.01 sec)mysql> use testTwo
Database changed
mysql> show tables
-> ;
+-------------------+
| Tables_in_testTwo |
+-------------------+
| testTable |
+-------------------+
1 row in set (0.01 sec)@
-
[quote author="doforumda" date="1286880547"]how can i check that mysql logs and from where? [/quote]
Try to find them:
@find /opt/lampp -name log -type d@When you find the log directory, find a log for mysql and use tail utility:
@tail -f /path/to/mysql.log@
-
-
Don't bother with the log files, I guess Qt looks at the wrong place for the socket file...
Let's check this line in your mysql config file (my.cnf):
socket = /var/run/mysqld/mysqld.sock
You should find my.cnf in /etc/ or /etc/mysql/ ... I don't know ubuntu that much.
-
[quote author="¤ Dii ¤" date="1286881470"]
You should find my.cnf in /etc/ or /etc/mysql/ ... I don't know ubuntu that much.[/quote]I don't think that this config will be in /etc. He uses lampp - a preconfigured bundle. That config might be in /opt/lampp.