4D v16

USE DATABASE

ホーム

 
4D v16
USE DATABASE

USE DATABASE  


 

 

USE [LOCAL | REMOTE] DATABASE
{DATAFILE <Complete pathname> | SQL_INTERNAL | DEFAULT}
[AUTO_CLOSE]

説明  

USE DATABASEコマンドを使用してエクスターナルデータベースをカレントデータベースとして指定できます。これによりカレントプロセス内での次のSQLクエリ送信先が変更されます。Begin SQL/End SQL構造内、SQL EXECUTEおよびSQL EXECUTE SCRIPTコマンド等、すべてのタイプのSQLクエリに効果が及びます。

Note: エクスターナルデータベースに関する情報はCREATE DATABASEコマンドの説明を参照してください。

  • シングルユーザ環境で動作している場合、エクスターナルデータベースは4Dと同じマシン上に存在しなければなりません。
  • リモートモードで動作している場合、エクスターナルデータベースはローカルマシンまたは4D Serverマシン上に配置できます。

4Dをリモートモードで使用している場合、REMOTEキーワードを使用して4D Server上のエクスターナルデータベースを指定できます。
安全のため、このメカニズムはネイティブなリモート接続、つまり4D Serverに接続したリモート4Dデータベースでのみ動作します。ODBCやパススルー経由の接続では使用できません。
キーワードが指定されない場合、デフォルトでLOCALオプションが使用されます。4Dをローカルモードで使用している場合、REMOTEおよびLOCALキーワードは無視されます。接続は常にローカルです。

使用するエクスターネルデータベースを指定するには、その完全パス名 (アクセスパス + 名前) をDATAFILE句に渡します。パスはPOSIXシンタックスあるいはシステムシンタックスのいずれかを使用できます。パスは絶対、あるいはメイン4Dデータベースのストラクチャファイルから相対で表します。
リモートモードでは、REMOTEキーワードが渡されると、この引数はサーバーマシンからのデータベースパスを指定します。このキーワードが省略されるかLOCALキーワードが渡されると、この引数はローカル4Dマシンのデータベースパスを指定します。

重要: アクセスコントロールが有効にされていない (Designerパスワードが指定されていない)、利用可能なエクスターナルデータベースを指定しなければなりません。そうでなければエラーが生成されます。

メインデータベースをカレントデータベースとして再設定するには、SQL_INTERNALまたはDEFAULTキーワードを渡してコマンドを実行します。

使用後、つまりカレントデータベースを変更する際、現在のエクスターナルデータベースを物理的に閉じる場合はAUTO_CLOSEキーワードを渡します。エクスターナルデータベースを開く際には時間が消費されるため、最適化の目的で4Dはユーザセッション中に開かれたエクスターナルデータベースの情報をメモリ中に保持します。この情報は4Dアプリケーションが起動されている間保持されます。そのため同じエクスターナルデータベースを再度開く際にはより速く行えます。しかしこの場合、エクスターナルデータベースはそれを最初に開いたアプリケーションにより読み書きモードで開かれたままとなるので、複数の4Dアプリケーション間でエクスターナルデータベースを共有することができなくなります。複数の4Dアプリケーションが同じエクスターナルデータベースを同時に使用できるようにするには、AUTO_CLOSEキーワードを渡してエクスターナルデータベースを使用後、物理的に閉じるようにします。

この制限は同じアプリケーション内のプロセスには適用されません。アプリケーション内の異なるプロセスは、閉じる必要なしに、常に読み書きモードで同じエクスターナルデータベースにアクセスできます。
複数のプロセスが同じエクスターナルデータベースを使用する場合、AUTO_CLOSEオプションが渡されている場合でも、それを使用する最後のプロセスが閉じられるまで、物理的に解放されない点に留意してください。開発者はエクスターナルデータベースのアプリケーション間での共有や削除に関連する処理を行う際にはこの動作を考慮に入れなければなりません。

例題  

エクスターナルデータベースを使用後、メインデータベースに戻ります:

 Begin SQL
    USE DATABASE DATAFILE 'C:/MyDatabase/Names'
    SELECT Name FROM emp INTO :tNames1
    USE DATABASE SQL_INTERNAL
 End SQL



参照 

CREATE DATABASE
DATABASE_PATH

 
プロパティ 

プロダクト: 4D
テーマ: SQLコマンド

 
履歴 

 
ARTICLE USAGE

SQLリファレンス ( 4D v16)