複数のデータベースの操作

Adobe AIR 1.0 およびそれ以降

SQLConnection.attach() メソッドを使用すると、既に開いているデータベースがある SQLConnection インスタンスで追加のデータベースへの接続を開くことができます。 http://help.adobe.com/ja_JP/Flash/CS5/AS3LR/flash/data/SQLConnection.html attach() メソッドの呼び出しで name パラメーターを使用して、関連付けるデータベースに名前を付けます。その名前は、そのデータベースを操作するステートメントを記述する際に、SQL ステートメント内でテーブル名を修飾するための接頭辞として使用できます( データベース名.テーブル名 の形式を使用します)。これにより、そのテーブルがそのデータベースにあることをランタイムに対して示すことができます。

同じ SQLConnection インスタンスに接続されている複数のデータベースのテーブルを含む 1 つの SQL ステートメントを実行することができます。SQLConnection インスタンスでトランザクションを作成すると、そのトランザクションは、その SQLConnection インスタンスを使用して実行されるすべての SQL ステートメントに適用されます。関連付けられているどのデータベースに対してステートメントが実行されるかは関係ありません。

また、アプリケーションで複数の SQLConnection インスタンスを作成して、各インスタンスを 1 つ以上のデータベースに接続することもできます。ただし、同じデータベースに対して複数の接続を使用する場合は、データベーストランザクションは複数の SQLConnection インスタンスにまたがって共有されないことに注意する必要があります。その結果、複数の SQLConnection インスタンスを使用して同じデータベースファイルに接続すると、両方の接続のデータ変更が正しく適用されるという保証が得られなくなります。例えば、2 つの UPDATE ステートメントまたは DELETE ステートメントを別の SQLConnection インスタンスを通じて同じデータベースに対して実行した場合に、1 つ目の操作の実行後にアプリケーションエラーが発生すると、データベースのデータが元に戻せない中間状態のままになり、データベースの整合性(および、結果としてアプリケーション)に影響が及ぶ可能性があります。