PostgreSQLライブラリ Libpqを使ったプログラム作成のためのひながた (Windows, Linux)
目的
Postgre SQL サーバにアクセスせしめたるためのライブラリ Libpq をただちに用いるための Windows, Linux 両対応のプログラム作成のための ひながた
動作環境
ホストOS側 : Windows 11
ゲストOS側: Debian 12.6
VMクライアント: VirtualBox 6.1
VSCode 1.100.2 (Linux 用のビルド・デバッグの場合)
Visual Studio 2022 (Windows 用のビルド・デバッグの場合)
ひな サンプル内容
但し, Linux の場合、動作機に
sudo apt-get install libpq-dev
で ランタイムを入れておく必要があります。
LinuxUniq.cpp
#include "build.h"
#ifdef Linux
#endif
WindowsUniq.cpp
#include "build.h"
#ifdef Linux
#endif
build.h
#include
#include
#include "libpq-fe.h"
#ifdef __x86_64
#define x64
#endif
#ifdef Windows
#define CONINFO "host=127.0.0.1 port=5432 dbname=azcts2 user=postgres password=nomaru2011"
#else
#define CONINFO "host=192.168.56.1 port=5432 dbname=azcts2 user=postgres password=nomaru2011"
#endif
libpqUser.cpp
#include "build.h"
int main()
{
#ifdef Windows
#endif
PGconn *conn;
PGresult *res;
int i;
conn = PQconnectdb(CONINFO);
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "%s", PQerrorMessage(conn));
exit(1);
}
res = PQexec(conn, "SET CLIENT_ENCODING TO 'UTF-8'; SELECT name FROM articles order by id");
if (PQresultStatus(res) != PGRES_TUPLES_OK)
{
fprintf(stderr, "%s", PQerrorMessage(conn));
exit(1);
}
for (i = 0; i < PQntuples(res); i++)
{
printf("%s\n", PQgetvalue(res, i, 0));
}
PQclear(res);
PQfinish(conn);
return 0;
}