DBISAMが扱えるセッションのタイプは以下の通りです
- ローカルセッション
- リモートセッション
- LAN接続
- WAN接続(Internetなど)
TDBISAMSessionの位置付けについては概観のセクションで説明した通りです。ここでは、セッションを開く方法について説明します
ローカルセッションを開く
ローカルセッションの場合、TDBISAMSessionコンポーネントで設定すべきプロパティはあまりありません。最小限、以下のプロパティをセットすれば十分でしょう。
TDBISAMSession
-
property SessionName :
TDBISAMDatabase/TDBISAMTable/TDBISAMQueryから参照される名称です
-
property PrivateDir :
DBISAMがテンポラリファイルを書き出すディレクトリ。このプロパティが指定されていない場合、
DBISAMはアプリケーションのカレントディレクトリに作業ファイルを書き出します。ファイルサーバによるデータベース共有を行う場合に、作業ディレクトリは必ずローカルマシンのディレクトリになるように設定してください。作業ディレクトリとして、ファイルサーバ上の共有ディレクトリが使われてしまうと、当然のこととながら性能が悪化し、また、作業ファイルの名前が重複した場合には予期せぬエラーが発生します。 -
property Active :
このプロパティをTRUEにすると、セッションの接続が行われます。リモートセッションの場合はサーバに接続してユーザ認証が行われます
-
procedure Open :
Active := Trueと同じ効果です
リモートセッションを開く (C/S版でなくても(一応)使えます)
SessionTypeプロパティを
stRemoteにセットすることで、リモートのデータベースサーバに接続できるようになります。標準(Sigle-Tier)版にも、同時接続ユーザ数が5に限定された
DBISAM
Serverがバンドルされており、自由に配布して使用することができます。C/S版を購入することで、接続ユーザ数の上限がなくなります。
TDBISAMSession
-
property SessionType :
stLocal / stRemote で、セッションがローカルかリモートかを指定します
-
property RemoteType :
rtLAN / rtInternet
で、回線の性質を指定します。rtInternetを指定すると、パケットの往来回数が少なくなるように通信が最適化され、データ圧縮や、タイムアウト時間の調節がなされます。インタネットやWAN回線越しにサーバにアクセスする際に、RemoteTypeがrtLANのままだと、全く耐えがたいパフォーマンスになりますので、注意してください。10Mbps未満の回線ではrtInternetがよいかと思われます。 -
property RemoteAddress/RemoteHost :
接続するサーバのIPアドレス/ホスト名を指定します。RemoteAddressとRemoteHostが両方設定された場合は、RemoteHostが優先されます。(もちろん、どちらか一方が設定されるのが普通です)
-
property RemotePort :
接続先サービスのポート番号を指定します。通常デフォルト12001でよいでしょう。サーバの起動パラメータでポートを変えた場合にはその値を設定してください
-
property RemoteService :
ポート番号の代わりにサービス名を与えて、WindowsのSERVICESファイルの定義を参照させることもできます。ポート番号とサービス名の両方が指定された場合はサービス名が優先されます。こちらは設定せず、RemotePortプロパティで設定する方が普通でしょう。
-
property RemoteUser :
ログインユーザ名を指定します。大文字小文字は区別されません
-
property RemotePassword :
パスワードを設定します。大文字小文字は区別があるので、CAPS Lockキーに注意。
(インストールした状態の
DBISAM Server には、(ユーザ名, パスワード) = (Admin,
DBAdmin) という管理者ユーザが登録されています) -
property ForceBufferFlush:boolean :
データをディスクに書き出すシステムコールを呼ぶ都度、OSのバッファをフラッシュして、確実にディスクに書き込むように設定します。性能は悪化しますが安全性が増します。(後述)
-
property OnStartUp: TNotifyEvent :
セッションがOpenされる直前に起動されるイベントです。クエリーをOpenすることによって自動的にセッションが開かれるような場合に、このイベントの中でレジストリからログインユーザ名やパスワードを読み出して、セッションのプロパティをセットするなどの使い方が可能です。なお、OnStartUpイベントの中からセッションをOpenしたりActive:=Trueとしたりすると、無限ループになってしまうので気をつけてください。