Не могу создать MySQL -Connection - застрял при компиляции - PullRequest
0 голосов
/ 28 апреля 2020

Я работал 4 года на Java. Сейчас я пытаюсь выучить C ++. Я хочу создать плагин Teamspeak3-Plugin. Прежде всего я попытался создать MySQL -Connection и застрял на компиляции. Я работал с MySQL -коннектором для C ++ версии 8.0.20 и Boost для C ++ (для коннектора) версии 1.72.0

. Это дает мне код ошибки «C3867», который говорит «нестандартное использование синтаксиса». & чтобы создать указатель на член "

Я не знаю, почему я получаю эту ошибку и особенно как ее исправить.

Вот мои классы:

mysql .h:

#ifndef mysql_H
#define mysql_H
#include <iostream>
#include <string>
#include <mysql_connection.h>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>

using namespace std;

class mysql
{
public:
    mysql();
    int connect;
    void createTables();
    list<char*> getResult(char* qry);

};


#endif // !mysql_H

mysql. cpp

#include <iostream>
#include <string>
#include <mysql_connection.h>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include "mysql.h"

using namespace std;
using namespace sql;

std::string host = "";
std::string port = "";
char* user = "";
char* password = "";
char* database = "";

sql::Driver *driver;
sql::Connection *con;
sql::ResultSet *res;

int connect() {


    try {
        driver = get_driver_instance();
        std::string url = "tcp://" + host + ":" + port;
        con = driver->connect(url, user, password);
        cout << "MySQL connected!";

        con->setSchema(database);
        cout << "Database selected!";
        return 0;
    }
    catch (sql::SQLException err) {
        cout << "ERROR: " << err.what << endl;
    }

}

void createTables() {
    sql::Statement *stmt;
    try {
        stmt = con->createStatement();
        stmt->executeQuery("CREATE TABLE IF NOT EXISTS JellyTest(Name VARCHAR(100), COINS INT)");
        cout << "TableCreating done";
    }
    catch (sql::SQLException err) {
        cout << "ERROR: " << err.what << endl;
    }
}

list<char*> getResult(char* qry) {
    sql::Statement *stmt;
    sql::ResultSet *res;
    list<char*> result;
    try {
        stmt = con->createStatement();
        res = stmt->executeQuery(qry);
        while (res->next) {
            result.assign(res->next);
        }
        return result;
    }
    catch (sql::SQLException err) {
        cout << "ERROR: " << err.what << endl;
    }
}

Спасибо за помощь и хорошего дня. (Я надеюсь, что вы можете понять этот текст, потому что я из Германии)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...