| ||||||||||
| MINERVA superseeded IF/Prolog.
Please see
http://www.ifcomputer.co.jp/MINERVA
for details.
We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008. IF/SQL述語を使用した動的なデータベース操作の完全なトランザクションは以下の手順で行なわれます。
1. SQLコマンドの宣言、RDBMSでの事前翻訳、及びそのコマンドのカーソルの定義(sql_declare/5)。 2. もしSQLコマンドのバインド変数があれば、これを具体化する。 3. コマンドの実行(sql_open/2)。 4. データのアクセス、アプリケーションへの転送(SQL SELECTコマンドのみ) a) sql_fetch_buf/2 と sql_get_value/5 または b) sql_descr_out/2 と sql_fetch/4 或は sql_fetch_n/5 5. いくつかのSQL INSERT、SQL UPDATE、SQL DELETEコマンドの実行後に、トランザクションのコミット(sql_commit/1)またはロールバック(sql_rollback/1)をする。 6. コマンドのカーソルの解放。 ユーザー許可、データ定義、データ検索、データ加工など、どのようなSQLコマンドでも上記の方法で実行することができます。 ステップ1とステップ3は常に実行されねばなりません。 ステップ2はバインド変数を持つコマンドの場合のみに必要です。 ステップ4aまたはステップ4bはSQL SELECTコマンドの場合のみに意味があります。 必ず、ステップ1、2、3、[4、5、] 6の順序で実行してください。 ステップ2、3 [、4]は何度でも実行できます。 様々なデータベース操作、すなわち異なるカーソルを持つコマンドを、並列に実行することができます。つまり、それらのデータベース操作はお互いにインタリーブしたり、ネストすることが出来ます。 sql_declare/5のCursor引数が`immediate'であるような呼出しは特別な意味を持っており、翻訳後すぐ指定されたSQLコマンドを実行します。(バインド変数またはselect変数は存在することができません!)。これはRDBMSによるコマンドの解釈実行を行なうsql_execute(+SqlCmd,-RC)と同等です。 なお、この述語は、一度以上呼び出せないSQLコマンドの代りに使うこともできます。その性能をダイナミックSQLコマンドと比べてみて下さい。 | ||||||||||
|
| Back> |
|