linux下C言語プログラミング3-接続PostgreSQL
1824 ワード
PostgreSQLはlibpqライブラリを開発し、C言語で外部プログラムを記述してPGデータベースに接続することができる.
Cプログラムでは、libpqライブラリ、#include"libpq-fe.h"を最初にロードする必要があります.引用符に注意してください.
このプログラムをコンパイル:
gcc -I/usr/local/pgsql/include -o pq PQresult.c -L/usr/local/pgsql/lib -lpq
-I/usr/local/pgsql/includeは、PGインストール後のincludeディレクトリです.
-L/usr/local/pgsql/libはPGインストール後のlibディレクトリです.
次に、完全な例を示します.
Cプログラムでは、libpqライブラリ、#include"libpq-fe.h"を最初にロードする必要があります.引用符に注意してください.
このプログラムをコンパイル:
gcc -I/usr/local/pgsql/include -o pq PQresult.c -L/usr/local/pgsql/lib -lpq
-I/usr/local/pgsql/includeは、PGインストール後のincludeディレクトリです.
-L/usr/local/pgsql/libはPGインストール後のlibディレクトリです.
次に、完全な例を示します.
#include
#include "libpq-fe.h"
// PGresult
void PQresultPrint(PGresult *res)
{
int nFields = PQnfields(res);
int nTuples = PQntuples(res);
int i, j;
for (i=0; iExecuteQuery(char *host, int port, char *dbname, char *query)
{
PGconn *conn;
PGresult *res;
char str[128];
sprintf(str, "host=%s port=%d dbname=%s", host, port, dbname);
//
conn = PQconnectdb(str);
if(PQstatus(conn) == CONNECTION_BAD)
{
fprintf(stderr," ! host: %s/n", host);
fprintf(stderr,"%s",PQerrorMessage(conn));
}
// SQL
res = PQexec(conn, query);
if (PQresultStatus(res) == PGRES_FATAL_ERROR)
{
fprintf(stderr, "%s", PQerrorMessage(conn));
}
// :CREATE, UPDATE, DELETE
if (PQresultStatus(res) == PGRES_COMMAND_OK)
{
printf("%s/n", PQcmdTuples(res));
}
// SELECT SQL
if (PQresultStatus(res) == PGRES_TUPLES_OK)
{
}
PQfinish(conn);
return res;
}
int main()
{
char *sql = "SELECT * FROM student;";
PGresult *res = ExecuteQuery("127.0.0.1", 5432, "test", sql);
PQresultPrint(res);
PQclear(res);
return 0;
}
“ ”,
1) ( ) ( ) ,ping 。
2) pg_hba.conf, IP, 。