DBISAMが扱えるセッションのタイプは以下の通りです

  1. ローカルセッション
  2. リモートセッション
    1. LAN接続
    2. 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としたりすると、無限ループになってしまうので気をつけてください。