I have this class:
Qt Code:
  1. #include <QSqlError>
  2. #include <QFile>
  3. #include <QTextStream>
  4. #include <QMessageBox>
  5.  
  6. #include "itemsell.h"
  7. #include "ui_ItemSell.h"
  8. #include "sales.h"
  9.  
  10. ItemSell::ItemSell(QWidget *parent) :
  11. QDialog(parent),
  12. ui(new Ui::ItemSell)
  13. {
  14. ui->setupUi(this);
  15. }
  16.  
  17. void ItemSell::errorLog(QString error)
  18. {
  19. QFile log("errors.log");
  20. log.open(QFile::Append | QFile::Text);
  21. QTextStream out(&log);
  22. out << error;
  23. log.close();
  24. }
  25.  
  26. void ItemSell::getSale(const int& id)
  27. {
  28. sqlQuery = "SELECT Sales.Countity as Scoun, Sales.Totale as Stotale FROM Sales "
  29. "JOIN Items ON Sales.ID_I = Items.ID_I "
  30. "WHERE Sales.ID_S=" + id;
  31. if(!query.exec(sqlQuery))
  32. {
  33. error = "[" + query.lastError().text() + "]\t[" + query.lastQuery() + "]\t[" + QDate::currentDate().toString("yyyy-MM-dd") + "\t" +QTime::currentTime().toString("hh-mm") + "]\n";
  34. this->errorLog(error);
  35. }
  36.  
  37. query.next();
  38. rec = query.record();
  39. ui->itemMat->setText(query.value(rec.indexOf("ID_I")).toString());
  40. ui->nameSale->setText(query.value(rec.indexOf("Name")).toString());
  41. ui->dateSale->setDate(query.value(rec.indexOf("Day")).toDate());
  42. ui->priceSale->setText(query.value(rec.indexOf("Price")).toString());
  43. ui->countitySale->setText(query.value(rec.indexOf("Scoun")).toString());
  44. ui->totaleSale->setText(query.value(rec.indexOf("Stotale")).toString());
  45. sd.setText(query.lastQuery() + "*** " + query.lastError().text());
  46. sd.exec();
  47. }
  48.  
  49. ItemSell::~ItemSell()
  50. {
  51. delete ui;
  52. }
To copy to clipboard, switch view to plain text mode 
And I have this slot executed when the user click on action menu:
Qt Code:
  1. void Store::showItem()
  2. {
  3. int id = ui->lstSells->model()->index(m_ind.row(), 0).data().toInt();
  4. ItemSell *item = new ItemSell(this);
  5. item->getSale(id);
  6. item->exec();
  7. }
To copy to clipboard, switch view to plain text mode 
My problem is the query is never executed because an SQL error statement, it is always executed like this:
Qt Code:
  1. CT Sales.Countity as Scoun, Sales.Totale as Stotale FROM Sales JOIN Items ON Sales.ID_I = Items.ID_I WHERE Sales.ID_S=1
  2. Sales.Countity as Scoun, Sales.Totale as Stotale FROM Sales JOIN Items ON Sales.ID_I = Items.ID_I WHERE Sales.ID_S=1
To copy to clipboard, switch view to plain text mode 
While it should be like this:
Qt Code:
  1. SELECT Sales.Countity as Scoun, Sales.Totale as Stotale FROM Sales JOIN Items ON Sales.ID_I = Items.ID_I WHERE Sales.ID_S=1
To copy to clipboard, switch view to plain text mode