スポンサーリンク

PostgreSQLをC言語から呼び出す(1)

pg_ctl start しておく必要がある。

includeディレクトリ: C:\PostgreSQL\include

ライブラリディレクトリ:C:\PostgreSQL\lib

必要なDLLは:C:\PostgreSQL\bin

・libcrypto-3-x64.dll

・libiconv-2.dll

・libintl-9.dll

・libpq.dll

・libssl-3-x64.dll

・libwinpthread-1.dll

#include <iostream>

#include <libpq-fe.h>

#pragma comment(lib,"libpq.lib")

int main()
{

// データベースへ接続する
// ユーザー名:postgres // パスワード:password PGconn* conn; conn = PQconnectdb("user=postgres password=password"); if (PQstatus(conn) != CONNECTION_OK) { printf("%s", PQerrorMessage(conn)); exit(1); } PGresult* pgres; #if 1 // ユーザー名 cuser , cpassword でユーザー作成 pgres = PQexec(conn, "CREATE USER cuser WITH PASSWORD 'cpassword'"); if (PQresultStatus(pgres) != PGRES_COMMAND_OK) { // 確認方法:postgres=# SELECT usename FROM pg_user; printf("%s", PQerrorMessage(conn));
 PQclear(pgres); exit(1); }
PQclear(pgres);  
// データベース名 cdatabase , 使用者 cuser でユーザー作成 pgres = PQexec(conn, "CREATE DATABASE cdatabase OWNER cuser"); if (PQresultStatus(pgres) != PGRES_COMMAND_OK) { // 確認方法:\l printf("%s", PQerrorMessage(conn));
 PQclear(pgres);
exit(1); }
 PQclear(pgres); #else // ユーザやデータベースを削除する場合:
pgres = PQexec(conn, "DROP DATABASE cdatabase"); if (PQresultStatus(pgres) != PGRES_COMMAND_OK) { printf("%s", PQerrorMessage(conn));
 PQclear(pgres); exit(1); }
 PQclear(pgres);


pgres = PQexec(conn, "DROP USER cuser"); if (PQresultStatus(pgres) != PGRES_COMMAND_OK) { printf("%s", PQerrorMessage(conn));
 PQclear(pgres); exit(1); }  PQclear(pgres);
#endif

PQfinish(conn);
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: