Postgresql-c-cpp
PostgreSQL-C/C ++インターフェイス
このチュートリアルでは、PostgreSQL用の公式C ++クライアントAPIである libpqxx ライブラリを使用します。 libpqxxのソースコードはBSDライセンスの下で利用できます。したがって、自由にダウンロードして他の人に渡したり、変更したり、販売したり、自分のコードに含めたり、選択した人と変更を共有したりできます。
インストール
libpqxxの最新バージョンは、リンクhttp://pqxx.org/download/software/libpqxx/[Libpqxxのダウンロード]からダウンロードできます。 だから、最新バージョンをダウンロードして、次の手順に従ってください-
C/C ++ PostgreSQLインターフェイスの使用を開始する前に、PostgreSQLインストールディレクトリで pg_hba.conf ファイルを見つけ、次の行を追加します-
次のコマンドを使用して、実行されていない場合にpostgresサーバーを起動/再起動できます-
C/C ++インターフェイスAPI
以下は、C/C ++プログラムからPostgreSQLデータベースを操作するための要件を満たすことができる重要なインターフェイスルーチンです。 より高度なアプリケーションを探している場合は、libpqxxの公式ドキュメントを調べるか、市販のAPIを使用できます。
S. No. | API & Description |
---|---|
1 |
pqxx::connection C( const std::string & dbstring ) これは、データベースへの接続に使用されるtypedefです。 ここで、dbstringはdatbaseに接続するために必要なパラメーターを提供します(例: dbname = testdb user = postgres password = pass123 hostaddr = 127.0.0.1 port = 5432 )。 接続が正常にセットアップされると、さまざまな便利な関数public functionを提供する接続オブジェクトを使用してCが作成されます。 |
2 |
C.is_open() is_open()メソッドは接続オブジェクトのパブリックメソッドであり、ブール値を返します。 接続がアクティブな場合、このメソッドはtrueを返し、そうでない場合はfalseを返します。 |
3 |
C.disconnect() このメソッドは、開いているデータベース接続を切断するために使用されます。 |
4 |
pqxx::work W( C ) これはtypedefであり、接続Cを使用してトランザクションオブジェクトを作成するために使用され、最終的にはトランザクションモードでSQLステートメントを実行するために使用されます。 トランザクションオブジェクトが正常に作成されると、トランザクションオブジェクトに関連するパブリックメソッドへのアクセスに使用される変数Wに割り当てられます。 |
5 |
W.exec(const std::string & sql) トランザクションオブジェクトのこのパブリックメソッドは、SQLステートメントの実行に使用されます。 |
6 |
W.commit() トランザクションオブジェクトのこのパブリックメソッドは、トランザクションをコミットするために使用されます。 |
7 |
W.abort() トランザクションオブジェクトのこのパブリックメソッドは、トランザクションをロールバックするために使用されます。 |
8 |
pqxx::nontransaction N( C ) これは、接続Cを使用して非トランザクションオブジェクトを作成するために使用されるtypedefであり、最終的には非トランザクションモードでSQLステートメントを実行するために使用されます。 トランザクションオブジェクトが正常に作成されると、変数Nに割り当てられ、非トランザクションオブジェクトに関連するパブリックメソッドへのアクセスに使用されます。 |
9 |
N.exec(const std::string & sql) 非トランザクションオブジェクトからのこのパブリックメソッドは、SQLステートメントを実行するために使用され、返されたすべてのレコードを保持するインタレーターである結果オブジェクトを返します。 |
データベースへの接続
次のCコードセグメントは、ポート5432でローカルマシンで実行されている既存のデータベースに接続する方法を示しています。 ここでは、行の継続にバックスラッシュ\を使用しました。
ここで、上記のプログラムをコンパイルして実行し、データベース testdb に接続します。データベースは既にスキーマで利用可能であり、ユーザー_postgres_とパスワード_pass123_を使用してアクセスできます。
データベース設定に基づいて、ユーザーIDとパスワードを使用できます。 -lpqxxと-lpqを指定された順序で保持することを忘れないでください! そうしないと、リンカは、「PQ」で始まる名前の欠落している関数について苦情を訴えます。
テーブルを作成する
次のCコードセグメントは、以前に作成されたデータベースにテーブルを作成するために使用されます-
上記のプログラムをコンパイルして実行すると、testdbデータベースにCOMPANYテーブルが作成され、次のステートメントが表示されます-
INSERT操作
次のCコードセグメントは、上記の例で作成したCOMPANYテーブルにレコードを作成する方法を示しています-
上記のプログラムがコンパイルおよび実行されると、COMPANYテーブルに特定のレコードが作成され、次の2行が表示されます-
SELECT操作
次のCコードセグメントは、上記の例で作成したCOMPANYテーブルからレコードを取得して表示する方法を示しています-
上記のプログラムがコンパイルされて実行されると、次の結果が生成されます-
更新操作
次のCコードセグメントは、UPDATEステートメントを使用してレコードを更新し、更新されたレコードをCOMPANYテーブルから取得して表示する方法を示しています-
上記のプログラムがコンパイルされて実行されると、次の結果が生成されます-
削除操作
次のCコードセグメントは、DELETEステートメントを使用してレコードを削除し、COMPANYテーブルから残りのレコードを取得して表示する方法を示しています-
上記のプログラムがコンパイルされて実行されると、次の結果が生成されます-