INIや設定: データベース設定/特性/オプション
データベース特性のオプションラベルについて。
Pervasive.SQLを使うときは、図のような設定がデフォルトかと思います。
OracleやMS_SQL_Serverでは若干異なります。
(Magicロックが「N=なし」になっている等。)
通常は、デフォルト設定で特に支障は無いと思いますが、意味を知っておくのも悪くないでしょう。
ここで、個人的に一番重要だと思うのは「開発モードでのテーブル変換」です。
これが「True」のときは、テーブルリポジトリでの変更が物理テーブルにも影響します。
具体的には、Magicのテーブルリポジトリでカラム(項目)やインデックス(キー)を追加したり、
変更したりすると、「変更しますか」という確認画面が表示され、
「はい」で進めるとデータベース内の物理テーブルを自動変更してくれるという機能が有効になります。
また、テーブルリポジトリで削除(F3)を実行すると物理テーブルも削除されます。
テーブル定義だけ削除するつもりで押したF3によって実データも消えてしまった、というケースのことです。
逆に、「開発モードでのテーブル変換」が「False」であれば、テーブルリポジトリで削除キー(F3)を押しても、
実データが消される心配は無い、ということです。
これは、使うデータベースがPervasiveでもOracleでもMS_SQL_Serverでも共通の動作になります。
デフォルトは「True」なので、注意が必要です。
但し、データベースの権限として、Magic開発者にテーブル削除の権限が与えられていなければ、
Magicの設定が何であってもテーブルを削除することはありません。
「定義チェック」は、Magicのテーブルリポジトリでの設定とデータベースの物理テーブルの設定が一致しているかをチェックする機能です。
しかし、OracleやMS_SQL_Serverでは機能していないようです。
カラム名が合っていれば、型や桁数が異なっていてもエラーにならないようです。
「インデックスチェック」もOracleやMS_SQL_Serverでは機能しませんが、ここは無効なデータベースの場合、初めからグレーになっています。
OracleやMS_SQL_Serverで、ユニークインデックスの重複チェックを項目単位で検出したいときは、SQLタブの設定を使います。
データベース設定/特性/SQLを参照してください。
「Magicロック」は、mglock.datでテーブルロックやレコードロックを監視させる設定です。
OracleやMS_SQL_Serverではデフォルトが「N=なし」になりますが、DBMSのロック機能にMagicも従っているので、
「N=なし」のままで特に問題無いと思います。
しかし、使い道が無いわけではありません。
遅延トランザクションを使うときのロック制御として、Magicロックを使いたいときがあります。
但し、遅延トランザクションは難しいので、実際には、あまり用いられていないようですが。
「ロックパス」は、上記のようにOracleやMS_SQL_ServerでMagicロックを使いたいときに、
mglock.datを作成するフォルダを指定します。
通常は、サーバ上の共有フォルダを使うことが多いかと思います。
例:\\Server1\Magic\
「共通データ辞書」は使ったことがありません。