| 4D v18Open datastore | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 Open datastore 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Open datastore ( connectionInfo ; localID ) -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| connectionInfo | Object |   | リモートデータストアに接続するのに使用する接続プロパティ | |||||
| localID | テキスト |   | ローカルアプリケーション内で、開かれたデータストアに対して割り当てるID(必須) | |||||
| 戻り値 | Object |   | データストアオブジェクト | |||||
Open datastore コマンドは、アプリケーションをconnectionInfo 引数で指定された4D データベースへと接続し、合致するdatastore オブジェクトを返し、localID 引数のローカルエイリアスを割り当てます。
connectionInfo 引数で指定する4D データベースはリモートデーターストアとして利用可能でなければなりません。つまり、以下の条件を満たしている必要があります:
合致するデータベースが見つからない場合、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 プロトコルが使用されます:
ユーザー/パスワードを必要としないリモートデータストアへの接続の場合を考えます:
 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
	テーマ: ORDA - データストア
	番号: 
        1452
        
        
        
	

	初出: 4D v18
	ランゲージリファレンス ( 4D v18)
	
	
	
 コメントを追加
コメントを追加