diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Process (Communications)/call-worker.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Process (Communications)/call-worker.md index bb569a28b8e2bb..590ef0dea51957 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Process (Communications)/call-worker.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Process (Communications)/call-worker.md @@ -65,23 +65,23 @@ Dans un formulaire, un bouton démarre un calcul, par exemple des statistiques p Voici la méthode du bouton : ```4d -  //appelle le process worker vNomWorker avec le paramètre - var $vAnn: éeInteger - $vAnnée:=2015 //peut être sélectionné par l’utilisateur dans le formulaire - CALL WORKER("monWorker";Formula(workerMethod);vAnnée;Current form window) +  //appelle le worker monWorker avec le paramètre + var $vAnnée : Integer + $vAnnée:=2015 //peut avoir été sélectionné par l’utilisateur dans le formulaire + CALL WORKER("monWorker";Formula(workerMethod);$vAnnée;Current form window) ``` -Voici le code de *méthodeWorker* : +Voici le code de *workerMethod* : ```4d   //voici la méthode du worker   //peut être préemptif ou coopératif  #DECLARE($vAnnéeInteger;$fenetreInteger) //référence de l'année et de la fenêtre - var $vR: ésultatStatistiquesObject //stockage de résultats statistiques + var $vRésultatStatistiques : Object //stockage de résultats statistiques  ... //calcul des statistiques   //une fois le calcul terminé, rappel du formulaire avec les valeurs calculées   //$vRésultatStatistiques peut afficher les résultats dans le formulaire - CALL FORM($fenetre;Formula(affichageStats);vRésultatStatistiques) + CALL FORM($fenetre;Formula(affichageStats);$vRésultatStatistiques) ``` ## Voir aussi diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Process (Communications)/call-worker.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Process (Communications)/call-worker.md index 49d12a87fdf145..417fedc1b54228 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Process (Communications)/call-worker.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Process (Communications)/call-worker.md @@ -65,23 +65,23 @@ Dans un formulaire, un bouton démarre un calcul, par exemple des statistiques p Voici la méthode du bouton : ```4d -  //appelle le process worker vNomWorker avec le paramètre - var $vAnn: éeInteger - $vAnnée:=2015 //peut être sélectionné par l’utilisateur dans le formulaire - CALL WORKER("monWorker";Formula(workerMethod);vAnnée;Current form window) +  //appelle le worker monWorker avec le paramètre + var $vAnnée : Integer + $vAnnée:=2015 //peut avoir été sélectionné par l’utilisateur dans le formulaire + CALL WORKER("monWorker";Formula(workerMethod);$vAnnée;Current form window) ``` -Voici le code de *méthodeWorker* : +Voici le code de *workerMethod* : ```4d   //voici la méthode du worker   //peut être préemptif ou coopératif  #DECLARE($vAnnéeInteger;$fenetreInteger) //référence de l'année et de la fenêtre - var $vR: ésultatStatistiquesObject //stockage de résultats statistiques + var $vRésultatStatistiques : Object //stockage de résultats statistiques  ... //calcul des statistiques   //une fois le calcul terminé, rappel du formulaire avec les valeurs calculées   //$vRésultatStatistiques peut afficher les résultats dans le formulaire - CALL FORM($fenetre;Formula(affichageStats);vRésultatStatistiques) + CALL FORM($fenetre;Formula(affichageStats);$vRésultatStatistiques) ``` ## Voir aussi diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Process (Communications)/call-worker.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Process (Communications)/call-worker.md index bb569a28b8e2bb..590ef0dea51957 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Process (Communications)/call-worker.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Process (Communications)/call-worker.md @@ -65,23 +65,23 @@ Dans un formulaire, un bouton démarre un calcul, par exemple des statistiques p Voici la méthode du bouton : ```4d -  //appelle le process worker vNomWorker avec le paramètre - var $vAnn: éeInteger - $vAnnée:=2015 //peut être sélectionné par l’utilisateur dans le formulaire - CALL WORKER("monWorker";Formula(workerMethod);vAnnée;Current form window) +  //appelle le worker monWorker avec le paramètre + var $vAnnée : Integer + $vAnnée:=2015 //peut avoir été sélectionné par l’utilisateur dans le formulaire + CALL WORKER("monWorker";Formula(workerMethod);$vAnnée;Current form window) ``` -Voici le code de *méthodeWorker* : +Voici le code de *workerMethod* : ```4d   //voici la méthode du worker   //peut être préemptif ou coopératif  #DECLARE($vAnnéeInteger;$fenetreInteger) //référence de l'année et de la fenêtre - var $vR: ésultatStatistiquesObject //stockage de résultats statistiques + var $vRésultatStatistiques : Object //stockage de résultats statistiques  ... //calcul des statistiques   //une fois le calcul terminé, rappel du formulaire avec les valeurs calculées   //$vRésultatStatistiques peut afficher les résultats dans le formulaire - CALL FORM($fenetre;Formula(affichageStats);vRésultatStatistiques) + CALL FORM($fenetre;Formula(affichageStats);$vRésultatStatistiques) ``` ## Voir aussi diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/call-worker.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/call-worker.md index 80028bd7ee8e7a..13096015ad4dd2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/call-worker.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/call-worker.md @@ -65,23 +65,23 @@ Dans un formulaire, un bouton démarre un calcul, par exemple des statistiques p Voici la méthode du bouton : ```4d -  //appelle le process worker vNomWorker avec le paramètre - var $vAnn: éeInteger - $vAnnée:=2015 //peut être sélectionné par l’utilisateur dans le formulaire - CALL WORKER("monWorker";Formula(workerMethod);vAnnée;Current form window) +  //appelle le worker monWorker avec le paramètre + var $vAnnée : Integer + $vAnnée:=2015 //peut avoir été sélectionné par l’utilisateur dans le formulaire + CALL WORKER("monWorker";Formula(workerMethod);$vAnnée;Current form window) ``` -Voici le code de *méthodeWorker* : +Voici le code de *workerMethod* : ```4d   //voici la méthode du worker   //peut être préemptif ou coopératif  #DECLARE($vAnnéeInteger;$fenetreInteger) //référence de l'année et de la fenêtre - var $vR: ésultatStatistiquesObject //stockage de résultats statistiques + var $vRésultatStatistiques : Object //stockage de résultats statistiques  ... //calcul des statistiques   //une fois le calcul terminé, rappel du formulaire avec les valeurs calculées   //$vRésultatStatistiques peut afficher les résultats dans le formulaire - CALL FORM($fenetre;Formula(affichageStats);vRésultatStatistiques) + CALL FORM($fenetre;Formula(affichageStats);$vRésultatStatistiques) ``` ## Voir aussi diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md index 95d681c1536c06..3457eee7458b92 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md @@ -50,23 +50,23 @@ title: DataClass 返される属性オブジェクトには以下のプロパティが格納されています: -| プロパティ | 型 | 説明 | -| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| autoFilled | Boolean | 属性値が 4D によって自動生成される場合に true です。 このプロパティは次の 4Dフィールドプロパティに対応しています: 数値型フィールドの "自動インクリメント" および UUID (文字型)フィールドの "自動UUID"。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | -| exposed | Boolean | 属性が REST で公開されている場合に trueです | -| fieldNumber | integer | 属性の内部的な 4Dフィールド番号。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | -| fieldType | Integer | 属性の 4Dデータベースフィールドタイプ。 これは属性の種類 (`kind`) によります。 とりうる値:
  • `.kind` = "storage" の場合は、対応する 4Dフィールドタイプ ([`Value type`](https://doc.4d.com/4dv20/help/command/ja/page1509.html) 参照)
  • `.kind` = "relatedEntity" の場合: 38 (`is object`)
  • `.kind` = "relatedEntities" の場合: 42 (`is collection`)
  • `.kind` = "calculated" または "alias" の場合: 結果の値 (フィールドタイプ、relatedEntity または relatedEntities) に応じて、上に同じ
  • | -| indexed | Boolean | 属性に対して B-tree もしくは クラスターB-Tree インデックスが設定されている場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | -| inverseName | Text | リレーション先の属性名。 `.kind` = "relatedEntity" または "relatedEntities" の場合にのみ返されます。 | -| keywordIndexed | Boolean | 属性にキーワードインデックスが存在すれば true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | -| kind | Text | 属性の種類。 とりうる値:
  • "storage": ストレージ (あるいはスカラー) 属性。 つまり、属性は値を保存しており、他の属性への参照ではありません。
  • "calculated": 計算属性。 [`get` 関数](../ORDA/ordaClasses.md#function-get-attributename) によって定義されます。
  • "alias": [他の属性](../ORDA/ordaClasses.md#エイリアス属性-1) を指し示す属性。
  • "relatedEntity": N対1 リレーション属性 (エンティティへの参照)
  • "relatedEntities": 1対N リレーション属性 (エンティティセレクションへの参照)
  • | -| 必須 | Boolean | 属性において Null値の入力が拒否されている場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 注記: このプロパティは、4Dデータベースレベルの "Null値の入力を拒否" フィールドプロパティと対応しています。 フィールドのデータ入力制御オプションである既存の "必須入力" プロパティとは無関係です。 | -| name | Text | 属性名 (文字列) | -| path | Text | リレーションに基づく [エイリアス属性](../ORDA/ordaClasses.md#エイリアス属性-1) のパス。 | -| readOnly | Boolean | 読み取り専用属性の場合に trueです。 たとえば、[`set` 関数](../ORDA/ordaClasses.md#function-set-attributename) を持たない計算属性は読み取り専用です。 | -| relatedDataClass | Text | 属性にリレートされているデータクラスの名称。 `.kind` = "relatedEntity" または "relatedEntities" の場合にのみ返されます。 | -| type | Text | 属性の概念的な値タイプ。 汎用的なプログラミングに有用です。 これは属性の種類 (`kind`) によります。 とりうる値:
  • `.kind` = "storage" の場合: "blob", "bool", "date", "image", "number", "object", または "string"。 時間を含め、数値型の場合は "number" が返されます; UUID、文字列、テキスト型属性の場合は "string" が返されます; [BLOBオブジェクト](../Concepts/dt_blob.md#blob-types) の場合は "blob" が返されます。
  • `.kind` = "relatedEntity" の場合: リレートされたデータクラス名
  • `.kind` = "relatedEntities" の場合: リレートされたデータクラス名 + "Selection" 接尾辞
  • `.kind` = "calculated" または "alias" の場合: 結果の値に応じて、上に同じ
  • | -| unique | Boolean | 属性値が重複不可の場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | +| プロパティ | 型 | 説明 | +| ---------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| autoFilled | Boolean | 属性値が 4D によって自動生成される場合に true です。このプロパティは次の 4Dフィールドプロパティに対応しています: 数値型フィールドの "自動インクリメント" および UUID (文字型)フィールドの "自動UUID"。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | +| exposed | Boolean | 属性が REST で公開されている場合に trueです | +| fieldNumber | integer | 属性の内部的な 4Dフィールド番号。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | +| fieldType | Integer | 属性の 4Dデータベースフィールドタイプ。これは属性の種類 (`kind`) によります。とりうる値:
  • `.kind` = "storage" の場合は、対応する 4Dフィールドタイプ ([`Value type`](https://doc.4d.com/4dv20/help/command/ja/page1509.html) 参照)
  • `.kind` = "relatedEntity" の場合: 38 (`is object`)
  • `.kind` = "relatedEntities" の場合: 42 (`is collection`)
  • `.kind` = "calculated" または "alias" の場合: 結果の値 (フィールドタイプ、relatedEntity または relatedEntities) に応じて、上に同じ
  • | +| indexed | Boolean | 属性に対して B-tree もしくは クラスターB-Tree インデックスが設定されている場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | +| inverseName | Text | リレーション先の属性名。 `.kind` = "relatedEntity" または "relatedEntities" の場合にのみ返されます。 | +| keywordIndexed | Boolean | 属性にキーワードインデックスが存在すれば true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | +| kind | Text | 属性の種類。とりうる値:
  • "storage": ストレージ (あるいはスカラー) 属性。 つまり、属性は値を保存しており、他の属性への参照ではありません。
  • "calculated": 計算属性。 [`get` 関数](../ORDA/ordaClasses.md#function-get-attributename) によって定義されます。
  • "alias": [他の属性](../ORDA/ordaClasses.md#エイリアス属性-1) を指し示す属性。
  • "relatedEntity": N対1 リレーション属性 (エンティティへの参照)
  • "relatedEntities": 1対N リレーション属性 (エンティティセレクションへの参照)
  • | +| 必須 | Boolean | 属性において Null値の入力が拒否されている場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。注記: このプロパティは、4Dデータベースレベルの "Null値の入力を拒否" フィールドプロパティと対応しています。フィールドのデータ入力制御オプションである既存の "必須入力" プロパティとは無関係です。 | +| name | Text | 属性名 (文字列) | +| path | Text | リレーションに基づく [エイリアス属性](../ORDA/ordaClasses.md#エイリアス属性-1) のパス。 | +| readOnly | Boolean | 読み取り専用属性の場合に trueです。たとえば、[`set` 関数](../ORDA/ordaClasses.md#function-set-attributename) を持たない計算属性は読み取り専用です。 | +| relatedDataClass | Text | 属性にリレートされているデータクラスの名称。 `.kind` = "relatedEntity" または "relatedEntities" の場合にのみ返されます。 | +| type | Text | 属性の概念的な値タイプ。 汎用的なプログラミングに有用です。これは属性の種類 (`kind`) によります。とりうる値:
  • `.kind` = "storage" の場合: "blob", "bool", "date", "image", "number", "object", または "string"。時間を含め、数値型の場合は "number" が返されます; UUID、文字列、テキスト型属性の場合は "string" が返されます; [BLOBオブジェクト](../Concepts/dt_blob.md#blob-types) の場合は "blob" が返されます。
  • `.kind` = "relatedEntity" の場合: リレートされたデータクラス名
  • `.kind` = "relatedEntities" の場合: リレートされたデータクラス名 + "Selection" 接尾辞
  • `.kind` = "calculated" または "alias" の場合: 結果の値に応じて、上に同じ
  • | +| unique | Boolean | 属性値が重複不可の場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | :::tip @@ -148,7 +148,7 @@ var $firstnameAtt;$employerAtt;$employeesAtt : Object `.all()` 関数は データストアをクエリして、データクラスの全エンティティをエンティティセレクションとして返します。 -エンティティはデフォルトの順番で返され、通常は作成順になっています。 ただし、エンティティ削除後に新規追加した場合には、デフォルトの順番は作成順を反映しない点に留意が必要です。 +エンティティはデフォルトの順番で返され、通常は作成順になっています。ただし、エンティティ削除後に新規追加した場合には、デフォルトの順番は作成順を反映しない点に留意が必要です。 エンティティが見つからない場合、空のエンティティセレクションが返されます。 @@ -156,11 +156,11 @@ var $firstnameAtt;$employerAtt;$employeesAtt : Object **settings** -任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。 エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | +| プロパティ | 型 | 説明 | +| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | > データクラス内の総エンティティ数を知るには、`ds.myClass.all().length` 式よりも最適化された [`getCount()`](#getcount) 関数を使用することが推奨されます。 @@ -257,23 +257,23 @@ $ds.Persons.clearRemoteCache() `.fromCollection()` 関数は、 *objectCol* 引数のオブジェクトのコレクションに基づいてデータクラスのエンティティを更新あるいは作成し、対応するエンティティセレクションを返します。 -*objectCol* パラメーターには、データクラスの既存エンティティを更新、または新規エンティティを作成するためのオブジェクトのコレクションを渡します。 プロパティ名は、データクラスの属性名と同一である必要があります。 プロパティ名がデータクラスに存在しない場合、それは無視されます。 コレクション内で属性値が定義されていない場合、その値は null になります。 +*objectCol* パラメーターには、データクラスの既存エンティティを更新、または新規エンティティを作成するためのオブジェクトのコレクションを渡します。プロパティ名は、データクラスの属性名と同一である必要があります。プロパティ名がデータクラスに存在しない場合、それは無視されます。コレクション内で属性値が定義されていない場合、その値は null になります。 -コレクションのオブジェクト要素とエンティティのマッピングは、**属性名** と **型の合致** をもって行われます。 オブジェクトプロパティがエンティティ属性と同じ名前であっても、型が合致しない場合には、エンティティの属性は空のままです。 +コレクションのオブジェクト要素とエンティティのマッピングは、**属性名** と **型の合致** をもって行われます。オブジェクトプロパティがエンティティ属性と同じ名前であっても、型が合致しない場合には、エンティティの属性は空のままです。 **作成モードと更新モード** *objectCol* 引数の各オブジェクトついて: -* オブジェクトがブール型の "\_\_NEW" プロパティを含み、それが **false** に設定されている場合(あるいは "\_\_NEW" プロパティが含まれていない場合)、オブジェクトの対応する値でエンティティが更新あるいは作成されます。 プライマリーキーに関するチェックはおこなわれません: - * プライマリーキーが指定されていて実在する場合、エンティティは更新されます。 この場合、プライマリーキーはそのまま、あるいは "\_\_KEY" プロパティを (プライマリーキー値とともに) 使って指定することができます。 +* オブジェクトがブール型の "\_\_NEW" プロパティを含み、それが **false** に設定されている場合(あるいは "\_\_NEW" プロパティが含まれていない場合)、オブジェクトの対応する値でエンティティが更新あるいは作成されます。プライマリーキーに関するチェックはおこなわれません: + * プライマリーキーが指定されていて実在する場合、エンティティは更新されます。この場合、プライマリーキーはそのまま、あるいは "\_\_KEY" プロパティを (プライマリーキー値とともに) 使って指定することができます。 * そのまま指定したプライマリーキーが実在しない場合、エンティティは作成されます。 * プライマリーキーを指定していない場合、エンティティは作成され、標準のデータベースのルールに基づいてプライマリーキー値が割り当てられます。 -* オブジェクトがブール型の "\_\_NEW" プロパティを含み、それが **true** に設定されている場合、オブジェクトの対応する値でエンティティが作成されます。 プライマリーキーに関するチェックがおこなわれます: +* オブジェクトがブール型の "\_\_NEW" プロパティを含み、それが **true** に設定されている場合、オブジェクトの対応する値でエンティティが作成されます。プライマリーキーに関するチェックがおこなわれます: * そのまま指定したプライマリーキーが実在する場合、エラーが返されます。 * そのまま指定したプライマリーキーが実在しない場合、エンティティは作成されます。 * プライマリーキーを指定していない場合、エンティティは作成され、標準のデータベースのルールに基づいてプライマリーキー値が割り当てられます。 -> プライマリーキーを指定していない場合、エンティティは作成され、標準のデータベースのルールに基づいてプライマリーキー値が割り当てられます。 > 値を持つ "\_\_KEY" プロパティは、"\_\_NEW" プロパティが **false** に設定 (あるいは省略) されていて、かつ対応するエンティティが存在する場合のみ、考慮されます。 それ以外の場合には、"\_\_KEY" プロパティ値は無視されるため、プライマリーキーの値はそのまま渡さなければなりません。 +> プライマリーキーを指定していない場合、エンティティは作成され、標準のデータベースのルールに基づいてプライマリーキー値が割り当てられます。 > 値を持つ "\_\_KEY" プロパティは、"\_\_NEW" プロパティが **false** に設定 (あるいは省略) されていて、かつ対応するエンティティが存在する場合のみ、考慮されます。それ以外の場合には、"\_\_KEY" プロパティ値は無視されるため、プライマリーキーの値はそのまま渡さなければなりません。 **リレートエンティティ** @@ -284,15 +284,15 @@ $ds.Persons.clearRemoteCache() **スタンプ** -"\_\_STAMP" プロパティが指定された場合、データストアのスタンプとのチェックがおこなわれ、エラーが返されることがあります ("与えられたスタンプはテーブルXXX のレコード# XXのカレントのものと合致しません")。 詳細については [エンティティロッキング](ORDA/entities.md#エンティティロッキング) を参照ください。 +"\_\_STAMP" プロパティが指定された場合、データストアのスタンプとのチェックがおこなわれ、エラーが返されることがあります ("与えられたスタンプはテーブルXXX のレコード# XXのカレントのものと合致しません")。詳細については [エンティティロッキング](ORDA/entities.md#エンティティロッキング) を参照ください。 **settings** -任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。 エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | +| プロパティ | 型 | 説明 | +| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | #### 例題 1 @@ -457,7 +457,7 @@ $ds.Persons.clearRemoteCache() `.get()` 関数は データクラスをクエリして、*primaryKey* に渡したプライマリーキーに合致するエンティティを返します。 -*primaryKey* には、取得したいエンティティのプライマリーキーの値を渡します。 値の型は、データストアで設定されたプライマリーキーの型 (倍長整数あるいはテキスト) と合致している必要があります。 [`.getKey()`](EntityClass.md#getkey) 関数に `dk key as string` 引数を渡すと、プライマリーキーの値が常にテキスト型で返されるように指定することができます。 +*primaryKey* には、取得したいエンティティのプライマリーキーの値を渡します。値の型は、データストアで設定されたプライマリーキーの型 (倍長整数あるいはテキスト) と合致している必要があります。 [`.getKey()`](EntityClass.md#getkey) 関数に `dk key as string` 引数を渡すと、プライマリーキーの値が常にテキスト型で返されるように指定することができます。 *primaryKey* 引数のプライマリーキーを持つエンティティが見つからない場合、**Null** エンティティが返されます。 @@ -465,15 +465,15 @@ $ds.Persons.clearRemoteCache() **settings** -任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| context | Text | エンティティに適用されている自動の最適化コンテキストのラベル。 エンティティを読み込む以降のコードは、このコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | +| プロパティ | 型 | 説明 | +| ------- | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| context | Text | エンティティに適用されている自動の最適化コンテキストのラベル。エンティティを読み込む以降のコードは、このコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | :::info -*settings* パラメーターを**使わずに** `.get()` 関数を使用した場合には、属性値を求めるリクエストが直接サーバーに送信されます([ORDAキャッシュ](../ORDA/remoteDatastores.md#ORDAキャッシュ)は使われません)。 一方、*settings* パラメーターを介して `context` を渡す形で `.get()` 関数を呼び出すと、コンテキストに対応する ORDAキャッシュから属性値が取得されます。 この場合、[`reload()`](EntityClass.md#reload) を呼び出して、最新のデータがサーバーから取得されていることを確認することをお勧めします。 +*settings* パラメーターを**使わずに** `.get()` 関数を使用した場合には、属性値を求めるリクエストが直接サーバーに送信されます([ORDAキャッシュ](../ORDA/remoteDatastores.md#ORDAキャッシュ)は使われません)。一方、*settings* パラメーターを介して `context` を渡す形で `.get()` 関数を呼び出すと、コンテキストに対応する ORDAキャッシュから属性値が取得されます。この場合、[`reload()`](EntityClass.md#reload) を呼び出して、最新のデータがサーバーから取得されていることを確認することをお勧めします。 ::: @@ -636,7 +636,7 @@ $number:=$ds.Persons.getCount() #### 説明 -`.getInfo()` 関数は、 データクラスの情報を提供するオブジェクトを返します。 このメソッドは汎用的なコードを書くのに有用です。 +`.getInfo()` 関数は、 データクラスの情報を提供するオブジェクトを返します。このメソッドは汎用的なコードを書くのに有用です。 **返されるオブジェクト** @@ -710,7 +710,7 @@ $number:=$ds.Persons.getCount() -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -749,11 +749,11 @@ $number:=$ds.Persons.getCount() #### 例題 -次の例で、`$ds.Persons.all()` は、先頭エンティティをそのすべての属性とともにロードします。 その後リクエストの最適化がおこなわれ、`firstname` と `address.city` のみがロードされます。 +次の例で、`$ds.Persons.all()` は、先頭エンティティをそのすべての属性とともにロードします。その後リクエストの最適化がおこなわれ、`firstname` と `address.city` のみがロードされます。 `address.city` は、`Persons` データクラスのキャッシュにロードされることに注意してください。 -`Address` データクラスの先頭エンティティだけがキャッシュに格納されます。 先頭エンティティは、ループの最初の繰り返しでロードされます。 +`Address` データクラスの先頭エンティティだけがキャッシュに格納されます。先頭エンティティは、ループの最初の繰り返しでロードされます。 ```4d var $ds : 4D.DataStoreImplementation @@ -806,7 +806,7 @@ $cacheAddress:=$ds.Adress.getRemoteCache() `.new()` 関数は、 メモリ内にデータクラスに空のエンティティを新規作成しそれを返します。 -エンティティオブジェクトはメモリ内に作成されますが、[`.save( )`](EntityClass.md#save) 関数が呼び出されるまでデータベースには保存されません。 エンティティを保存する前に削除した場合、復元することはできません。 +エンティティオブジェクトはメモリ内に作成されますが、[`.save( )`](EntityClass.md#save) 関数が呼び出されるまでデータベースには保存されません。エンティティを保存する前に削除した場合、復元することはできません。 **4D Server**: クライアント/サーバーにおいては、対応するテーブルのプライマリーキーが自動インクリメントであった場合、エンティティがサーバー側に保存されたときに計算されます。 @@ -857,9 +857,9 @@ $cacheAddress:=$ds.Adress.getRemoteCache() > 追加可能なエンティティセレクションについての詳細は [共有可能/追加可能なエンティティセレクション](ORDA/entities.md#shareable-or-alterable-entity-selections) を参照ください。 -順列ありのエンティティセレクションを作成するには、*keepOrder* に `dk keep ordered` セレクターを渡します。 この引数を省略した場合のデフォルト、あるいは `dk non ordered` セレクターを渡した場合には、関数は順列なしのエンティティセレクションを返します。 順列なしのエンティティセレクションの方が速いですが、エンティティの位置に頼ることはできません。 詳細については、[エンティティセレクションの順列あり/順列なし](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を参照ください。 +順列ありのエンティティセレクションを作成するには、*keepOrder* に `dk keep ordered` セレクターを渡します。この引数を省略した場合のデフォルト、あるいは `dk non ordered` セレクターを渡した場合には、関数は順列なしのエンティティセレクションを返します。順列なしのエンティティセレクションの方が速いですが、エンティティの位置に頼ることはできません。詳細については、[エンティティセレクションの順列あり/順列なし](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を参照ください。 -作成された時点では、エンティティセレクションにエンティティは含まれていません(`mySelection.length` は0を返します)。 あとから [`add()`](EntitySelectionClass.md#add) 関数を呼び出すことで、エンティティセレクションを徐々にビルドしていくことができます。 +作成された時点では、エンティティセレクションにエンティティは含まれていません(`mySelection.length` は0を返します)。あとから [`add()`](EntitySelectionClass.md#add) 関数を呼び出すことで、エンティティセレクションを徐々にビルドしていくことができます。 #### 例題 @@ -902,7 +902,7 @@ $cacheAddress:=$ds.Adress.getRemoteCache() #### 説明 -`.query()` 関数は、 データクラスの全エンティティから、*queryString* または *formula* と任意の *value* 引数で指定した検索条件に合致するエンティティを検索します。 戻り値は、見つかったエンティティをすべて格納する `EntitySelection` 型の新しいオブジェクトです。 この関数には、レイジーローディングが適用されます。 +`.query()` 関数は、 データクラスの全エンティティから、*queryString* または *formula* と任意の *value* 引数で指定した検索条件に合致するエンティティを検索します。 戻り値は、見つかったエンティティをすべて格納する `EntitySelection` 型の新しいオブジェクトです。この関数には、レイジーローディングが適用されます。 エンティティが見つからない場合、空のエンティティセレクションが返されます。 @@ -918,64 +918,64 @@ attributePath|formula 比較演算子 値 詳細は以下の通りです: -* **attributePath**: クエリの実行対象となる属性パス。 この引数は、単純な名前 ("country" など) のほか、あらゆる有効な属性パス ("country.name" など) の形をとることができます。 属性パスが `Collection` 型である場合、すべてのオカレンスを管理するには `[]` 記法を使用してください (例: `children[].age` など)。 +* **attributePath**: クエリの実行対象となる属性パス。この引数は、単純な名前 ("country" など) のほか、あらゆる有効な属性パス ("country.name" など) の形をとることができます。属性パスが `Collection` 型である場合、すべてのオカレンスを管理するには `[]` 記法を使用してください (例: `children[].age` など)。 > *queryString* には、すべての種類の引数を混ぜて渡すことができます。 *queryString* 引数は、*attributePath* と *formula* と *値* に以下のものを含めることができます: -* **formula**: テキストまたはオブジェクト形式で渡された有効なフォーミュラ。 フォーミュラは処理されるエンティティごとに評価され、ブール値を返さなくてはなりません。 処理中のエンティティはフォーミュラ内において `This` で参照されます。 +* **formula**: テキストまたはオブジェクト形式で渡された有効なフォーミュラ。フォーミュラは処理されるエンティティごとに評価され、ブール値を返さなくてはなりません。処理中のエンティティはフォーミュラ内において `This` で参照されます。 - * **テキスト**: フォーミュラ文字列の前に `eval( )` ステートメントが必要です。 これにより、クエリが式を正しく解釈します。 例: *"eval(length(This.lastname) >=30)"* - * **オブジェクト**: [フォーミュラオブジェクト](FunctionClass.md) は **プレースホルダー** (後述参照) を使って受け渡します。 このフォーミュラは、[`Formula`](FunctionClass.md#formula) または [`Formula from string`](FunctionClass.md#formula-from-string) コマンドによって作成されたものでなくてはなりません。 > * 4Dフォーミュラは、`&` および `|` 記号のみを論理演算子としてサポートすることに留意が必要です。 > * フォーミュラ以外にも検索条件がある場合、クエリエンジンの最適化によってほかの検索条件 (たとえばインデックス属性) の処理が優先される場合があり、その場合はエンティティのサブセットのみがフォーミュラの評価対象となります。 + * **テキスト**: フォーミュラ文字列の前に `eval( )` ステートメントが必要です。 これにより、クエリが式を正しく解釈します。例: *"eval(length(This.lastname) >=30)"* + * **オブジェクト**: [フォーミュラオブジェクト](FunctionClass.md) は **プレースホルダー** (後述参照) を使って受け渡します。このフォーミュラは、[`Formula`](FunctionClass.md#formula) または [`Formula from string`](FunctionClass.md#formula-from-string) コマンドによって作成されたものでなくてはなりません。 > * 4Dフォーミュラは、`&` および `|` 記号のみを論理演算子としてサポートすることに留意が必要です。 > * フォーミュラ以外にも検索条件がある場合、クエリエンジンの最適化によってほかの検索条件 (たとえばインデックス属性) の処理が優先される場合があり、その場合はエンティティのサブセットのみがフォーミュラの評価対象となります。 > * 4Dフォーミュラは、`&` および `|` 記号のみを論理演算子としてサポートすることに留意が必要です。 > * フォーミュラ以外にも検索条件がある場合、クエリエンジンの最適化によってほかの検索条件 (たとえばインデックス属性) の処理が優先される場合があり、その場合はエンティティのサブセットのみがフォーミュラの評価対象となります。 - クエリに使用するフォーミュラは $1 に引数を受け取ることができます。 詳細については後述の **フォーミュラ引数** を参照ください。 -> * フォーミュラが複雑な場合など、`queryString` パラメーターを使わずに、`formula` パラメーターにオブジェクトを直接渡すこともできます。 後述の **フォーミュラ引数** を参照ください。 + クエリに使用するフォーミュラは $1 に引数を受け取ることができます。詳細については後述の **フォーミュラ引数** を参照ください。 +> * フォーミュラが複雑な場合など、`queryString` パラメーターを使わずに、`formula` パラメーターにオブジェクトを直接渡すこともできます。後述の **フォーミュラ引数** を参照ください。 > * セキュリティのため、 `query()` 関数内のフォーミュラ使用を禁止することができます。 `querySettings` パラメーターの説明を参照ください。 -* *querySettings* 引数は、追加のオプションを格納したオブジェクトです。 以下のプロパティがサポートされています: - - | 比較 | 記号 | 説明 | - | ------------- | ----------- | --------------------------------------------------------------------------------------- | - | 等しい | =, == | 一致するデータを取得します。 ワイルドカード (@) をサポートし、文字の大小/アクセントの有無は区別しません。 | - | | ===, IS | 一致するデータを取得します。 ワイルドカード (@) は標準の文字として認識され、文字の大小/アクセント記号の有無は区別しません。 | - | 等しくない | #, != | ワイルドカード (@) をサポートします。 "宣言に Not 条件を適用" と同じです ([後述参照](#コレクションにおける-等しくない)) | - | | !==, IS NOT | ワイルドカード (@) は標準の文字として認識されます | - | 宣言に Not 条件を適用 | NOT | 複数の演算子が含まれる宣言の前に NOT を使用する場合にはカッコをつける必要があります。 "等しくない" と同じです ([後述参照](#コレクションにおける-等しくない)) | - | 小さい | < | | - | 大きい | > | | - | 以下 | <= | | - | 以上 | >= | | - | 含まれる | IN | コレクション、あるいは複数の値のうち、どれか一つの値と等しいデータを取得します。 ワイルドカード (@) をサポートします。 | - | キーワードを含む | % | キーワードは、文字列あるいはピクチャー型の属性内で使用されるものが対象です。 | - -* **値**: コレクションの各要素、あるいはエンティティセレクションの各エンティティのプロパティのカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 スカラー型(テキスト、日付、数値、など)で型が合致しない場合、4D は可能な限り**value** 引数の値を属性のデータ型へと変換しようとします。 例えば、**value** 引数に"v20" という文字列が整数属性と比較するために与えられた場合、それは 20 へと変換されます。 定数値を使用する場合、以下の原則に従う必要があります: - * **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。 文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。 また以下のキーワードはテキスト定数においては使用できません: true, false。 +* *querySettings* 引数は、追加のオプションを格納したオブジェクトです。以下のプロパティがサポートされています: + + | 比較 | 記号 | 説明 | + | ------------- | ----------- | -------------------------------------------------------------------------------------- | + | 等しい | =, == | 一致するデータを取得します。 ワイルドカード (@) をサポートし、文字の大小/アクセントの有無は区別しません。 | + | | ===, IS | 一致するデータを取得します。 ワイルドカード (@) は標準の文字として認識され、文字の大小/アクセント記号の有無は区別しません。 | + | 等しくない | #, != | ワイルドカード (@) をサポートします。"宣言に Not 条件を適用" と同じです ([後述参照](#コレクションにおける-等しくない)) | + | | !==, IS NOT | ワイルドカード (@) は標準の文字として認識されます | + | 宣言に Not 条件を適用 | NOT | 複数の演算子が含まれる宣言の前に NOT を使用する場合にはカッコをつける必要があります。"等しくない" と同じです ([後述参照](#コレクションにおける-等しくない)) | + | 小さい | < | | + | 大きい | > | | + | 以下 | <= | | + | 以上 | >= | | + | 含まれる | IN | コレクション、あるいは複数の値のうち、どれか一つの値と等しいデータを取得します。 ワイルドカード (@) をサポートします。 | + | キーワードを含む | % | キーワードは、文字列あるいはピクチャー型の属性内で使用されるものが対象です。 | + +* **値**: コレクションの各要素、あるいはエンティティセレクションの各エンティティのプロパティのカレント値に対して比較する値。**プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。スカラー型(テキスト、日付、数値、など)で型が合致しない場合、4D は可能な限り**value** 引数の値を属性のデータ型へと変換しようとします。例えば、**value** 引数に"v20" という文字列が整数属性と比較するために与えられた場合、それは 20 へと変換されます。定数値を使用する場合、以下の原則に従う必要があります: + * **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。また以下のキーワードはテキスト定数においては使用できません: true, false。 * **ブール** 型の定数値: **true** または **false** (文字の大小を区別します) * **数値** 型の定数値: 浮動小数点は '.' * **日付** 型の定数値: "YYYY-MM-DD" フォーマット。 * **null** 定数値: "null" キーワードを使用した場合、**null** と **undefined** プロパティの両方が検索されます。 * IN 記号を使用したクエリの場合、*値* はコレクションか、attributePath の型に合致する、\[ ] でくくられたカンマ区切りの値である必要があります (文字列においては、`"` の記号は `\` でエスケープする必要があります)。 -* **論理演算子**: 複数の条件をクエリ内で結合させるのに使用します(任意)。 以下の論理演算子のいずれか一つを使用できます (名前あるいは記号のどちらかを渡します): +* **論理演算子**: 複数の条件をクエリ内で結合させるのに使用します(任意)。以下の論理演算子のいずれか一つを使用できます (名前あるいは記号のどちらかを渡します): | 結合 | 記号 | | --- | ----------------------- | | AND | &, &&, and | | OR | |,||, or | -* **order by attributePath**: クエリに "order by attributePath" ステートメントを追加することで、結果をソートすることができます。 カンマで区切ることで、複数の order by ステートメントを使用することもできます (例: order by *attributePath1* desc, *attributePath2* asc)。 デフォルトの並び順は昇順です。 並び順を指定するには、降順の場合は 'desc'、昇順の場合は 'asc' を追加します。 >このステートメントを使用した場合、順序ありエンティティセレクションが返されます (詳細については [エンティティセレクションの順列あり/順列なし](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を参照ください)。 +* **order by attributePath**: クエリに "order by attributePath" ステートメントを追加することで、結果をソートすることができます。カンマで区切ることで、複数の order by ステートメントを使用することもできます (例: order by *attributePath1* desc, *attributePath2* asc)。デフォルトの並び順は昇順です。並び順を指定するには、降順の場合は 'desc'、昇順の場合は 'asc' を追加します。 >このステートメントを使用した場合、順序ありエンティティセレクションが返されます (詳細については [エンティティセレクションの順列あり/順列なし](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を参照ください)。 #### 引用符を使用する -クエリに変数や式を使用することができます。 例: +クエリに変数や式を使用することができます。例: ```4d "employee.name = 'smith' AND employee.firstname = 'john'" ``` -> 単一引用符 (') は、クエリ文字列を分解してしまうため、検索値としてはサポートされていません。 たとえば、"comp.name = 'John's pizza' " はエラーを生成します。 単一引用符を含む値を検索するには、プレースホルダーを使用します (後述参照)。 +> 単一引用符 (') は、クエリ文字列を分解してしまうため、検索値としてはサポートされていません。たとえば、"comp.name = 'John's pizza' " はエラーを生成します。単一引用符を含む値を検索するには、プレースホルダーを使用します (後述参照)。 #### カッコを使用する -クエリ内でカッコを使用すると、計算に優先順位をつけることができます。 たとえば、以下のようにクエリを整理することができます: +クエリ内でカッコを使用すると、計算に優先順位をつけることができます。たとえば、以下のようにクエリを整理することができます: ```4d "(employee.age >= 30 OR employee.age <= 65) AND (employee.salary <= 10000 OR employee.status = 'Manager')" @@ -983,14 +983,14 @@ attributePath|formula 比較演算子 値 #### プレースホルダーを使用する -4D では、*queryString* 引数内の *attributePath*、*formula* および *値* にプレースホルダーを使用することができます。 プレースホルダーとは、クエリ文字列に挿入するパラメーターで、クエリ文字列が評価される際に他の値で置き換えられるものです。 プレースホルダーの値はクエリ開始時に一度だけ評価されます。 各要素に対して毎回評価されるわけではありません。 +4D では、*queryString* 引数内の *attributePath*、*formula* および *値* にプレースホルダーを使用することができます。プレースホルダーとは、クエリ文字列に挿入するパラメーターで、クエリ文字列が評価される際に他の値で置き換えられるものです。プレースホルダーの値はクエリ開始時に一度だけ評価されます。 各要素に対して毎回評価されるわけではありません。 **インデックスプレースホルダー** および **命名プレースホルダー** です: -| | インデックスプレースホルダー | 命名プレースホルダー | -| -- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| 定義 | *queryString* に `:paramIndex` (例 :1, :2...) という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。 最大で 128個の *value* 引数を渡すことができます。 | `:paramName` (例: myparam など) という形でパラメーターが挿入され、その値は *querySettings* 引数の attributes または parameters オブジェクトで提供されます。 | -| 例題 | `$r:=class.query(":1=:2";"city";"Chicago")` | `$o.attributes:=New object("att";"city")`
    `$o.parameters:=New object("name";"Chicago")`
    `$r:=class.query(":att=:name";$o)` | +| | インデックスプレースホルダー | 命名プレースホルダー | +| -- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| 定義 | *queryString* に `:paramIndex` (例 :1, :2...) という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。最大で 128個の *value* 引数を渡すことができます。 | `:paramName` (例: myparam など) という形でパラメーターが挿入され、その値は *querySettings* 引数の attributes または parameters オブジェクトで提供されます。 | +| 例題 | `$r:=class.query(":1=:2";"city";"Chicago")` | `$o.attributes:=New object("att";"city")`
    `$o.parameters:=New object("name";"Chicago")`
    `$r:=class.query(":att=:name";$o)` | *queryString* には、すべての種類の引数を混ぜて渡すことができます。 *queryString* 引数は、*attributePath* と *formula* と *値* に以下のものを含めることができます: @@ -999,14 +999,14 @@ attributePath|formula 比較演算子 値 以下の理由から、クエリでのプレースホルダーの使用が **推奨されます**: -1. 悪意あるコードの挿入を防ぎます: ユーザーによって値が代入された変数をクエリ文字列として直接使用した場合、余計なクエリ引数を入力することでユーザーがクエリ条件を変更する可能性があります。 たとえば、以下のようなクエリ文字列を考えます: +1. 悪意あるコードの挿入を防ぎます: ユーザーによって値が代入された変数をクエリ文字列として直接使用した場合、余計なクエリ引数を入力することでユーザーがクエリ条件を変更する可能性があります。たとえば、以下のようなクエリ文字列を考えます: ```4d $vquery:="status = 'public' & name = "+myname // ユーザーが自分の名前を入力します $result:=$col.query($vquery) ``` - 非公開のデータがフィルタリングされているため、このクエリは一見安全なように見えます。 しかしながら、もしユーザーが *myname* に *smith OR status='private'* のような入力をした場合、クエリ文字列は解釈時に変更され、非公開データも返してしまう可能性があります。 + 非公開のデータがフィルタリングされているため、このクエリは一見安全なように見えます。しかしながら、もしユーザーが *myname* に *smith OR status='private'* のような入力をした場合、クエリ文字列は解釈時に変更され、非公開データも返してしまう可能性があります。 プレースホルダーを使用した場合、セキュリティ条件を上書きすることは不可能です: @@ -1018,7 +1018,7 @@ attributePath|formula 比較演算子 値 2. フォーマットや文字の問題を心配する必要がありません。 これは、*attributePath* や *値* がたとえば "."、"[' ...などの英数字でない文字を格納している可能性がある場合にとくに有用です。 -3. クエリに変数や式を使用することができます。 例: +3. クエリに変数や式を使用することができます。例: ```4d $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") @@ -1027,13 +1027,13 @@ attributePath|formula 比較演算子 値 #### null値を検索する -null値を検索する場合、プレースホルダーシンタックスは使用できません。 なぜならクエリエンジンは null を予期せぬ比較値としてみなすからです。 たとえば、以下のクエリを実行した場合: +null値を検索する場合、プレースホルダーシンタックスは使用できません。 なぜならクエリエンジンは null を予期せぬ比較値としてみなすからです。たとえば、以下のクエリを実行した場合: ```4d $vSingles:=ds.Person.query("spouse = :1";Null) // 機能しません ``` -この場合 4D は null値を、引数の評価 (別のクエリから渡された属性など) に起因するエラーと解釈するため、期待した結果は得られません。 このようなクエリをおこなうには、直接的なシンタックスを使用する必要があります: +この場合 4D は null値を、引数の評価 (別のクエリから渡された属性など) に起因するエラーと解釈するため、期待した結果は得られません。このようなクエリをおこなうには、直接的なシンタックスを使用する必要があります: ```4d $vSingles:=ds.Person.query("spouse = null") // 正しいシンタックス @@ -1041,7 +1041,7 @@ $vSingles:=ds.Person.query("spouse = :1";Null) // 機能しません #### null または未定義の値と等しくない -"*value* と等しくない" 比較演算子は(`#` または `!=`) は値がnull または未定義である属性は返しません。 例えば、以下のクエリは"info.married" のステータスが `false` である人物のみを返し、"info.married" プロパティが"null" または欠けている人物は返しません: +"*value* と等しくない" 比較演算子は(`#` または `!=`) は値がnull または未定義である属性は返しません。例えば、以下のクエリは"info.married" のステータスが `false` である人物のみを返し、"info.married" プロパティが"null" または欠けている人物は返しません: ```4d $notMarried:=ds.Person.query("info.married#true") // 属性の値がfalseである人物のみを探す @@ -1056,7 +1056,7 @@ $notMarried:=ds.Person.query("info.married#true | info.married=null") // 属性 #### コレクションにおける "等しくない" -コレクションを含むデータクラス属性内を検索する場合、"*値* と等しくない" 比較演算子 (`#` または `!=`) は、すべてのプロパティが *値* と異なる要素を検索します (ほかの比較演算子とは異なり、少なくとも 1つのプロパティが *値* と異なる要素は検索しません)。 つまり、"Not(プロパティ値が *value* と等しいコレクション要素を検索する)" を検索することと同じです。 たとえば、以下のような エンティティがあるとき: +コレクションを含むデータクラス属性内を検索する場合、"*値* と等しくない" 比較演算子 (`#` または `!=`) は、すべてのプロパティが *値* と異なる要素を検索します (ほかの比較演算子とは異なり、少なくとも 1つのプロパティが *値* と異なる要素は検索しません)。つまり、"Not(プロパティ値が *value* と等しいコレクション要素を検索する)" を検索することと同じです。たとえば、以下のような エンティティがあるとき: ``` エンティティ1: @@ -1113,11 +1113,11 @@ ds.Class.query("info.coll[a].val != :1";0) :::info -この機能は、データクラスおよび [エンティティセレクション](EntitySelectionClass.md#query) をクエリする場合にのみ利用可能です。 [コレクション](CollectionClass.md#query) をクエリする場合には利用できません。 +この機能は、データクラスおよび [エンティティセレクション](EntitySelectionClass.md#query) をクエリする場合にのみ利用可能です。[コレクション](CollectionClass.md#query) をクエリする場合には利用できません。 ::: -コレクションを含むデータクラス属性を対象に、AND 演算子で結合された複数のクエリ条件を使用して検索するにあたって、検索条件に合致するプロパティが複数のコレクション要素にバラけているのではなく、一つのコレクション要素がすべてまとまっているエンティティを探したいとします。 これには、すべての条件に合致するコレクション要素のみが検出されるよう、クエリ条件をコレクション要素にリンクする必要があります。 +コレクションを含むデータクラス属性を対象に、AND 演算子で結合された複数のクエリ条件を使用して検索するにあたって、検索条件に合致するプロパティが複数のコレクション要素にバラけているのではなく、一つのコレクション要素がすべてまとまっているエンティティを探したいとします。これには、すべての条件に合致するコレクション要素のみが検出されるよう、クエリ条件をコレクション要素にリンクする必要があります。 たとえば、以下のような 2件のエンティティがあるとき: @@ -1142,7 +1142,7 @@ ds.People.places: } ] } ``` -"locations" 属性に、"kind=home" かつ "city=paris" である要素を持つ人を探したいとします。 以下のように書いた場合: +"locations" 属性に、"kind=home" かつ "city=paris" である要素を持つ人を探したいとします。以下のように書いた場合: ```4d ds.People.query("places.locations[].kind= :1 and places.locations[].city= :2";"home";"paris") @@ -1150,10 +1150,10 @@ ds.People.query("places.locations[].kind= :1 and places.locations[].city= :2";"h ... クエリは "martin" と "smith" の**両方**を返します。 なぜなら "smith" も "kind=home" である "location" 要素を持っており、"city=paris" である "location" 要素をも持っているからです (ですがこれら 2つは異なるコレクション要素です)。 -検索条件に合致する属性が同一のコレクション要素に含まれるエンティティのみを取得するには、**クエリ条件をリンク** します。 クエリ条件をリンクするには: +検索条件に合致する属性が同一のコレクション要素に含まれるエンティティのみを取得するには、**クエリ条件をリンク** します。クエリ条件をリンクするには: -* リンクする最初のクエリ条件にてパスの \[] 内に文字を追加し、同様に他のクエリ条件でも同じ文字を追加します。 例: `locations[a].city and locations[a].kind`。 ローマ字であればどの文字でも使用可能です (文字の大小は区別されません)。 -* 同じクエリ内に、異なるリンク条件を追加するには、別の文字を使用します。 単一のクエリ内では、最大で 26組のリンク条件を使用することができます。 +* リンクする最初のクエリ条件にてパスの \[] 内に文字を追加し、同様に他のクエリ条件でも同じ文字を追加します。例: `locations[a].city and locations[a].kind`。ローマ字であればどの文字でも使用可能です (文字の大小は区別されません)。 +* 同じクエリ内に、異なるリンク条件を追加するには、別の文字を使用します。単一のクエリ内では、最大で 26組のリンク条件を使用することができます。 上記の 2件のエンティティにおいて、以下のように書いた場合: @@ -1167,7 +1167,7 @@ ds.People.query("places.locations[a].kind= :1 and places.locations[a].city= :2"; #### N対Nリレーションのクエリ -ORDA は、N対Nリレーションにおけるクエリを容易にするための特別な構文を提供します。 このような場合には `AND` 演算子を使って、同じ属性内に格納されている異なる値を検索する必要があるかもしれません。 たとえば、以下のようなストラクチャーの場合を考えます: +ORDA は、N対Nリレーションにおけるクエリを容易にするための特別な構文を提供します。このような場合には `AND` 演算子を使って、同じ属性内に格納されている異なる値を検索する必要があるかもしれません。たとえば、以下のようなストラクチャーの場合を考えます: ![alt-text](../assets/en/API/manytomany.png) @@ -1187,7 +1187,7 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor.lastName = :2";"H "relationAttribute.attribute = :1 AND relationAttribute{x}.attribute = :2 [AND relationAttribute{y}.attribute...]" ``` -**{x}** は、リレーション属性のために新たな参照を作成するよう、ORDA に指示します。 すると、ORDA は必要なビットマップ操作を内部で実行します。 **x** には **0 以外** の任意の数値を使用できます: {1}、{2}、{1540}...。 ORDA は、各クラスインデックス用の一意な参照をクエリ内においてのみ必要とします。 +**{x}** は、リレーション属性のために新たな参照を作成するよう、ORDA に指示します。すると、ORDA は必要なビットマップ操作を内部で実行します。 **x** には **0 以外** の任意の数値を使用できます: {1}、{2}、{1540}...。 ORDA は、各クラスインデックス用の一意な参照をクエリ内においてのみ必要とします。 この例では、次のようになります: @@ -1201,11 +1201,11 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor{2}.lastName = :2" #### formula 引数 -*queryString* 引数にフォーミュラを挿入 (上記参照) する代わりに、formula オブジェクトをブール検索条件として直接渡すことができます。 トークナイズの利点を生かせる、コードが検索しやすく読みやすい、などといった面から、クエリにおけるフォーミュラオブジェクトの使用は **推奨されています**。 +*queryString* 引数にフォーミュラを挿入 (上記参照) する代わりに、formula オブジェクトをブール検索条件として直接渡すことができます。トークナイズの利点を生かせる、コードが検索しやすく読みやすい、などといった面から、クエリにおけるフォーミュラオブジェクトの使用は **推奨されています**。 -このフォーミュラは、[`Formula`](FunctionClass.md#formula) または [`Formula from string`](FunctionClass.md#formula-from-string) コマンドによって作成されたものでなくてはなりません。 > * 4Dフォーミュラは、`&` および `|` 記号のみを論理演算子としてサポートすることに留意が必要です。 > * フォーミュラ以外にも検索条件がある場合、クエリエンジンの最適化によってほかの検索条件 (たとえばインデックス属性) の処理が優先される場合があり、その場合はエンティティのサブセットのみがフォーミュラの評価対象となります。 この場合において: +このフォーミュラは、[`Formula`](FunctionClass.md#formula) または [`Formula from string`](FunctionClass.md#formula-from-string) コマンドによって作成されたものでなくてはなりません。 > * 4Dフォーミュラは、`&` および `|` 記号のみを論理演算子としてサポートすることに留意が必要です。 > * フォーミュラ以外にも検索条件がある場合、クエリエンジンの最適化によってほかの検索条件 (たとえばインデックス属性) の処理が優先される場合があり、その場合はエンティティのサブセットのみがフォーミュラの評価対象となります。この場合において: -* フォーミュラは処理されるエンティティごとに評価され、true または false を返さなくてはなりません。 クエリの実行中、フォーミュラの結果がブール値でなかった場合、それは false であるとみなされます。 +* フォーミュラは処理されるエンティティごとに評価され、true または false を返さなくてはなりません。クエリの実行中、フォーミュラの結果がブール値でなかった場合、それは false であるとみなされます。 * *queryString* または *formula* に **値の命名プレースホルダー** を使用した場合に渡すオブジェクト。 * `Formula` オブジェクトが **null** の場合、エラー1626 ("テキストまたはフォーミュラが必要です") が生成されます。 > セキュリティのため、 `query()` 関数内のフォーミュラ使用を禁止することができます。 *querySettings* パラメーターの説明を参照ください。 @@ -1226,25 +1226,25 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor{2}.lastName = :2" さらなる使用例は、例題3にて紹介されています。 -**4D Server**: クライアント/サーバーにおいては、フォーミュラはサーバー上で実行されます。 このコンテキストにおいては、`querySettings.args` オブジェクトのみがフォーミュラに送信されます。 +**4D Server**: クライアント/サーバーにおいては、フォーミュラはサーバー上で実行されます。このコンテキストにおいては、`querySettings.args` オブジェクトのみがフォーミュラに送信されます。 #### querySettings 引数 -任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| parameters | Object | *queryString* に `:paramIndex` (例 :1, :2...) という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。 インデックスプレースホルダー (value引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | -| attributes | Object | *queryString* または *formula* に **属性パスの命名プレースホルダー** を使用した場合に渡すオブジェクト。 プロパティは、*queryString* または *formula* に属性パスの代わりに挿入されたプレースホルダー名 (":placeholder"など) で、値は、属性パスを表す文字列または文字列のコレクションです。 値には、データクラスのスカラー属性・リレート属性・オブジェクトフィールド内のプロパティへの属性パスを指定することができます。
    型説明
    Stringドット記法を使用して表現された attributePath (例: "name" または "user.address.zipCode")
    String の Collectionコレクションの各要素が attributePath の階層を表します (例: ["name"] または ["user","address","zipCode"])。 コレクションを使用することで、ドット記法に準じていない名前の属性に対してもクエリすることができます (例: \["4Dv17.1","en/fr"])。
    インデックスプレースホルダー (*value* 引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | -| args | Object | フォーミュラに渡す引数。 **args** オブジェクトは、フォーミュラ内の $1 が受け取るので、その値は *$1.property* という形で利用可能です (例題3 参照)。 | -| allowFormulas | Boolean | クエリ内でフォーミュラの呼び出しを許可するには true (デフォルト)。 フォーミュラ実行を禁止するには false を渡します。 false に設定されているときに、フォーミュラが `query()` に渡された場合、エラーが発生します (1278 - フォーミュラはこのメンバーメソッドでは許可されていません)。 | -| context | Text | エンティティセレクションに適用されている自動の最適化コンテキストのラベル。 エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 この機能はクライアント/サーバー処理を想定して設計されています。 詳細な情報については、[**クライアント/サーバーの最適化**](../ORDA/remoteDatastores.md#クライアントサーバーの最適化) の章を参照ください。 | -| queryPlan | Boolean | 戻り値のエンティティコレクションに、実行する直前のクエリの詳細 (クエリプラン) を含めるかどうかを指定します。 返されるプロパティは、クエリプラン あるいはサブクエリ (複合クエリの場合) を格納したオブジェクトです。 このオプションはアプリケーションの開発フェーズにおいて有用です。 このオプションは通常 queryPath と組み合わせて使用されます。 省略時のデフォルト: false。 **注:** このプロパティは `entitySelection.query()` および `dataClass.query()` 関数においてのみサポートされます。 | -| queryPath | Boolean | 戻り値のエンティティコレクションに、実際に実行されたクエリの詳細を含めるかどうかを指定します。 返されたプロパティは、クエリで実際に使用されたパス (通常は queryPlan と同一ですが、エンジンがクエリを最適化した場合には異なる場合があります)、処理時間と検出レコード数を格納したオブジェクトです。 このオプションはアプリケーションの開発フェーズにおいて有用です。 省略時のデフォルト: false。 **注:** このプロパティは `entitySelection.query()` および `dataClass.query()` 関数においてのみサポートされます。 | +| プロパティ | 型 | 説明 | +| ------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| parameters | Object | *queryString* に `:paramIndex` (例 :1, :2...) という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。インデックスプレースホルダー (value引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | +| attributes | Object | *queryString* または *formula* に **属性パスの命名プレースホルダー** を使用した場合に渡すオブジェクト。プロパティは、*queryString* または *formula* に属性パスの代わりに挿入されたプレースホルダー名 (":placeholder"など) で、値は、属性パスを表す文字列または文字列のコレクションです。値には、データクラスのスカラー属性・リレート属性・オブジェクトフィールド内のプロパティへの属性パスを指定することができます。
    型説明
    Stringドット記法を使用して表現された attributePath (例: "name" または "user.address.zipCode")
    String の Collectionコレクションの各要素が attributePath の階層を表します (例: ["name"] または ["user","address","zipCode"])。コレクションを使用することで、ドット記法に準じていない名前の属性に対してもクエリすることができます (例: \["4Dv17.1","en/fr"])。
    インデックスプレースホルダー (*value* 引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | +| args | Object | フォーミュラに渡す引数。 **args** オブジェクトは、フォーミュラ内の $1 が受け取るので、その値は *$1.property* という形で利用可能です (例題3 参照)。 | +| allowFormulas | Boolean | クエリ内でフォーミュラの呼び出しを許可するには true (デフォルト)。フォーミュラ実行を禁止するには false を渡します。 false に設定されているときに、フォーミュラが `query()` に渡された場合、エラーが発生します (1278 - フォーミュラはこのメンバーメソッドでは許可されていません)。 | +| context | Text | エンティティセレクションに適用されている自動の最適化コンテキストのラベル。エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。この機能はクライアント/サーバー処理を想定して設計されています。 詳細な情報については、[**クライアント/サーバーの最適化**](../ORDA/remoteDatastores.md#クライアントサーバーの最適化) の章を参照ください。 | +| queryPlan | Boolean | 戻り値のエンティティコレクションに、実行する直前のクエリの詳細 (クエリプラン) を含めるかどうかを指定します。返されるプロパティは、クエリプラン あるいはサブクエリ (複合クエリの場合) を格納したオブジェクトです。このオプションはアプリケーションの開発フェーズにおいて有用です。このオプションは通常 queryPath と組み合わせて使用されます。省略時のデフォルト: false。**注:** このプロパティは `entitySelection.query()` および `dataClass.query()` 関数においてのみサポートされます。 | +| queryPath | Boolean | 戻り値のエンティティコレクションに、実際に実行されたクエリの詳細を含めるかどうかを指定します。返されたプロパティは、クエリで実際に使用されたパス (通常は queryPlan と同一ですが、エンジンがクエリを最適化した場合には異なる場合があります)、処理時間と検出レコード数を格納したオブジェクトです。このオプションはアプリケーションの開発フェーズにおいて有用です。省略時のデフォルト: false。**注:** このプロパティは `entitySelection.query()` および `dataClass.query()` 関数においてのみサポートされます。 | #### queryPlan と queryPath について -`queryPlan`/`queryPath` に格納される情報には、クエリの種類 (インデックスあるいはシーケンシャル)、必要なサブクエリおよびその連結演算子が含まれます。 クエリパスには、見つかったエンティティの数と各検索条件を実行するのにかかった時間も含まれます。 この情報は、アプリケーションの開発中に解析することで有効に活用できます。 一般的には、クエリプランとクエリパスの詳細は同一になるはずですが、4D はパフォーマンス向上のために動的な最適化をクエリ実行時に実装することがあり、異なることもあります。 たとえば、その方が早いと判断した場合には、4Dエンジンはインデックス付きクエリをシーケンシャルなものへと動的に変換することがあります。 これは検索されているエンティティの数が少ないときに起こりえます。 +`queryPlan`/`queryPath` に格納される情報には、クエリの種類 (インデックスあるいはシーケンシャル)、必要なサブクエリおよびその連結演算子が含まれます。クエリパスには、見つかったエンティティの数と各検索条件を実行するのにかかった時間も含まれます。この情報は、アプリケーションの開発中に解析することで有効に活用できます。一般的には、クエリプランとクエリパスの詳細は同一になるはずですが、4D はパフォーマンス向上のために動的な最適化をクエリ実行時に実装することがあり、異なることもあります。たとえば、その方が早いと判断した場合には、4Dエンジンはインデックス付きクエリをシーケンシャルなものへと動的に変換することがあります。これは検索されているエンティティの数が少ないときに起こりえます。 たとえば、以下のクエリを実行した場合: @@ -1578,7 +1578,7 @@ softwares:{ -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -1591,17 +1591,17 @@ softwares:{ | timeout | Integer | タイムアウト (秒単位)。 | | maxEntries | Integer | エンティティの最大数 | -`timeout` は、データクラスの ORDAキャッシュのタイムアウトを設定します (デフォルトは 30秒)。 タイムアウトを過ぎると、キャッシュ内のデータクラスのエンティティは期限切れとみなされます。 これは、次のことを意味します: +`timeout` は、データクラスの ORDAキャッシュのタイムアウトを設定します (デフォルトは 30秒)。タイムアウトを過ぎると、キャッシュ内のデータクラスのエンティティは期限切れとみなされます。これは、次のことを意味します: * データはまだ存在します * 次にそのデータが必要になったときには、サーバーに要求します * エンティティの最大数に達すると、4D は期限切れのデータを自動的に削除します -`timeout` プロパティを設定すると、すでにキャッシュに存在するエンティティに新しいタイムアウトが設定されます。 これは頻繁に変更されないデータを扱う場合、つまり、サーバーへの新たな要求が必要ない場合に便利です。 +`timeout` プロパティを設定すると、すでにキャッシュに存在するエンティティに新しいタイムアウトが設定されます。これは頻繁に変更されないデータを扱う場合、つまり、サーバーへの新たな要求が必要ない場合に便利です。 -`maxEntries` は、ORDAキャッシュ内のエンティティの最大数を設定します。 デフォルトは 30,000 です。 +`maxEntries` は、ORDAキャッシュ内のエンティティの最大数を設定します。デフォルトは 30,000 です。 -最小エントリー数は 300 のため、`maxEntries` の値は 300以上でなくてはなりません。 それ以外の場合は無視され、最大エントリー数は 300 に設定されます。 +最小エントリー数は 300 のため、`maxEntries` の値は 300以上でなくてはなりません。それ以外の場合は無視され、最大エントリー数は 300 に設定されます。 `timeout` および `maxEntries` として有効なプロパティが渡されない場合、キャッシュはデフォルト値または以前に設定された値のまま変更されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataStoreClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataStoreClass.md index 14a48536c4f465..07e3ee5e042616 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataStoreClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataStoreClass.md @@ -60,9 +60,9 @@ title: DataStore `ds` コマンドは、 カレントの 4Dデータベース、または *localID* で指定したデータベースに合致するデータストアの参照を返します。 -*localID* を省略した (または空の文字列 "" を渡した) 場合には、ローカル4Dデータベース (4D Server でリモートデータベースを開いている場合にはそのデータベース) に合致するデータストアの参照を返します。 データストアは自動的に開かれ、`ds` を介して直接利用することができます。 +*localID* を省略した (または空の文字列 "" を渡した) 場合には、ローカル4Dデータベース (4D Server でリモートデータベースを開いている場合にはそのデータベース) に合致するデータストアの参照を返します。データストアは自動的に開かれ、`ds` を介して直接利用することができます。 -開かれているリモートデータストアのローカルIDを *localID* パラメーターに渡すと、その参照を取得できます。 このデータストアは、あらかじめカレントデータベース (ホストまたはコンポーネント) によって [`Open datastore`](#open-datastore) コマンドで開かれている必要があります。 このコマンドを使用したときにローカルIDが定義されます。 +開かれているリモートデータストアのローカルIDを *localID* パラメーターに渡すと、その参照を取得できます。このデータストアは、あらかじめカレントデータベース (ホストまたはコンポーネント) によって [`Open datastore`](#open-datastore) コマンドで開かれている必要があります。このコマンドを使用したときにローカルIDが定義されます。 > ローカルIDのスコープは、当該データストアを開いたデータベースです。 *localID* に合致するデータストアが見つからない場合、コマンドは **Null** を返します。 @@ -140,7 +140,7 @@ $foreignStudents:=Open datastore($connectTo;"foreign") 合致するデータベースが見つからない場合、`Open datastore` は **Null** を返します。 -*localID* 引数は、リモートデータストア上で開かれるセッションのローカルエイリアスです。 *localID* 引数の ID がすでにアプリケーションに存在している場合、その ID が使用されています。 そうでない場合、データストアオブジェクトが使用されたときに *localID* のセッションが新規に作成されます。 +*localID* 引数は、リモートデータストア上で開かれるセッションのローカルエイリアスです。 *localID* 引数の ID がすでにアプリケーションに存在している場合、その ID が使用されています。そうでない場合、データストアオブジェクトが使用されたときに *localID* のセッションが新規に作成されます。 `4D.DataStoreImplementation` のオブジェクトは[変換のルール](ORDA/dsMapping.md#general-rules)に従い、リモートデータストアからマッピングされます。 @@ -152,23 +152,23 @@ $foreignStudents:=Open datastore($connectTo;"foreign") //$myds と $myds2 は同一のものです ``` -*connectionInfo* には、接続したいリモートデータストアの詳細を格納したオブジェクトを渡します。 オブジェクトは以下のプロパティを格納することができます (*hostname* を除き、すべてのプロパティは任意です): +*connectionInfo* には、接続したいリモートデータストアの詳細を格納したオブジェクトを渡します。オブジェクトは以下のプロパティを格納することができます (*hostname* を除き、すべてのプロパティは任意です): -| プロパティ | 型 | 説明 | -| ----------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| hostname | Text | リモートデータストアの名前または IPアドレス + ":" + ポート番号 (ポート番号は必須) | -| user | Text | ユーザー名 | -| password | Text | ユーザーパスワード。 デフォルトでは、パスワードは平文で送信されるため、`tls` プロパティに `true` を渡して暗号化通信を使用することが**強く推奨**されます。 | -| idleTimeout | Integer | アクティビティがなかった場合に、セッションがタイムアウトするまでの時間 (分単位)。 この時間を過ぎると、4D によって自動的にセッションが閉じられます。 省略時のデフォルトは 60 (1時間) です。 60 (分) 未満の値を指定することはできません (60 未満の値を渡した場合、タイムアウトは 60 (分) に設定されます)。 詳細については、[**セッションの終了**](../ORDA/remoteDatastores.md#セッションの終了) を参照ください。 | -| tls | Boolean | 安全な接続を使用します(*)。 省略時のデフォルトは false です。 可能なかぎり安全な接続を使用することが推奨されます。 | -| passwordAlgorithm | Text | [`Validate password`](https://doc.4d.com/4dv20/help/command/ja/page638.html) コマンドで *digest* パラメーターを `true` に設定してサーバーがパスワードを検証する場合は、"4d-rest-digest" を指定します。 | -| type | Text | "4D Server" でなければなりません | +| プロパティ | 型 | 説明 | +| ----------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| hostname | Text | リモートデータストアの名前または IPアドレス + ":" + ポート番号 (ポート番号は必須) | +| user | Text | ユーザー名 | +| password | Text | ユーザーパスワード。デフォルトでは、パスワードは平文で送信されるため、`tls` プロパティに `true` を渡して暗号化通信を使用することが**強く推奨**されます。 | +| idleTimeout | Integer | アクティビティがなかった場合に、セッションがタイムアウトするまでの時間 (分単位)。 この時間を過ぎると、4D によって自動的にセッションが閉じられます。省略時のデフォルトは 60 (1時間) です。 60 (分) 未満の値を指定することはできません (60 未満の値を渡した場合、タイムアウトは 60 (分) に設定されます)。詳細については、[**セッションの終了**](../ORDA/remoteDatastores.md#セッションの終了) を参照ください。 | +| tls | Boolean | 安全な接続を使用します(*)。省略時のデフォルトは false です。可能なかぎり安全な接続を使用することが推奨されます。 | +| passwordAlgorithm | Text | [`Validate password`](https://doc.4d.com/4dv20/help/command/ja/page638.html) コマンドで *digest* パラメーターを `true` に設定してサーバーがパスワードを検証する場合は、"4d-rest-digest" を指定します。 | +| type | Text | "4D Server" でなければなりません | (*) tls が true だった場合、以下の条件が満たされていれば、HTTPSプロトコルが使用されます: * リモートデータストアで HTTPS が有効化されている。 * 指定されたポート番号は、データベース設定で設定されている HTTPS ポートと合致している。 -* データベースに有効な証明書と非公開暗号鍵がインストールされている。 条件を満たさない場合、エラー "1610 - ホスト xxx へのリモートリクエストに失敗しました" が生成されます。 +* データベースに有効な証明書と非公開暗号鍵がインストールされている。条件を満たさない場合、エラー "1610 - ホスト xxx へのリモートリクエストに失敗しました" が生成されます。 #### 例題 1 @@ -212,7 +212,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude #### エラー管理 -エラーが起きた場合、コマンドは **Null** を返します。 リモートデータベースにアクセスできなかった場合 (アドレス違い、Webサーバーが開始されていない、http/https が有効化されていない、等)、エラー1610 "ホスト XXX へのリモートリクエストに失敗しました" が生成されます。 このエラーは `ON ERR CALL` で実装されたメソッドで割り込み可能です。 +エラーが起きた場合、コマンドは **Null** を返します。リモートデータベースにアクセスできなかった場合 (アドレス違い、Webサーバーが開始されていない、http/https が有効化されていない、等)、エラー1610 "ホスト XXX へのリモートリクエストに失敗しました" が生成されます。このエラーは `ON ERR CALL` で実装されたメソッドで割り込み可能です。 ## *.dataclassName* @@ -229,7 +229,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude #### 説明 -データストアの各データクラスは [DataStore オブジェクト](ORDA/dsMapping.md#データストア) のプロパティとして利用可能です。 戻り値のオブジェクトには、 データクラスの詳細が格納されています。 +データストアの各データクラスは [DataStore オブジェクト](ORDA/dsMapping.md#データストア) のプロパティとして利用可能です。戻り値のオブジェクトには、 データクラスの詳細が格納されています。 #### 例題 @@ -275,7 +275,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude `.cancelTransaction()` 関数は、トランザクション中におこなわれたデータ変更をすべてキャンセルします。 -複数のトランザクションをネストすること (サブトランザクション) が可能です。 メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に[`.validateTransaction()`](#validatetransaction) 関数で承認されていても) すべてキャンセルされます。 +複数のトランザクションをネストすること (サブトランザクション) が可能です。メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に[`.validateTransaction()`](#validatetransaction) 関数で承認されていても) すべてキャンセルされます。 #### 例題 @@ -309,7 +309,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude `.clearAllRemoteContexts()` 関数は、 データストアのすべてのアクティブコンテキストの全属性をクリアします。 -この機能は主にデバッグで使用されます。 注意しなければならないのは、デバッガーを開くと、デバッガーはサーバーにリクエストを送り、データクラス属性をすべてクエリして表示することです。 このため、不要なデータでコンテキストが過負荷になることがあります。 +この機能は主にデバッグで使用されます。注意しなければならないのは、デバッガーを開くと、デバッガーはサーバーにリクエストを送り、データクラス属性をすべてクエリして表示することです。このため、不要なデータでコンテキストが過負荷になることがあります。 そのような場合は、`.clearAllRemoteContexts()` を使用してコンテキストをクリアし、クリーンな状態を保つことができます。 @@ -342,7 +342,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude #### 説明 -`.encryptionStatus()` 関数は、 カレントデータファイルの暗号化状態を示すオブジェクトを返します 。 カレントデータファイルとはつまり、`ds` データストアのデータファイルです。 各テーブルの状態も提供されます。 +`.encryptionStatus()` 関数は、 カレントデータファイルの暗号化状態を示すオブジェクトを返します 。 カレントデータファイルとはつまり、`ds` データストアのデータファイルです。各テーブルの状態も提供されます。 > その他のデータファイルの暗号化状態を調べるには、`Data file encryption status` コマンドを使います。 **戻り値** @@ -419,7 +419,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude #### 説明 -`.flushAndLock()` 関数は、 ローカルデータストアのキャッシュをフラッシュし、データベースに対して他のプロセスが書き込み操作をおこなうのを防ぎます。 これにより、データストアは凍結状態におかれます。 この関数は、たとえばアプリケーションのスナップショットを実行する前に呼び出す必要があります。 +`.flushAndLock()` 関数は、 ローカルデータストアのキャッシュをフラッシュし、データベースに対して他のプロセスが書き込み操作をおこなうのを防ぎます。これにより、データストアは凍結状態におかれます。この関数は、たとえばアプリケーションのスナップショットを実行する前に呼び出す必要があります。 :::info @@ -447,7 +447,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude :::caution -[バックアップ](../Backup/backup.md) や [VSS](https://doc.4d.com/4Dv19R7/4D/19-R7/Using-Volume-Shadow-Copy-Service-on-Windows.300-6078959.ja.html) 、[MSC](../MSC/overview.md) を含む他の 4D機能およびサービスもデータストアをロックすることがあります。 予期せぬ相互作用を避けるため、`.flushAndLock()` を呼び出す前に、データストアをロックするような他の操作がおこなわれていないことを確認してください。 +[バックアップ](../Backup/backup.md) や [VSS](https://doc.4d.com/4Dv19R7/4D/19-R7/Using-Volume-Shadow-Copy-Service-on-Windows.300-6078959.ja.html) 、[MSC](../MSC/overview.md) を含む他の 4D機能およびサービスもデータストアをロックすることがあります。予期せぬ相互作用を避けるため、`.flushAndLock()` を呼び出す前に、データストアをロックするような他の操作がおこなわれていないことを確認してください。 ::: @@ -498,7 +498,7 @@ ds.unlock() // コピー操作をおこなったので、データストアの -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -579,16 +579,16 @@ $info:=$ds.getAllRemoteContexts() #### 説明 -`.getInfo()` 関数は、 データストアの情報を提供するオブジェクトを返します。 このメソッドは汎用的なコードを書くのに有用です。 +`.getInfo()` 関数は、 データストアの情報を提供するオブジェクトを返します。このメソッドは汎用的なコードを書くのに有用です。 **返されるオブジェクト** -| プロパティ | 型 | 説明 | -| ---------- | ------- | ----------------------------------------------------------------------------------------- | -| type | string |
  • "4D": ds で利用可能なメインデータストア
  • "4D Server": Open datastore で開かれたリモートデータストア
  • | -| networked | boolean |
  • true: ネットワーク接続を介してアクセスされたデータストア
  • false: ネットワーク接続を介さずにアクセスしているデータストア (ローカルデータベース)
  • | -| localID | text | マシン上のデータストアID。 これは、`Open datastore` コマンドで返される localId 文字列です。 メインデータストアの場合は空の文字列 ("") です。 | -| connection | object | リモートデータストア接続の情報を格納したオブジェクト (メインデータストアの場合は返されません)。 次のプロパティを含みます:
    プロパティ型説明
    hostnametextリモートデータストアの IPアドレスまたは名称 + ":" + ポート番号
    tlsbooleanリモートデータストアとセキュア接続を利用している場合は true
    idleTimeoutnumberセッション非アクティブタイムアウト (分単位)。
    usertextリモートデータストアにて認証されたユーザー
    | +| プロパティ | 型 | 説明 | +| ---------- | ------- | ---------------------------------------------------------------------------------------- | +| type | string |
  • "4D": ds で利用可能なメインデータストア
  • "4D Server": Open datastore で開かれたリモートデータストア
  • | +| networked | boolean |
  • true: ネットワーク接続を介してアクセスされたデータストア
  • false: ネットワーク接続を介さずにアクセスしているデータストア (ローカルデータベース)
  • | +| localID | text | マシン上のデータストアID。これは、`Open datastore` コマンドで返される localId 文字列です。メインデータストアの場合は空の文字列 ("") です。 | +| connection | object | リモートデータストア接続の情報を格納したオブジェクト (メインデータストアの場合は返されません)。次のプロパティを含みます:
    プロパティ型説明
    hostnametextリモートデータストアの IPアドレスまたは名称 + ":" + ポート番号
    tlsbooleanリモートデータストアとセキュア接続を利用している場合は true
    idleTimeoutnumberセッション非アクティブタイムアウト (分単位)。
    usertextリモートデータストアにて認証されたユーザー
    | * `.getInfo()` 関数が、4D Server またはシングルユーザー版 4D 上で実行された場合、`networked` は false となります。 * `.getInfo()` 関数が、リモート版 4D 上で実行された場合、`networked` は true となります。 @@ -649,7 +649,7 @@ $info:=$remoteDS.getInfo() -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -661,12 +661,12 @@ $info:=$remoteDS.getInfo() 戻り値のオブジェクトには、以下のプロパティが格納されています: -| プロパティ | 型 | 説明 | -| ---------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| name | Text | コンテキストの名称 | -| main | Text | コンテキストに関連する属性 (複数の場合はカンマ区切り) | -| dataclass | Text | データクラスの名称 | -| currentItem (任意) | Text | コンテキストがリストボックスとリンクしている場合の [ページモード](../ORDA/remoteDatastores.md#エンティティセレクション型リストボックス) の属性。 コンテキスト名がリストボックスに使用されていない場合、または currentItem に対応するコンテキストが存在しない場合は、`Null` または空のテキスト要素として返されます。 | +| プロパティ | 型 | 説明 | +| ---------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| name | Text | コンテキストの名称 | +| main | Text | コンテキストに関連する属性 (複数の場合はカンマ区切り) | +| dataclass | Text | データクラスの名称 | +| currentItem (任意) | Text | コンテキストがリストボックスとリンクしている場合の [ページモード](../ORDA/remoteDatastores.md#エンティティセレクション型リストボックス) の属性。コンテキスト名がリストボックスに使用されていない場合、または currentItem に対応するコンテキストが存在しない場合は、`Null` または空のテキスト要素として返されます。 | コンテキストは属性に対するフィルターとして動作するため、*main* が空で返された場合、それはフィルターが適用されておらず、サーバーがすべてのデータクラス属性を返すことを意味します。 @@ -705,11 +705,11 @@ $info:=$remoteDS.getInfo() `.getRequestLog()` 関数は、 クライアント側のメモリに記録されている ORDAリクエストを返します。 ORDAリクエストのログが、[`.startRequestLog()`](#startrequestlog) 関数によって事前に有効化されている必要があります。 -このメソッドはリモートの 4D で呼び出す必要があり、そうでない場合には空のコレクションを返します。 これはクライアント/サーバー環境でのデバッグを想定して設計されています。 +このメソッドはリモートの 4D で呼び出す必要があり、そうでない場合には空のコレクションを返します。これはクライアント/サーバー環境でのデバッグを想定して設計されています。 **戻り値** -スタックされたリクエストオブジェクトのコレクションが返されます。 直近のリクエストにはインデックス 0 が振られています。 +スタックされたリクエストオブジェクトのコレクションが返されます。直近のリクエストにはインデックス 0 が振られています。 ORDAリクエストログのフォーマットの詳細は、[**ORDAクライアントリクエスト**](https://doc.4d.com/4Dv18R6/4D/18-R6/Description-of-log-files.300-5217819.ja.html#4385373) の章を参照ください。 @@ -822,13 +822,13 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAクライア #### 説明 -`.makeSelectionsAlterable()` 関数は、 カレントアプリケーションのデータストアにおいて、すべての新規エンティティセレクションをデフォルトで追加可能に設定します ([リモートデータストア](ORDA/remoteDatastores.md) を含む)。 これはたとえば `On Startup` データベースメソッドなどで、一度だけ使用することが想定されています。 +`.makeSelectionsAlterable()` 関数は、 カレントアプリケーションのデータストアにおいて、すべての新規エンティティセレクションをデフォルトで追加可能に設定します ([リモートデータストア](ORDA/remoteDatastores.md) を含む)。これはたとえば `On Startup` データベースメソッドなどで、一度だけ使用することが想定されています。 この関数が呼ばれなかった場合、新規エンティティセレクションが共有可能かどうかは、共有可能エンティティセレクションを"元"にしたのか、あるいは[どんな関数を呼び出して作成したのか](ORDA/entities.md#共有可能追加可能なエンティティセレクション)で決まります。 > この関数は、`OB Copy` または [`.copy()`](./EntitySelectionClass.md#copy) に `ck shared` オプションを明示的に使用して作成されたエンティティセレクションには適用されません。 -> **互換性に関する注記**: このメソッドは 4D v18 R5 より前のバージョンから変換されたプロジェクトで、[.add()](EntitySelectionClass.md#add) の呼び出しを使用しているものにおいてのみ使用してください。 このコンテキストにおいては、`.makeSelectionsAlterable()` を使用することで、既存プロジェクト内で以前の 4D のふるまいを再現し、時間を節約できます。 逆に、4D v18 R5 以降のバージョンで作成された新規プロジェクトにおいては、この関数の使用は **推奨されていません**。 エンティティセレクションを共有可能にできないため、パフォーマンスとスケーラビリティの観点で妨げになるからです。 +> **互換性に関する注記**: このメソッドは 4D v18 R5 より前のバージョンから変換されたプロジェクトで、[.add()](EntitySelectionClass.md#add) の呼び出しを使用しているものにおいてのみ使用してください。このコンテキストにおいては、`.makeSelectionsAlterable()` を使用することで、既存プロジェクト内で以前の 4D のふるまいを再現し、時間を節約できます。逆に、4D v18 R5 以降のバージョンで作成された新規プロジェクトにおいては、この関数の使用は **推奨されていません**。 エンティティセレクションを共有可能にできないため、パフォーマンスとスケーラビリティの観点で妨げになるからです。 @@ -859,13 +859,13 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAクライア #### 説明 -`.provideDataKey()` 関数は、 データストアのカレントデータファイルのデータ暗号化キーを受け取り、暗号化されたデータと合致するかどうかチェックします。 この関数は、暗号化されたデータベースを開くときや、データファイルの再暗号化など暗号化キーが必要となる暗号化オペレーションを実行する際に使用します。 -> * `.provideDataKey()` 関数は暗号化されたデータベース内で呼び出される必要があります。 暗号化されていないデータベース内で呼び出した場合、エラー2003 (暗号化キーはデータと合致しません) が返されます。 データベースが暗号化されているかどうかを調べるには `Data file encryption status` コマンドを使用します。 +`.provideDataKey()` 関数は、 データストアのカレントデータファイルのデータ暗号化キーを受け取り、暗号化されたデータと合致するかどうかチェックします。この関数は、暗号化されたデータベースを開くときや、データファイルの再暗号化など暗号化キーが必要となる暗号化オペレーションを実行する際に使用します。 +> * `.provideDataKey()` 関数は暗号化されたデータベース内で呼び出される必要があります。暗号化されていないデータベース内で呼び出した場合、エラー2003 (暗号化キーはデータと合致しません) が返されます。データベースが暗号化されているかどうかを調べるには `Data file encryption status` コマンドを使用します。 > * リモートの 4D または暗号化されたリモートデータストアから、`.provideDataKey()` 関数を呼び出すことはできません。 -*curPassPhrase* パラメーターを使用する場合は、データ暗号化キーの生成に使用した文字列を渡します。 このパラメーターを使用した場合、暗号化キーが生成されます。 +*curPassPhrase* パラメーターを使用する場合は、データ暗号化キーの生成に使用した文字列を渡します。このパラメーターを使用した場合、暗号化キーが生成されます。 -*curDataKey* パラメーターを使用する場合は、データ暗号化キー (*encodedKey* プロパティ) を格納するオブジェクトを渡します。 このキーは、`New data key` コマンドで生成された可能性があります。 +*curDataKey* パラメーターを使用する場合は、データ暗号化キー (*encodedKey* プロパティ) を格納するオブジェクトを渡します。このキーは、`New data key` コマンドで生成された可能性があります。 有効な暗号化キーが提供された場合、そのキーはメモリ内の *keyChain* に追加され、暗号化モードが有効になります: @@ -882,7 +882,7 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAクライア | | | | 以下のプロパティは、success が *FALSE* であった場合にのみ返されます。 | | status | | Number | エラーコード (提供された暗号化キーが間違っていた場合には 4) | | statusText | | Text | エラーメッセージ | -| errors | | Collection | エラーのスタック。 最初のエラーに最も高いインデックスが割り当てられます。 | +| errors | | Collection | エラーのスタック。最初のエラーに最も高いインデックスが割り当てられます。 | | | \[ ].componentSignature | Text | 内部コンポーネント名 | | | \[ ].errCode | Number | エラー番号 | | | \[ ].message | Text | エラーメッセージ | @@ -934,9 +934,9 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAクライア `.setAdminProtection()` 関数は、 `WebAdmin`セッションにおける [データエクスプローラー](Admin/dataExplorer.md) 含め、[Web管理ポート](Admin/webAdmin.md#httpポート)上でのデータアクセスを無効に設定することができます。 -この関数が呼び出されなかった場合のデフォルトでは、データエクスプローラーを使用した `WebAdmin` 権限を持つセッションについて、Web管理ポート上のデータアクセスは常に許可されます。 環境によっては (たとえば、アプリケーションサーバーが第三者のマシン上でホストされている場合)、 管理者に対して [access key](Admin/webAdmin.md#access-key) 設定を含むサーバー設定の編集は許可しても、データ閲覧はできないようにしたいかもしれません。 +この関数が呼び出されなかった場合のデフォルトでは、データエクスプローラーを使用した `WebAdmin` 権限を持つセッションについて、Web管理ポート上のデータアクセスは常に許可されます。環境によっては (たとえば、アプリケーションサーバーが第三者のマシン上でホストされている場合)、 管理者に対して [access key](Admin/webAdmin.md#access-key) 設定を含むサーバー設定の編集は許可しても、データ閲覧はできないようにしたいかもしれません。 -このような場合にこの関数を呼び出すことで、ユーザーセッションが `WebAdmin` 権限を持っていても、マシンの Web管理ポート上でのデータエクスプローラーによるデータアクセスを無効にすることができます。 この関数を実行するとデータファイルは即座に保護され、そのステータスがディスク上に保存されます: アプリケーションを再起動しても、データファイルは保護されたままです。 +このような場合にこの関数を呼び出すことで、ユーザーセッションが `WebAdmin` 権限を持っていても、マシンの Web管理ポート上でのデータエクスプローラーによるデータアクセスを無効にすることができます。この関数を実行するとデータファイルは即座に保護され、そのステータスがディスク上に保存されます: アプリケーションを再起動しても、データファイルは保護されたままです。 #### 例題 @@ -981,11 +981,11 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAクライア -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 -`.setRemoteContextInfo()` 関数は、 指定したデータクラス属性を *contextName* の最適化コンテキストにリンクします。 指定した属性に対して最適化コンテキストが既に存在する場合、このコマンドはそれを置き換えます。 +`.setRemoteContextInfo()` 関数は、 指定したデータクラス属性を *contextName* の最適化コンテキストにリンクします。指定した属性に対して最適化コンテキストが既に存在する場合、このコマンドはそれを置き換えます。 ORDAクラスの関数にコンテキストを渡すと、RESTリクエストの最適化が即座に発動します: @@ -1000,16 +1000,16 @@ ORDAクラスの関数にコンテキストを渡すと、RESTリクエストの コンテキストにリンクする属性を指定するには、*attributes* (テキスト) にカンマ区切りの属性リストを渡すか、属性名のコレクションを *attributesColl* (テキストのコレクション) に渡します。 -*attributes* が空のテキスト、または *attributesColl* が空のコレクションの場合、データクラスのすべてのスカラー属性が最適化コンテキストに置かれます。 データクラスに存在しない属性を渡した場合、それは無視され、エラーが返されます。 +*attributes* が空のテキスト、または *attributesColl* が空のコレクションの場合、データクラスのすべてのスカラー属性が最適化コンテキストに置かれます。データクラスに存在しない属性を渡した場合、それは無視され、エラーが返されます。 *contextType* を渡して、コンテキストが標準コンテキストか、リストボックスに表示されているカレントエンティティセレクション項目のコンテキストかを指定することができます。 * "main" (デフォルト) を渡すと、*contextName* は標準コンテキストを指定します。 -* "currentItem" の場合には、渡された属性はカレント項目のコンテキストに置かれます。 [エンティティセレクション型リストボックス](../ORDA/remoteDatastores.md#エンティティセレクション型リストボックス) を参照ください。 +* "currentItem" の場合には、渡された属性はカレント項目のコンテキストに置かれます。[エンティティセレクション型リストボックス](../ORDA/remoteDatastores.md#エンティティセレクション型リストボックス) を参照ください。 *pageLength* には、サーバーに要求するデータクラスエンティティの数を指定します。 -エンティティセレクションであるリレーション属性 (1対N) について、*pageLength* を渡すことができます。 シンタックスは、`relationAttributeName:pageLength` です (例: employees:20)。 +エンティティセレクションであるリレーション属性 (1対N) について、*pageLength* を渡すことができます。シンタックスは、`relationAttributeName:pageLength` です (例: employees:20)。 #### 例題 1 @@ -1044,7 +1044,7 @@ $info:=$ds.getRemoteContextInfo("contextA") #### 例題 2 -以下のコードでは、`Address` データクラスのエンティティ 30件のページをサーバーに要求しています。 返されるエンティティは、`zipCode` 属性のみを含みます。 +以下のコードでは、`Address` データクラスのエンティティ 30件のページをサーバーに要求しています。返されるエンティティは、`zipCode` 属性のみを含みます。 各 `Address` エンティティに対して、20件の Persons エンティティが返され、それらには `lastname` と `firstname` 属性のみが含まれます: @@ -1113,7 +1113,7 @@ Form.currentItemLearntAttributes:=Form.selectedPerson.getRemoteContextAttributes #### 説明 -`.startRequestLog()` 関数は、 クライアント側またはサーバー側で ORDAリクエストのログを開始します。 これはクライアント/サーバー環境でのデバッグを想定して設計されています。 +`.startRequestLog()` 関数は、 クライアント側またはサーバー側で ORDAリクエストのログを開始します。これはクライアント/サーバー環境でのデバッグを想定して設計されています。 :::info @@ -1123,21 +1123,21 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAリクエス #### クライアント側 -クライアント側の ORDAリクエストログを作成するには、リモートマシン上でこの関数を呼び出します。 ログは、渡した引数によってファイルまたはメモリに送ることができます: +クライアント側の ORDAリクエストログを作成するには、リモートマシン上でこの関数を呼び出します。ログは、渡した引数によってファイルまたはメモリに送ることができます: -* `File` コマンドで作成された *file* オブジェクトを渡した場合、ログデータはオブジェクト (JSON フォーマット) のコレクションとしてこのファイルに書き込まれます。 各オブジェクトは一つのリクエストを表します。
    ファイルがまだ存在しない場合には、作成されます。 もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。 メモリへのログ記録が既に始まっている状態で、 `.startRequestLog()`が file 引数付きで呼び出された場合、メモリに記録されていたログは停止され消去されます。 +* `File` コマンドで作成された *file* オブジェクトを渡した場合、ログデータはオブジェクト (JSON フォーマット) のコレクションとしてこのファイルに書き込まれます。各オブジェクトは一つのリクエストを表します。
    ファイルがまだ存在しない場合には、作成されます。もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。メモリへのログ記録が既に始まっている状態で、 `.startRequestLog()`が file 引数付きで呼び出された場合、メモリに記録されていたログは停止され消去されます。 > JSON 評価を実行するには、ファイルの終わりに手動で \] 文字を追加する必要があります。 -* 引数を何も渡さなかった場合、ログはメモリに記録されていきます。 前もって `.startRequestLog()` が*reqNum* 引数付きで 呼び出されていた場合 (ただし `.stopRequestLog()` の前)、ログが次回消去されるかまたは`.stopRequestLog()` が呼び出されるまで、ログデータはメモリ内にスタックされます。 +* 引数を何も渡さなかった場合、ログはメモリに記録されていきます。前もって `.startRequestLog()` が*reqNum* 引数付きで 呼び出されていた場合 (ただし `.stopRequestLog()` の前)、ログが次回消去されるかまたは`.stopRequestLog()` が呼び出されるまで、ログデータはメモリ内にスタックされます。 * 引数を何も渡さなかった場合、ログはメモリに記録されていきます。
    ファイルへのログ記録が既に始まっている状態で、`.startRequestLog()` が *reqNum* 引数付きで呼び出された場合、ファイルへのログは停止されます。 #### サーバー側 -サーバー側の ORDAリクエストログを作成するには、サーバーマシン上でこの関数を呼び出します。 ログは、`.jsonl` 形式のファイルに書き込まれます。 各オブジェクトは 1つのリクエストを表します。 ファイルが存在しない場合は、作成されます。 もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。 +サーバー側の ORDAリクエストログを作成するには、サーバーマシン上でこの関数を呼び出します。ログは、`.jsonl` 形式のファイルに書き込まれます。各オブジェクトは 1つのリクエストを表します。ファイルが存在しない場合は、作成されます。もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。 - *file* 引数を渡した場合、ログデータはこのファイルの指定位置に書き込まれます。 - *file* 引数を省略した場合、または引数が NULL の場合、ログデータは *ordaRequests.jsonl* という名前のファイルに書き込まれ、"/LOGS" フォルダーに保存されます。 -- *options* 引数を使って、サーバーのレスポンスをログに記録するかどうか、および本文をログに含めるかどうかを指定することができます。 引数を省略した場合のデフォルトでは、全レスポンスがログに記録されます。 この引数には、以下の定数を使用することができます: +- *options* 引数を使って、サーバーのレスポンスをログに記録するかどうか、および本文をログに含めるかどうかを指定することができます。引数を省略した場合のデフォルトでは、全レスポンスがログに記録されます。この引数には、以下の定数を使用することができます: | 定数 | 説明 | | ----------------------------- | ----------------------- | @@ -1228,10 +1228,10 @@ SET DATABASE PARAMETER(4D Server Log Recording;0) #### 説明 -`.startTransaction()` 関数は、 対象データストアに対応するデータベース上で、カレントプロセス内のトランザクションを開始します。 トランザクションプロセス中にデータストアのエンティティに加えられた変更は、トランザクションが確定されるかキャンセルされるまで一時的に保管されたままになります。 +`.startTransaction()` 関数は、 対象データストアに対応するデータベース上で、カレントプロセス内のトランザクションを開始します。トランザクションプロセス中にデータストアのエンティティに加えられた変更は、トランザクションが確定されるかキャンセルされるまで一時的に保管されたままになります。 > このメソッドがメインのデータストア (`ds` コマンドで返されるデータストア) で呼ばれた場合、トランザクションはメインのデータストアとそのデータベースで実行されるすべてのオペレーションに適用されます。 これには、そこで実行される ORDA とクラシック言語も含まれます。 -複数のトランザクションをネストすること (サブトランザクション) が可能です。 個々のトランザクションまたはサブトランザクションは、それぞれキャンセルするか確定される必要があります。 メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に`.validateTransaction()` 関数で承認されていても) すべてキャンセルされます。 +複数のトランザクションをネストすること (サブトランザクション) が可能です。個々のトランザクションまたはサブトランザクションは、それぞれキャンセルするか確定される必要があります。メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に`.validateTransaction()` 関数で承認されていても) すべてキャンセルされます。 #### 例題 @@ -1296,7 +1296,7 @@ End if `.stopRequestLog()` 関数は、 クライアント側またはサーバー側の ORDAリクエストのログをすべて停止します。 -実際には、ディスク上で開かれているドキュメントを閉じます。 クライアント側で、メモリ上でログの記録が開始されていた場合、そのログを停止します。 +実際には、ディスク上で開かれているドキュメントを閉じます。クライアント側で、メモリ上でログの記録が開始されていた場合、そのログを停止します。 ORDAリクエストログがマシン上で開始されていない場合、この関数は何もしません。 @@ -1333,7 +1333,7 @@ ORDAリクエストログがマシン上で開始されていない場合、こ #### 説明 -`.unlock()` 関数は、 データストアにおける、書き込み操作に対する現在のロックが同じプロセスで設定されていた場合、そのロックを解除します。 ローカルデータストアの書き込み操作は、[`.flushAndLock()`](#flushandlock) 関数を使用してロックすることができます。 +`.unlock()` 関数は、 データストアにおける、書き込み操作に対する現在のロックが同じプロセスで設定されていた場合、そのロックを解除します。ローカルデータストアの書き込み操作は、[`.flushAndLock()`](#flushandlock) 関数を使用してロックすることができます。 現在のロックがデータストアの唯一のロックであった場合、書き込み操作は直ちに可能になります。 `.flushAndLock()` 関数がプロセス内で複数回呼ばれている場合、データストアのロックを解除するには、同じ回数だけ `.unlock()` を呼び出す必要があります。 @@ -1376,7 +1376,7 @@ ORDAリクエストログがマシン上で開始されていない場合、こ この関数は、トランザクション中におこなわれたデータストア上のデータの変更を保存します。 -複数のトランザクションをネストすること (サブトランザクション) が可能です。 メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々にこの関数で承認されていても) すべてキャンセルされます。 +複数のトランザクションをネストすること (サブトランザクション) が可能です。メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々にこの関数で承認されていても) すべてキャンセルされます。 #### 例題