Groudz377 Temat założony przez niniejszego użytkownika |
Połączenie z bazą danych(konstruktor domyślny) » 2019-02-15 18:51:49 Witam, Próbuję napisać klasę do tworzenia połączenia z bazą danych w oparciu o Singleton, kiedy próbuję wywołać połączenie z bazą kompilator wywala taki błąd. "C2512: "DBconnect": niedostępny odpowiedni konstruktor domyślny" #pragma #include "pch.h" #include <string> #include <iostream> #include <mysql.h>
using namespace std;
class DBconnect { static string adress, user, pass, dbname, socket; static unsigned long port, flag; static DBconnect * connection; public: DBconnect( string a, string u, string p, string db, int pt, string s, int f ); static DBconnect * getInstance(); };
DBconnect * DBconnect::connection = 0;
DBconnect * DBconnect::getInstance() { if( getInstance() == 0 ) { connection = new DBconnect; } return connection; }
DBconnect::DBconnect( string a = "localhost", string u = "root", string p = "******", string db = "ksiegarnia", int pt = ***, string s = "NULL", int f = 0 ) { MYSQL mysql; mysql_init( & mysql ); if( mysql_real_connect( & mysql, a.c_str(), u.c_str(), p.c_str(), db.c_str(), pt, NULL, f ) ) printf( "Połączenie z bazą danych MySQL nawiązano poprawnie!\n" ); else printf( "Błąd połączenia z bazą MySQL: %d, %s\n", mysql_errno( & mysql ), mysql_error( & mysql ) ); }
|
|
pekfos |
» 2019-02-15 18:55:51 Wartości domyślne argumentów podaje się w deklaracji funkcji, nie definicji. |
|
Groudz377 Temat założony przez niniejszego użytkownika |
» 2019-02-15 19:28:51 Poprawiłem i ten sam błąd #pragma #include "pch.h" #include <string> #include <iostream> #include <mysql.h>
using namespace std;
class DBconnect { static string adress, user, pass, dbname, socket; static unsigned long port, flag; static DBconnect * connection; public: DBconnect( string adress, string user, string pass, string dbname, int port, string socket, int flag ); static DBconnect * getInstance(); };
DBconnect * DBconnect::connection = 0;
DBconnect * DBconnect::getInstance() { if( getInstance() == 0 ) { DBconnect * connection = new DBconnect; } return connection; }
DBconnect::DBconnect( string a, string u, string p, string db, int pt, string s, int f ) { a = "localhost"; u = "root"; p = "***"; db = "ksiegarnia"; pt = 3306; s = "NULL"; f = 0; MYSQL mysql; mysql_init( & mysql ); if( mysql_real_connect( & mysql, a.c_str(), u.c_str(), p.c_str(), db.c_str(), pt, NULL, f ) ) printf( "Połączenie z bazą danych MySQL nawiązano poprawnie!\n" ); else printf( "Błąd połączenia z bazą MySQL: %d, %s\n", mysql_errno( & mysql ), mysql_error( & mysql ) ); }
|
|
pekfos |
» 2019-02-15 19:40:35 public:
DBconnect( string adress, string user, string pass, string dbname, int port, string socket, int flag ); Tu. |
|
Groudz377 Temat założony przez niniejszego użytkownika |
» 2019-02-15 19:57:17 Wielkie dzięki, problem konstruktora zniknął, ale połączenia dalej nie ma. |
|
Groudz377 Temat założony przez niniejszego użytkownika |
» 2019-02-16 13:46:41 Udało się nawiązać połączenie. Zostawiam kod jakby ktoś miał podobny podobny problem, pozdrawiam. #pragma #include "pch.h" #include <string> #include <iostream> #include <mysql.h>
using namespace std;
class DBconnect { static bool instanceFlag; static string adress, user, pass, dbname, socket; static unsigned long port, flag; static DBconnect * connection; DBconnect( string adress = "localhost", string user = "root", string pass = "****", string dbname = "ksiegarnia", int port = 3306, string socket = "NULL", int flag = 0 ); public: ~DBconnect() { instanceFlag = false; } static DBconnect * getInstance(); }; bool DBconnect::instanceFlag = false; DBconnect * DBconnect::connection = NULL;
DBconnect * DBconnect::getInstance() { if( !instanceFlag ) { connection = new DBconnect; instanceFlag = true; return connection; } return DBconnect::connection; }
DBconnect::DBconnect( string a, string u, string p, string db, int pt, string s, int f ) { MYSQL mysql; mysql_init( & mysql ); if( mysql_real_connect( & mysql, a.c_str(), u.c_str(), p.c_str(), db.c_str(), pt, NULL, f ) ) printf( "Połączenie z bazą danych MySQL nawiązano poprawnie!\n" ); else printf( "Błąd połączenia z bazą MySQL: %d, %s\n", mysql_errno( & mysql ), mysql_error( & mysql ) ); }
|
|
« 1 » |