Reputation: 31
how to insert the data into sqlite
using qt
:
query = QSqlQuery("INSERT INTO customer_details (rationcard_num, aadharcard_num, name)
values('"+rationcard_num+"','"+aadharcard_num+"','"+name+"')");
Upvotes: 2
Views: 17217
Reputation: 7232
You can modify your code and make the query look like this, which I think will clarify your doubts:
Preparing query statement
QSqlQuery query;
query.prepare("INSERT INTO customer_details(rationcard_num \
, aadharcard_num \
, name) \
VALUES(:rationcard_num \
, :aadharcard_num \
, :name); ");
Bind values
query.bindValue(":rationcard_num", your_value);
query.bindValue(":aadharcard_num", your_value);
query.bindValue(":name", your_value);
DEBUGGING
You can use qDebug()
to find if your query is executable:
qDebug()<<query.exec()<<endl;
This will return true if data inserted and false otherwise
Upvotes: 5
Reputation: 1
QSqlQuery query;
query.exec("INSERT INTO customer_details (rationcard_num,aadharcard_num,name)VALUES('"+rationcard_num+"','"+aadharcard_num+"','"+name+")");
Upvotes: -2
Reputation: 4888
You could probably call exec()
on the query or call it directly with exec(const QString& query)
. So for example you could do:
QSqlQuery query;
query.exec("INSERT INTO customer_details (rationcard_num, aadharcard_num, name)"
+ "values('" + rationcard_num + "','" + aadharcard_num + "','"
+ name + "')");
If however you want to use a prepared statement you would want to construct the query with a QSqlDatabase, call prepare(statement)
on that and bind the values. For example:
QSqlQuery query;
query.prepare("INSERT INTO person (rationcard_num, aadharcard_num, name) "
"VALUES (:rationcard_num, :aadharcard_num, :name)");
query.bindValue(":rationcard_num", rationcard_num);
query.bindValue(":aadharcard_num", aadharcard_num);
query.bindValue(":name", name);
query.exec();
Upvotes: 1