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