この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

SOQL および SOSL クエリ結果の処理

SOQL クエリおよび SOSL クエリは、元のクエリで選択された sObject 項目のデータのみを返します。SOQL クエリまたは SOSL クエリで選択されていない項目 (ID 以外) にアクセスしようとすると、データベースのその項目に値が含まれている場合であっても、ランタイムエラーが発生します。次のコード例では、ランタイムエラーが発生します。

次のコード例は、ランタイムエラーが発生しないように上記のコードを書き換えたものです。NameId の後に、SELECT ステートメントの一部として追加されています。

選択された sObject 項目が 1 つのみの場合でも、SOQL クエリまたは SOSL クエリは必ずすべてのレコードとしてデータを返します。その結果、項目にアクセスするには、項目を参照解決する必要があります。たとえば、次のコードは、SOQL クエリでデータベースから sObject リストを取得し、リスト内の最初の取引先レコードにアクセスし、レコードの AnnualRevenue 項目を参照解決します。

SOQL クエリ結果で sObject 項目を参照解決する必要がないのは、クエリが COUNT 演算の結果として Integer を返す場合のみです。

SOSL クエリで返されるレコードの項目は、必ず参照解決する必要があります。

数式を含む sObject 項目は、SOQL クエリまたは SOSL クエリが発行されたときに項目の値を返します。数式内で使用されているその他の項目に対する変更は、レコードが Apex で保存され、再度照会されるまでは、数式項目の値に反映されません。その他の参照専用 sObject 項目と同様、数式項目の値自体を Apex で変更することはできません。