Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memuat data bidang entitas
Contoh berikut menunjukkan bagaimana Anda dapat memuat (membaca dari kain negara) data bidang 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 sesuaiApi::TypeId
dariApi::BuiltinTypeId
. Jika tidak ada konversi yang sesuai, Anda dapat menggunakannyaApi::BuiltinTypeId::Dynamic
.
NilaiFieldIndex
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 menggunakanstruct 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); }