0

制作一个连接到 PostgreSQL 数据库的标头我将 libpq 函数封装到我自己的函数中,但是在其中一个函数中,它应该返回一个 PGconn 类型的指针,我得到一个类型的错误......

ConexionPostgres.c:32:6: aviso: la asignación crea un puntero desde un entero sin una conversión [activado por defecto] /tmp/ccCeaewL.o: In functionmain ': ConexionPostgres.c:( .text+0x86): undefined reference to设置BD'

我认为这是因为原型所以我更改了原型并将定义直接放在 main 之前但什么都没有......有人能告诉我发生了什么吗?

我正在检查 Postgres libpq 文档和 libpq-fe.h 直接查看原型,所以我没有遗漏任何东西,但我很困惑。这是我的代码:

PGconn *setDB(char *conninfo)
{
    PGconn *db;
    db = PQconnectdb(conninfo);

    if(!db)
          printf("Error en conexion a la BD");

    if(PQstatus(db) != CONNECTION_OK)
    {
      printf( "%s\n", PQerrorMessage(db));
    }
    else
    {
        return db;
    }

}

int main()
{

      const char *conninfo = "dbname='database' host='somehost' user='me' password='somepass'";
    //char *query = "INSERT INTO productos VALUES ('1','5','235')";

    PGconn *con;
    con = setBD(conninfo); /* --> Here's apparently the problem */  

    PQfinish(con);
    exit(0);

}
4

1 回答 1

3

错字。您调用函数setBD(),而调用定义的函数setDB()

于 2013-04-04T08:56:31.223 回答