0

PostgreSQL データベースに接続するためのヘッダーを作成する libpq 関数を独自の関数にカプセル化していますが、そのうちの 1 つで、タイプ 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'

プロトタイプのせいだと思ったので、プロトを変更してメインの直前に定義を置きましたが、何も...何が起こっているのか誰か教えてもらえますか?

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 に答える