ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v19.8
Open datastore

Open datastore 


 

Open datastore ( connectionInfo ; localID ) -> 戻り値 
引数   説明
connectionInfo  オブジェクト in リモートデータストアに接続するのに使用する接続プロパティ
localID  テキスト in ローカルアプリケーション内で、開かれたデータストアに対して割り当てるID(必須)
戻り値  オブジェクト in データストアオブジェクト

説明   

Open datastore コマンドは、アプリケーションをconnectionInfo 引数で指定された4D データベースへと接続し、合致するdatastore オブジェクトを返し、localID 引数のローカルエイリアスを割り当てます。

リモートデータストアとの通信は自動的にREST 経由で管理されます。

connectionInfo 引数で指定する4D データベースはリモートデーターストアとして利用可能でなければなりません。つまり、以下の条件を満たしている必要があります:

  • データベースのWeb サーバーは、http またはhttps が有効化された状態で開始されていなければなりません。
  • データベースのREST サーバーとして公開オプションがチェックされている必要があります(Web/REST リソース参照)。
  • データベースは、少なくとも1つのクライアントライセンスが利用可能でなければなりません。

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

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

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

 $myds:=Open datastore(connectionInfo;"myLocalId")
 $myds2:=ds("myLocalId")
  //$myds と $myds2 は同等

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

プロパティ詳細
hostnameテキストリモートデータストアの名前またはIP アドレス+":"+ポート番号(ポート番号も必須です)
userテキストユーザー名
passwordテキストユーザーパスワード
idleTimeout倍長整数アクティビティがなかった場合にセッションがタイムアウトするまでの時間(分単位)。この時間を過ぎると、セッションは4D によって自動的に閉じられます。省略時、デフォルトは60 (1時間)です。この値に60(分)未満の値を指定することはできません(60 未満の値を渡した場合、タイムアウトは60(分)に設定されます)。詳細な情報については、セッションの終了 を参照してください。
tlsブール安全な接続を使用します(*)。省略時は、デフォルトはFalseになっています。安全な接続は、可能であればどんなときでも使用することが推奨されます。
typeテキスト"4D Server"でなければなりません

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

  • リモートデータストアでHTTPS が有効化されている。
  • 指定されたポートはデータベース設定で設定されているHTTPS ポートと合致している。
  • データベースに有効な証明書と非公開暗号鍵がインストールされている( 参照)。

    条件を満たさない場合、エラー"1610 - ホスト xxx へのリモートリクエストに失敗しました" が生成されます。

ユーザー/パスワードを必要としないリモートデータストアへの接続の場合を考えます:

 C_OBJECT($connectTo;$remoteDS)
 $connectTo:=New object("type";"4D Server";"hostname";"192.168.18.11:8044")
 $remoteDS:=Open datastore($connectTo;"students")
 ALERT("This remote datastore contains "+String($remoteDS.Students.all().length)+" students")

ユーザー/パスワード/タイムアウト/TLS 付きでリモートデータストアに接続する場合を考えます:

 C_OBJECT($connectTo;$remoteDS)
 $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("This remote datastore contains "+String($remoteDS.Students.all().length)+" students")

複数のリモートデータストアと接続する場合を考えます:

 C_OBJECT($connectTo;$frenchStudents;$foreignStudents)
 $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("They are "+String($frenchStudents.Students.all().length)+" French students")
 ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign students")

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



参照 

4D環境
ds

 
プロパティ 

プロダクト: 4D
テーマ: ORDA - データストア
番号: 1452

Errorシステム変数が更新されることがあります。This command can be run in preemptive processes

 
ページの目次 
 
履歴 

初出: 4D v18

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v19)
ランゲージリファレンス ( 4D v19.1)
ランゲージリファレンス ( 4D v19.4)
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)