From 09a473009f83327cea4b596e67d2e049f7e820e2 Mon Sep 17 00:00:00 2001 From: anonymous Date: Thu, 4 Nov 2021 00:36:34 +0100 Subject: [PATCH] Fixed segfault --- loginform.cpp | 2 -- loginform.h | 1 + main.cpp | 9 +++++++++ satisform.cpp | 1 + stokfrom.cpp | 1 - veritabani.cpp | 55 +++++--------------------------------------------- veritabani.h | 2 +- 7 files changed, 17 insertions(+), 54 deletions(-) diff --git a/loginform.cpp b/loginform.cpp index 6f8cdef..67a1764 100644 --- a/loginform.cpp +++ b/loginform.cpp @@ -5,7 +5,6 @@ #include -Veritabani vt; LoginForm::LoginForm(QWidget *parent) @@ -65,7 +64,6 @@ void LoginForm::on_KapatBtn_clicked() void LoginForm::closeEvent(QCloseEvent *) { - vt.db.removeDatabase("mhss"); } void LoginForm::getUsers() diff --git a/loginform.h b/loginform.h index 73fea9c..bfef232 100644 --- a/loginform.h +++ b/loginform.h @@ -30,5 +30,6 @@ private slots: private: Ui::LoginForm *ui; + Veritabani vt; }; #endif // LOGINFORM_H diff --git a/main.cpp b/main.cpp index b8ed593..8b2e3bc 100644 --- a/main.cpp +++ b/main.cpp @@ -3,10 +3,19 @@ #include #include #include +#include +#include int main(int argc, char *argv[]) { QApplication a(argc, argv); + QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL", "mhss_data"); + db.setHostName("localhost"); + db.setUserName("postgres"); + db.setPassword("postgres"); + if (!db.open()) + qFatal("veritabani baglanti hatasi: %s", + qPrintable(db.lastError().text())); QTranslator translator; const QStringList uiLanguages = QLocale::system().uiLanguages(); diff --git a/satisform.cpp b/satisform.cpp index 1a483cd..bccb567 100644 --- a/satisform.cpp +++ b/satisform.cpp @@ -7,6 +7,7 @@ #include "veritabani.h" #include "kgform.h" +#include #include #include #include diff --git a/stokfrom.cpp b/stokfrom.cpp index f36f5e7..10151ed 100644 --- a/stokfrom.cpp +++ b/stokfrom.cpp @@ -1,7 +1,6 @@ #include "stokfrom.h" #include "ui_stokfrom.h" #include "stokgrupform.h" -#include "stokgrupformwidget.h" #include "veritabani.h" #include "user.h" //*************************** diff --git a/veritabani.cpp b/veritabani.cpp index c9941ae..b8dd5e6 100644 --- a/veritabani.cpp +++ b/veritabani.cpp @@ -12,9 +12,6 @@ Veritabani::Veritabani() { - db.setHostName("localhost"); - db.setUserName("postgres"); - db.setPassword("postgres"); } Veritabani::~Veritabani() @@ -24,13 +21,10 @@ Veritabani::~Veritabani() bool Veritabani::barkodVarmi(QString _Barkod) { - db.setDatabaseName("mhss_data"); - db.open(); sorgu.prepare("SELECT barkod FROM stokkartlari WHERE barkod = ?"); sorgu.bindValue(0, _Barkod); sorgu.exec(); if(sorgu.next()){ - db.close(); return true; } else{ @@ -40,24 +34,19 @@ bool Veritabani::barkodVarmi(QString _Barkod) bool Veritabani::loginControl(QString _UserName, QString _Password) { - db.setDatabaseName("mhss_data"); - db.open(); sorgu.prepare("SELECT username, password FROM kullanicilar WHERE username = ?"); sorgu.bindValue(0, _UserName); sorgu.exec(); if(sorgu.next()){ if(sorgu.value(0) == _Password){ - db.close(); return true; } else{ - db.close(); QMessageBox::warning(0, "Uyarı", "Şifre hatalı", QMessageBox::Ok); return false; } } else{ - db.close(); QMessageBox::warning(0, "Uyarı", "Böyle bir kullanıcı yok", QMessageBox::Ok); return false; } @@ -70,9 +59,7 @@ bool Veritabani::loginControl(QString _UserName, QString _Password) */ void Veritabani::satisYap(Sepet _satilacakSepet, User _satisYapanKullanici, int _satisYapilanCariID) { - db.setDatabaseName("mhss_data"); //yeni fatura numarası için faturalar_sequence'den son değeri alma - db.open(); sorgu.exec("SELECT last_value FROM faturalar_sequence"); sorgu.next(); QString yeniFaturaNo = QDate::currentDate().toString("ddMMyy") + QString::number(sorgu.value(0).toInt() + 1); @@ -105,25 +92,20 @@ void Veritabani::satisYap(Sepet _satilacakSepet, User _satisYapanKullanici, int sorgu.bindValue(1, urun.barkod); sorgu.exec(); } - db.close(); } QStringList Veritabani::getSonIslemler() { - db.setDatabaseName("mhss_data"); - db.open(); QStringList islemler; sorgu.exec("SELECT fatura_no, tarih FROM faturalar WHERE tarih::date = now()::date ORDER BY fatura_no DESC"); while(sorgu.next()){ islemler.append(sorgu.value(0).toString() + " " + sorgu.value(1).toTime().toString("hh:mm:ss")); } - db.close(); return islemler; } bool Veritabani::veritabaniVarmi() { - db.open(); //mhss_data veritabanı varmı kontrol sorgu.exec("SELECT datname FROM pg_database WHERE datname = 'mhss_data'"); if(!sorgu.next()){ @@ -144,18 +126,20 @@ bool Veritabani::veritabaniVarmi() return false; break; } + } else { + db.setDatabaseName("mhss_data"); + db.close(); + db.open(); } - db.close(); return true; } void Veritabani::veritabaniOlustur() { - db.open(); //veritabanını oluşturma sorgu.exec("CREATE DATABASE mhss_data OWNER postgres"); - db.close(); db.setDatabaseName("mhss_data"); + db.close(); db.open(); //kullanıcılar tablosunu oluşturma sorgu.exec("CREATE TABLE kullanicilar(" @@ -262,14 +246,10 @@ void Veritabani::veritabaniOlustur() msg.setIcon(QMessageBox::Information); msg.exec(); } - db.close(); - } User Veritabani::GetUserInfos(QString _UserName) { - db.setDatabaseName("mhss_data"); - db.open(); User u; sorgu.prepare("SELECT * FROM kullanicilar WHERE username = ?"); sorgu.bindValue(0, _UserName); @@ -281,14 +261,11 @@ User Veritabani::GetUserInfos(QString _UserName) u.setSoyad(sorgu.value(4).toString()); u.setCepNo(sorgu.value(5).toString()); } - db.close(); return u; } QList Veritabani::getCariKartlar() { - db.setDatabaseName("mhss_data"); - db.open(); QList kartlar; sorgu.exec("SELECT * FROM carikartlar"); while (sorgu.next()) { @@ -307,27 +284,21 @@ QList Veritabani::getCariKartlar() kart.setTarih(sorgu.value(11).toDateTime()); kartlar.append(kart); } - db.close(); return kartlar; } QList Veritabani::GetUsers() { - db.setDatabaseName("mhss_data"); - db.open(); sorgu.exec("SELECT username FROM kullanicilar"); while (sorgu.next()) { users << sorgu.value(0).toString(); } - db.close(); return users; } StokKarti Veritabani::getStokKarti(QString _Barkod) { StokKarti kart; - db.setDatabaseName("mhss_data"); - db.open(); sorgu.prepare("SELECT id, barkod, ad, birim, miktar, grup, CAST(afiyat AS DECIMAL), CAST(sfiyat AS DECIMAL), kdv, tarih, aciklama FROM stokkartlari WHERE barkod = ?"); sorgu.bindValue(0, _Barkod); sorgu.exec(); @@ -344,14 +315,11 @@ StokKarti Veritabani::getStokKarti(QString _Barkod) kart.setTarih(sorgu.value(9).toDateTime()); kart.setAciklama(sorgu.value(10).toString()); } - db.close(); return kart; } void Veritabani::yeniStokKartiOlustur(StokKarti *_StokKarti, User *_Kullanici) { - db.setDatabaseName("mhss_data"); - db.open(); sorgu.prepare("INSERT INTO stokkartlari (id, barkod, ad, birim, miktar, grup, afiyat, sfiyat, kdv, tarih, aciklama) " "VALUES (nextval('stokkartlari_sequence'), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); sorgu.bindValue(0, _StokKarti->getBarkod()); @@ -386,13 +354,10 @@ void Veritabani::yeniStokKartiOlustur(StokKarti *_StokKarti, User *_Kullanici) msg->setModal(true); msg->show(); } - db.close(); } void Veritabani::stokKartiniGuncelle(const QString _EskiStokKartiID, StokKarti *_YeniStokKarti, User *_Kullanici) { - db.setDatabaseName("mhss_data"); - db.open(); sorgu.prepare("UPDATE stokkartlari SET barkod = ?, ad = ?, birim = ?, miktar = ?, grup = ?, afiyat = ?, sfiyat = ?, kdv = ?, tarih = ? , aciklama = ? " "WHERE id = ?"); sorgu.bindValue(0, _YeniStokKarti->getBarkod()); @@ -430,13 +395,10 @@ void Veritabani::stokKartiniGuncelle(const QString _EskiStokKartiID, StokKarti * msg->setModal(true); msg->show(); } - db.close(); } void Veritabani::stokKartiSil(QString _StokKartiID) { - db.setDatabaseName("mhss_data"); - db.open(); sorgu.prepare("DELETE FROM stokkartlari WHERE id = ?"); sorgu.bindValue(0, _StokKartiID); if(sorgu.exec()){ @@ -461,13 +423,10 @@ void Veritabani::stokKartiSil(QString _StokKartiID) msg->setModal(true); msg->show(); } - db.close(); } QSqlQueryModel *Veritabani::getStokKartlari() { - db.setDatabaseName("mhss_data"); - db.open(); QSqlQueryModel *model = new QSqlQueryModel(); model->setHeaderData(0, Qt::Horizontal, "Stok ID"); model->setHeaderData(1, Qt::Horizontal, "Barkod"); @@ -480,20 +439,16 @@ QSqlQueryModel *Veritabani::getStokKartlari() model->setHeaderData(8, Qt::Horizontal, "Gün. tarihi"); model->setHeaderData(9, Qt::Horizontal, "Açıklama"); model->setQuery("SELECT id, barkod, ad, birim, miktar, grup, CAST(afiyat AS DECIMAL), CAST(sfiyat AS DECIMAL), kdv, tarih, aciklama FROM stokkartlari", db); - db.close(); return model; } QStringList Veritabani::stokGruplariGetir() { - db.setDatabaseName("mhss_data"); - db.open(); sorgu.exec("SELECT grup FROM stokgruplari"); QStringList liste; while (sorgu.next()) { liste.append(sorgu.value(0).toString()); } - db.close(); return liste; } diff --git a/veritabani.h b/veritabani.h index a39e2f9..2bb91f1 100644 --- a/veritabani.h +++ b/veritabani.h @@ -19,7 +19,7 @@ public: Veritabani(); ~Veritabani(); - QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL", "mhss"); + QSqlDatabase db = QSqlDatabase::database("mhss_data"); QSqlQuery sorgu = QSqlQuery(db); bool barkodVarmi(QString _Barkod); -- 2.30.1 (Apple Git-130)