连接到postgresql数据库的奇怪错误

时间:2012-08-01 11:25:11

标签: c++ database postgresql postgresql-8.4

我一直关注this tutorial,但是我得到了一些我不太了解的错误。我几乎只有2个功能,一个用于关闭它,另一个用于打开它。我对这些错误的原因一无所知。

DatabaseWriter.h:

#ifndef FILEPARSER_H
#define FILEPARSER_H

#include "DatabaseWriter.h"

using namespace std;

class DatabaseWriter
{
private:

public:
    void CloseConn(PGconn *conn);
    PGconn DatabaseWriter::*ConnectDB ();

    DatabaseWriter ();

};

#endif

DatabaseWriter.cpp

#include "stdafx.h"
#include <string>
#include <string>
#include "libpq-fe.h"
#include "DatabaseWriter.h"

using namespace std;

const char* CONNECTIONSTRING = "user=postgres password=superman dbname=poker hostaddr=127.0.0.1 port=5432";

void DatabaseWriter::CloseConn (PGconn *conn)
{
    PQfinish(conn);
    getchar();
    exit(1);
}

PGconn DatabaseWriter::*ConnectDB ()
{
    PGconn *conn = NULL;

    // Make a connection to the database
    conn = PQconnectdb(CONNECTIONSTRING);

    // Check to see that the backend connection was successfully made
    if (PQstatus(conn) != CONNECTION_OK)
    {
        printf("Connection to database failed");
        CloseConn(conn);
    }

    printf("Connection to database - OK\n");

    return conn;
}

我之前自己定义了CloseConn,所以不应该定义它。

Error 1

ConnectDB的返回类型是PGconn,conn是PGconn,所以我不明白为什么它不应该返回它。

Error 2

显然有些事情我会公然看待,所以谢谢你的努力。

1 个答案:

答案 0 :(得分:1)

只有在定义中,您不需要类声明中的DatabaseWriter::。我还建议您仔细研究一下这个定义,尤其是*所在的定义。