Open datastore
Open datastore( connectionInfo : Object ; localID : Text ) : 4D.DataStoreImplementation
| 引数 | 型 | 説明 | |
|---|---|---|---|
| connectionInfo | Object | → | リモートデータストアへの接続に使用する接続プロパティ |
| localID | Text | → | ローカルアプリケーション内で、開かれたデータストアに対して割り当てる ID (必須) |
| 戻り値 | 4D.DataStoreImplementation | ← | データストアオブジェクト |
履歴
| リリース | 内容 |
|---|---|
| 21 | Qodly cloud へのアクセス終了 |
| 20 R6 | Qodly cloud インスタンスへのアクセスをサポート |
| 20 R4 | 新しい passwordAlgorithm プロパティ |
| 18 | 追加 |
説明
Open datastore コマンドは、
connectionInfo 引数が指定するリモートデータストアにアプリケーションを接続します。戻り値は、localID ローカルエイリアスに紐づけられた 4D.DataStoreImplementation オブジェクトです。
リモートデータストアとのやりとりは、REST リクエストを経由して自動的に管理されます。リモートデータストアとのやりとりは、REST リクエストを経由して自動的に管理されます。リモートデータストアとのやりとりは、REST リクエストを経由して自動的に管理されます。 connectionInfo で指定する 4D データストアは、リモートデータストアとして利用可能でなければなりません。つまり、以下の条件を満たしている必要があります:
- その Web サーバーは、http または https が有効化された状態で開始されていること
- データストアはREST に公開されている(REST サーバーとして公開 オプションがチェックされている)こと
- 必要であれば、クライアントライセンスが利用可能であること(注記参照)。
Open datastore のリクエストは 4D REST API に依存し、リモートの 4D Server 上で接続を開くにあたって、4D クライアントライセンスが必要な場合があります。 選択したカレントユーザーログインモードに応じて認証を構成する方法については、ユーザーログインモードのセクション を参照ください。選択したカレントユーザーログインモードに応じて認証を構成する方法については、ユーザーログインモードのセクション を参照ください。選択したカレントユーザーログインモードに応じて認証を構成する方法については、ユーザーログインモードのセクション を参照ください。
connectionInfo には、接続したいリモートデータストア の詳細を格納したオブジェクトを渡します。 オブジェクトは以下のプロパティを格納することができます (hostname を除き、すべてのプロパティは任意です): オブジェクトは以下のプロパティを格納することができます (hostname を除き、すべてのプロパティは任意です): オブジェクトは以下のプロパティを格納することができます (hostname を除き、すべてのプロパティは任意です):
| プロパティ | 型 | リモート4Dアプリケーション | |
|---|---|---|---|
| hostname | Text | リモートデータストアの名前または IPアドレス + ":" + ポート番号 (ポート番号は必須) | Qodly クラウドインスタンスの APIエンドポイント |
| user | Text | ユーザー名 | |
| password | Text | ユーザーパスワード | |
| idleTimeout | Integer | アクティビティがなかった場合に、セッションがタイムアウトするまでの時間 (分単位)。 この時間を過ぎると、4D によって自動的にセッションが閉じられます。省略時のデフォルトは 60 (1時間) です。 60 (分) 未満の値を指定することはできません (60 未満の値を渡した場合、タイムアウトは 60 (分) に設定されます)。詳細については、セッションの終了 を参照ください。省略時のデフォルトは 60 (1時間) です。 60 (分) 未満の値を指定することはできません (60 未満の値を渡した場合、タイムアウトは 60 (分) に設定されます)。詳細については、セッションの終了 を参照ください。 | |
| tls | Boolean | セキュアな接続を使用する場合は true (1)。 省略時のデフォルトは false です。 可能なかぎり安全な接続を使用することが推奨されます。省略時のデフォルトは false です。可能なかぎり安全な接続を使用することが推奨されます。 | |
| type | Text | "4D Server" でなければなりません |
(*) tls が true である場合、以下の条件が満たされていれば、HTTPSプロトコルが使用されます:
- リモートデータストアで HTTPS が有効化されている。
- 指定されたポート番号は、データベース設定で設定されている HTTPS ポートと合致している。
- 4Dアプリケーションに有効な証明書と非公開暗号鍵がインストールされている。条件を満たさない場合、エラー "1610 - ホスト xxx へのリモートリクエストに失敗しました" が生成されます。
localID 引数は、リモートデータストア上で開かれるセッションのローカルエイリアス です。 localID 引数の ID がすでにアプリケーションに存在している場合、その ID が使用されています。 そうでない場合、データストアオブジェクトが使用されたときに 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 で実装されたメソッドで割り込み可能です。
参照
プロパティ
| コマンド番号 | 1452 |
| スレッドセーフ | ◯ |
| 更新するシステム変数 | error |