スポンサーリンク

PostgreSQLをC言語から呼び出す(2) select文

#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;
  try {
 

      
    pgres = PQexec(conn, "select schemaname, tablename, tableowner  from pg_tables");


    if (PQresultStatus(pgres) != PGRES_TUPLES_OK) {
      throw -1;
    }

    int row = PQntuples(pgres); // 行数取得
    int col = PQnfields(pgres); // 列数取得

    // 列名ループ
    for (int c = 0; c < col; c++) {

      //列名取得
      char* name = PQfname(pgres, c);
      printf("%-25s | ", name);

    }
    printf("\n-----------------------------------------------------------------------------------\n");
    // 行番号ループ
    for (int r = 0; r < row; r++) {
      // 列ループ
      for (int c = 0; c < col; c++) {

        // 値取得
        char* val = PQgetvalue(pgres, r, c);
        printf("%-25s | ", val);
      }
      puts("");
    }


    PQclear(pgres);

      
  }
  catch (...) {
    printf("%s", PQerrorMessage(conn));
    PQclear(pgres);
  }

  PQfinish(conn);


}

コメントを残す

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

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


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