SQLコマンドの実行

PostgreSQL 8.4.1文書
前のページ | 巻戻し | 第 32章ECPG - C言語による埋め込みSQL | 早送り | 次のページ

# 32.4. SQLコマンドの実行

全てのSQLコマンドは、埋め込みSQLアプリケーション内で実行できます。 以下に例をいくつか示します。

テーブルを作成します。

    EXEC SQL CREATE TABLE foo (number integer, ascii char(16));
    EXEC SQL CREATE UNIQUE INDEX num1 ON foo(number);
    EXEC SQL COMMIT;

行を挿入します。

    EXEC SQL INSERT INTO foo (number, ascii) VALUES (9999, 'doodad');
    EXEC SQL COMMIT;

行を削除します。

    EXEC SQL DELETE FROM foo WHERE number = 9999;
    EXEC SQL COMMIT;

単一行を選択します。

    EXEC SQL SELECT foo INTO :FooBar FROM table1 WHERE ascii = 'doodad';

カーソルを使用して選択します。

    EXEC SQL DECLARE foo_bar CURSOR FOR
        SELECT number, ascii FROM foo
        ORDER BY ascii;
    EXEC SQL OPEN foo_bar;
    EXEC SQL FETCH foo_bar INTO :FooBar, DooDad;
    ...
    EXEC SQL CLOSE foo_bar;
    EXEC SQL COMMIT;

更新します。

    EXEC SQL UPDATE foo
        SET ascii = 'foobar'
        WHERE number = 9999;
    EXEC SQL COMMIT;

`:`something``という形のトークンはホスト変数です。 つまり、Cプログラム内の変数を参照するものです。 これについては項32.6で説明します。

デフォルトモードでは、文は`EXEC SQL COMMIT`が発行されることのみによりコミットされます。 埋め込みSQLインタフェースでも、（libpqの振舞いに似た）トランザクションの自動コミットをサポートしています。 自動コミットは、`ecpg`コマンド（以下を参照）の`-t`コマンドラインオプション、あるいは `EXEC SQL SET AUTOCOMMIT TO ON`文によって可能になります。 自動コミットモードでは、問い合わせが明示的なトランザクションブロックの内部にある場合を除き、全ての問い合わせが自動的にコミットされます。 自動コミットモードは、`EXEC SQL SET AUTOCOMMIT TO OFF`を使用して明示的に無効にすることができます。

前のページ | ホーム | 次のページ
接続を閉じる | 上に戻る | 接続の選択