【Magic xpa 連載最新号のご案内】 2026年3月9日
Magic xpa 開発者ユーザの皆様へ
【1】 Magic xpa 連載のご案内
------------------------------------------------
本日、Magic xpa の連載、「Magic xpa で作るイベントドリブン型プログラム」の第216回目「MemoryテーブルとLocalデータベースの違い」を連載コーナーにアップいたしました。
https://www.tandacomp.com/ホーム/magic-連載コーナー
Magic xpa開発版の「データベース」テーブルを開くと、そこに、「Local」と「Memory」と「SQLite」という3種類のデータベース(DBMS)がデフォルトで用意されているのが分かります(画面1)。

画面1 3種類の異なるデータベース
これらの3つは、基本的にはいずれも他のユーザ(他のセッション)とは「データを共有しないこと」を目的として用意されたシングルユースのデータベースなのですが、目的によって使い分けることができるようになっています。今回は、その機能の違いと、用途の違いについて学習していきたいと思います。
まず、これらのデータベースのいちばん大きな違いは、セッションが終了したあとにデータが自動的に消えるようにするか、あるいは残るようにするかの違いです。Memoryはその名の通り、メモリ上に展開されるテーブルですから、セッション(コンテキスト)が終了すると同時にメモリ上のデータも自動的にクリアされます。これに対してLocalとSQLiteは、セッションが終了したあともデータがそのまま残ります。したがって、次のセッションでも再利用することができます。
※SQLiteはサーバ上にファイルを置いて他のユーザとデータを共有(排他制御は別問題)することもできますが、「位置」の指定を「C:¥」から始まるローカルパスに指定することで、他のユーザとはデータを切り離すことができるようになります(ただし、リモートAPPでは不可)。
ではここで、LocalとSQLiteの違いは何なのでしょうか。この2つはいずれも内部的にはSQLiteを使用しています。画面1の「位置」の欄の表示を見るとそれが確認できます。ではその違いはというと、SQLiteはサーバ側とクライアント側のいずれにもファイルを置くことができるのに対して、Localはクライアント側専用の配置を目的としたものになります。
では、SQLiteを用いれば「C:¥」から始まるローカルパスの指定もできるのに、なぜ、あえてLocalデータベースというものが存在するのでしょうか。それはRIAに対応させるために用意されたものであるからです。RIAでは、例えばSQLiteを使用して「C:¥」から始まるパスを指定したとしても、それはサーバPC上でのパスになってしまいます。たとえば、「位置」の欄で「C:¥work¥mySqlite.SQLIte」とすると、サーバPC上の「C:¥work」にファイルが置かれてしまい、全クライアントから見て、共有パスになってしまいます。
この問題を回避するために登場したのが、Localデータベースです。この機能を用いれば、たとえサーバ上で動作するRIAアプリケーションであっても、明示的にクライアントPC内にファイルを配置することができるようになります。さらには、Windowsと違ってドライブ名自体を持たないiOSやAndroidクライアントであっても対応が可能となり、データベースをスマホ内に置くことができるようになります。
今回は、これら3つのデータベースの違いを細かく見ていこうと思います(以降、本編に続く)。
目次
1. 3つのDBMSのいちばん大きな違い
2. Localデータベースが登場した歴史的な背景
3. Memoryテーブルの基本的な動作
4. 同一のセッション中はデータが温存
5. セッション終了とともにデータも消滅
6. SQLiteデータベースの基本的な動作
7. ローカルフォルダのパスを指定
8. セッション再起動後もデータは温存
9. ローカルパスのデータを確認
10. Localデータベースの基本的な動作
11. RIAアプリをWindowsスタートから実行
12. Windowsスタートから再実行後のデータ
13. ローカルキャッシュフォルダの場所
次回は、「部分一致検索の高速化ノウハウ」をお送りします。
購読期間中は現在掲載中の過去記事をすべて読むことができます。
皆様のお越しをお待ちいたしております。
-
This issue looks very helpful as well, so I'll take my time reading it. Looking forward to the next installment.
サインインしてコメントを残してください。
コメント
1件のコメント