/* postgreSQLデータベースからの読み出し テストプログラム */ /* g++ -g read_sql.cpp -o read_sql.exe -I"D:\PostgreSQL\pg96\include" -L"D:\PostgreSQL\pg96\lib" -llibpq */ #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <string.h> #include <sys/types.h> #include "libpq-fe.h" const char *conninfo = "host=localhost user=postgres password=c-anemone dbname=ca_db"; PGconn *conn; int main() { // データベースとの接続を確立する conn = PQconnectdb(conninfo); // バックエンドとの接続確立に成功したかを確認する */ if (PQstatus(conn) != CONNECTION_OK){ fprintf(stderr, "Connection to database failed: %s", PQerrorMessage(conn)); } char stringSQL[256] = {0}; sprintf(stringSQL, "SELECT * FROM side_list where s = 90;"); // 検索条件 PGresult *res = PQexec(conn, stringSQL); // エラーチェック if( PQresultStatus( res ) != PGRES_TUPLES_OK ) { // error printf("error_2"); exit(-1); } int res_cnt = PQntuples( res ); // 検索数を得る for(int loop = 0; loop < res_cnt ; loop++) { int a = atoi(PQgetvalue(res, loop, 0)); // 文字列から整数へ int b = atoi(PQgetvalue(res, loop, 1)); // 文字列から整数へ int c = atoi(PQgetvalue(res, loop, 2)); // 文字列から整数へ double d = atof(PQgetvalue(res, loop, 3)); // 文字列から実数へ printf("a=%d, b=%d, c=%d, d=%f\n", a,b,c,d); } // 値セットが無い場合でも必ず結果をクリアする PQclear(res); return 0; }