2012-08-01 166 views
1

我一直在关注this tutorial,但是我得到一些我不太明白的错误。我几乎只有2个功能,一个用于关闭它,另一个用于打开它。我无能为力,为什么这些错误在这里。连接到postgresql数据库的奇数错误

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

您不需要类声明中的DatabaseWriter::,只在定义中。我还建议你仔细看看这个定义,特别是其中包含*的地方。