データベース
名前空間: DB
データベースは抽象化されたインターフェースを通してアクセスします。
■データベースのオープン■トランザクション開始■ロールバック■コミット■レコードセット作成■SQL文実行■利用例
データベースのオープン
| 関数名 | Open(str_engine_name, str_open_parameter) |
| 別名 | open |
| 引数 | str_engine_name データベースエンジンを、文字列で指定します。現在利用可能なのは以下の通りです。 'PostgreSQL' 実行には、libpq.so(linux)、またはlibpq.dll(Windows)が必要 'MySQL' 実行には、libmysqlclient.so(linux)、またはlibmySQL.dll(Windows)が必要 str_open_parameter データベースをオープンする際に必要なパラメータを文字列で指定します。 パラメータの形式は、 "hostaddr=IPアドレス dbname=データベース名 user=ユーザ password=パスワード" |
| 戻り値 | 正常にオープンできた場合 true それ以外 false |
| イベント | 正常にオープンできた場合のみ、$result に データベース識別子がセットされ、イベントが発行されます。 |
| 備考 | イベント終了時に、データベースは自動的にクローズされます。 |
トランザクション開始
| 関数名 | BeginTrans(id_database) |
| 別名 | begin_trans |
| 引数 | id_database データベース識別子 |
| 戻り値 | 無し |
| イベント | 無し |
ロールバック
| 関数名 | Rollback(id_database) |
| 別名 | rollback |
| 引数 | id_database データベース識別子 |
| 戻り値 | 無し |
| イベント | 無し |
コミット
| 関数名 | Commit(id_database) |
| 別名 | commit |
| 引数 | id_database データベース識別子 |
| 戻り値 | 無し |
| イベント | 無し |
レコードセット作成
| 関数名 | CreateDynaset(id_database, str_format_sql, ...) |
| 別名 | create_dynaset |
| 引数 | id_database データベース識別子 str_format_sql 書式化文字列。書式化文字列は、文字列中に以下の特別な指定を持てます。 %d 引数を受け取り、数値として置換 %s 引数を受け取り、文字列としてデータベースに格納可能な適切な形式に変換した後、 '(シングルクォーテーション)でくくる。ただし、文字列が空かnullであれば、NULLとして置換。 %S 引数を受け取り、文字列としてデータベースに格納可能な適切な形式に変換する str_format_sqlに続く引数 上述書式化文字列内にある、特殊指定数分の引数を指定。 |
| 戻り値 | 正常にレコードセットが作成できた場合(レコード数が0でも正常に作成とみなす) 件数 それ以外 -1 |
| イベント | 正常にレコードセットが作成できた場合のみ、$result に 1レコードがセットされ、イベントが発行されます。 $resultは連想配列となり、要素名にカラム名、要素にフィールドが入ります。 |
SQL文実行
| 関数名 | ExecuteSQL(id_database, str_format_sql, ...) |
| 別名 | execute_sql |
| 引数 | id_database データベース識別子 str_format_sql 書式化文字列。書式化文字列は、文字列中に以下の特別な指定を持てます。 %d 引数を受け取り、数値として置換 %s 引数を受け取り、文字列としてデータベースに格納可能な適切な形式に変換した後、 '(シングルクォーテーション)でくくる。ただし、文字列が空かnullであれば、NULLとして置換。 %S 引数を受け取り、文字列としてデータベースに格納可能な適切な形式に変換する str_format_sqlに続く引数 上述書式化文字列内にある、特殊指定数分の引数を指定。 |
| 戻り値 | 正常にSQLが発行できた場合 true それ以外 false |
| イベント | 正常にSQLが発行できた場合のみ、イベントが発行されます。パラメータは存在しません。 |
strParameter = "hostaddr=IPアドレス dbname=データベース名 user=ユーザ password=パスワード";
DB::Open("PostgreSQL", strParameter){
strName = "scott";
DB::CreateDynaset($result, "SELECT sal, name FROM emp WHERE name=%s", strName){
println($result['name'] + "さんが、" + $result['sal'] + "で見つかりました。");
}
}
