Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memuat data bidang suatu entitas
Contoh berikut menunjukkan bagaimana Anda dapat memuat (membaca dari struktur status) data bidang suatu entitas. Contoh-contoh ini menggunakan fungsi berikut:
Result<std::size_t> LoadEntityField( Transaction& txn, const Entity& entity, TypeId keyTypeId, FieldIndex index, std::int8_t** dest) noexcept;
Api::TypeId keyTypeId
Parameter harus menerima yang sesuai Api::TypeId
dariApi::BuiltinTypeId
. Jika tidak ada konversi yang sesuai, Anda dapat menggunakannyaApi::BuiltinTypeId::Dynamic
.
catatan
Nilai FieldIndex
indeks harus lebih besar dari 0. Nilai 0 dicadangkan untuk kunci indeks (lihatStoreEntityIndexKey()
).
contoh Contoh menggunakan tipe data primitif
namespace { constexpr Api::FieldIndex k_isTrueFieldId { /* value */ 1 }; } Result<void> LoadEntityFields( Api::Entity& entity, Transaction& transaction) { std::int8_t* dest = nullptr; WEAVERRUNTIME_TRY(Api::LoadEntityField( transaction, entity, Api::BuiltinTypeIdToTypeId( Aws::WeaverRuntime::Api::BuiltinTypeId::Bool), k_isTrueFieldId, &dest)); bool isTrueValue = *reinterpret_cast<bool*>(dest); }
contoh Contoh menggunakan a struct untuk menyimpan data
namespace { constexpr Api::FieldIndex k_dataFieldId { /* value */ 1 }; } struct Data { bool boolData; float floatData; }; Result<void> LoadEntityFields( Api::Entity& entity, Transaction& transaction) { std::int8_t* dest = nullptr; WEAVERRUNTIME_TRY(Api::LoadEntityField( transaction, entity, Api::BuiltinTypeIdToTypeId( Aws::WeaverRuntime::Api::BuiltinTypeId::Dynamic), k_dataFieldId, &dest)); Data dataValue = *reinterpret_cast<Data*>(dest); }