Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Połączenie z bazą danych(konstruktor domyślny)

Ostatnio zmodyfikowano 2019-02-16 13:46
Autor Wiadomość
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"

C/C++
#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 )
{
    /*a = adress;
    u = user;
    p = pass;
    db = dbname;
    pt = port;
    s = socket;
    f = flag;
    */
   
   
    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 ) );
   
   
   
}
P-173991
pekfos
» 2019-02-15 18:55:51
Wartości domyślne argumentów podaje się w deklaracji funkcji, nie definicji.
P-173992
Groudz377
Temat założony przez niniejszego użytkownika
» 2019-02-15 19:28:51
Poprawiłem i ten sam błąd


C/C++
#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 ) );
   
   
   
}
P-173993
pekfos
» 2019-02-15 19:40:35
C/C++
public:

DBconnect( string adress, string user, string pass, string dbname, int port, string socket, int flag );
Tu.
P-173995
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.
P-173996
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.
C/C++
#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 ) );
   
   
   
}
P-173999
« 1 »
  Strona 1 z 1