メインコンテンツまでスキップ
バージョン: 21

Open datastore

Open datastore( connectionInfo : Object ; localID : Text ) : 4D.DataStoreImplementation

引数型説明
connectionInfoObject→リモートデータストアへの接続に使用する接続プロパティ
localIDText→ローカルアプリケーション内で、開かれたデータストアに対して割り当てる ID (必須)
戻り値4D.DataStoreImplementation←データストアオブジェクト
履歴
リリース内容
21Qodly cloud へのアクセス終了
20 R6Qodly cloud インスタンスへのアクセスをサポート
20 R4新しい passwordAlgorithm プロパティ
18追加

説明​

Open datastore コマンドは、 connectionInfo 引数が指定するリモートデータストアにアプリケーションを接続します。戻り値は、localID ローカルエイリアスに紐づけられた 4D.DataStoreImplementation オブジェクトです。

リモートデータストアとのやりとりは、REST リクエストを経由して自動的に管理されます。リモートデータストアとのやりとりは、REST リクエストを経由して自動的に管理されます。 connectionInfo で指定する 4D データストアは、リモートデータストアとして利用可能でなければなりません。つまり、以下の条件を満たしている必要があります:

  • その Web サーバーは、http または https が有効化された状態で開始されていること
  • データストアはREST に公開されている(REST サーバーとして公開 オプションがチェックされている)こと
  • 必要であれば、クライアントライセンスが利用可能であること(注記参照)。
注

Open datastore のリクエストは 4D REST API に依存し、リモートの 4D Server 上で接続を開くにあたって、4D クライアントライセンスが必要な場合があります。 選択したカレントユーザーログインモードに応じて認証を構成する方法については、ユーザーログインモードのセクション を参照ください。選択したカレントユーザーログインモードに応じて認証を構成する方法については、ユーザーログインモードのセクション を参照ください。

connectionInfo には、接続したいリモートデータストア の詳細を格納したオブジェクトを渡します。 オブジェクトは以下のプロパティを格納することができます (hostname を除き、すべてのプロパティは任意です): オブジェクトは以下のプロパティを格納することができます (hostname を除き、すべてのプロパティは任意です):

プロパティ型リモート4Dアプリケーション
hostnameTextリモートデータストアの名前または IPアドレス + ":" + ポート番号 (ポート番号は必須)Qodly クラウドインスタンスの APIエンドポイント
userTextユーザー名
passwordTextユーザーパスワード
idleTimeoutIntegerアクティビティがなかった場合に、セッションがタイムアウトするまでの時間 (分単位)。 この時間を過ぎると、4D によって自動的にセッションが閉じられます。省略時のデフォルトは 60 (1時間) です。 60 (分) 未満の値を指定することはできません (60 未満の値を渡した場合、タイムアウトは 60 (分) に設定されます)。詳細については、セッションの終了 を参照ください。
tlsBooleanセキュアな接続を使用する場合は true (1)。 省略時のデフォルトは false です。 可能なかぎり安全な接続を使用することが推奨されます。省略時のデフォルトは false です。可能なかぎり安全な接続を使用することが推奨されます。
typeText"4D Server" でなければなりません

(*) tls が true である場合、以下の条件が満たされていれば、HTTPSプロトコルが使用されます:

  • リモートデータストアで HTTPS が有効化されている。
  • 指定されたポート番号は、データベース設定で設定されている HTTPS ポートと合致している。
  • 4Dアプリケーションに有効な証明書と非公開暗号鍵がインストールされている。条件を満たさない場合、エラー "1610 - ホスト xxx へのリモートリクエストに失敗しました" が生成されます。

localID 引数は、リモートデータストア上で開かれるセッションのローカルエイリアス です。 localID 引数の ID がすでにアプリケーションに存在している場合、その ID が使用されています。 そうでない場合、データストアオブジェクトが使用されたときに localID のセッションが新規に作成されます。 localID 引数の ID がすでにアプリケーションに存在している場合、その ID が使用されています。そうでない場合、データストアオブジェクトが使用されたときに localID のセッションが新規に作成されます。

一旦セッションが開かれると、以下の 2行の宣言は同等のものとなり、同じデータストアオブジェクトへの参照を返します:

$myds:=Open datastore(connectionInfo;"myLocalId")
$myds2:=ds("myLocalId")
//$myds と $myds2 は同一のものです

4D.DataStoreImplementation が提供するオブジェクトは、ORDAマッピングルール に基づいてマッピングされます。

合致するデータストアが見つからない場合、Open datastore は Null を返します。

例題 1​

user / password を指定せずにリモートデータストアに接続します:

var $connectTo : Object
var $remoteDS : 4D.DataStoreImplementation
$connectTo:=New object("type";"4D Server";"hostname";"192.168.18.11:8044")
$remoteDS:=Open datastore($connectTo;"students")
ALERT("このリモートデータストアには "+String($remoteDS.Students.all().length)+" 名の生徒が登録されています")

例題 2​

user / password / timeout / tls を指定してリモートデータストアに接続します:

var $connectTo : Object
var $remoteDS : 4D.DataStoreImplementation
$connectTo:=New object("type";"4D Server";"hostname";\"192.168.18.11:4443";\
"user";"marie";"password";$pwd;"idleTimeout";70;"tls";True)
$remoteDS:=Open datastore($connectTo;"students")
ALERT("このリモートデータストアには "+String($remoteDS.Students.all().length)+" 名の生徒が登録されています")

例題 3​

複数のリモートデータストアと接続します:

var $connectTo : Object
var $frenchStudents; $foreignStudents : 4D.DataStoreImplementation
$connectTo:=New object("hostname";"192.168.18.11:8044")
$frenchStudents:=Open datastore($connectTo;"french")
$connectTo.hostname:="192.168.18.11:8050"
$foreignStudents:=Open datastore($connectTo;"foreign")
ALERT("フランスの生徒は "+String($frenchStudents.Students.all().length)+" 名です")
ALERT("外国の生徒は "+String($foreignStudents.Students.all().length)+" 名です")

エラー管理​

エラーが起きた場合、コマンドは Null を返します。リモートデータベースにアクセスできなかった場合 (アドレス違い、Webサーバーが開始されていない、http/https が有効化されていない、等)、エラー1610 "ホスト XXX へのリモートリクエストに失敗しました" が生成されます。このエラーは ON ERR CALL で実装されたメソッドで割り込み可能です。

参照​

ds

プロパティ​

コマンド番号1452
スレッドセーフ◯
更新するシステム変数error