Az Azure Table Storage és az Azure Cosmos DB for Table használata a C++ használatával
A KÖVETKEZŐKRE VONATKOZIK: Asztal
Tipp.
A cikk tartalma az Azure Table Storage-ra és az Azure Cosmos DB for Tablere vonatkozik. A Table API egy prémium szintű ajánlat a table storage számára, amely átviteli sebességre optimalizált táblákat, globális eloszlást és automatikus másodlagos indexeket kínál.
Ez az útmutató az Azure Table Storage szolgáltatás vagy az Azure Cosmos DB for Table használatával mutatja be a gyakori forgatókönyveket. A kódminták C++ nyelven íródtak, és az Azure Storage C++ programnyelvhez készült ügyféloldali kódtárát használják. Ez a cikk a következő forgatókönyveket ismerteti:
- Tábla létrehozása és törlése
- Táblaentitások működése
Feljegyzés
Ez az útmutató az Azure Storage C++ programnyelvhez készült ügyféloldali kódtárának 1.0.0-s és újabb verziójára vonatkozik. Az ajánlott verzió a Storage Client Library 2.2.0, amely a NuGet vagy a GitHub használatával érhető el.
Fiókok létrehozása
Azure-szolgáltatásfiók létrehozása
A táblákat az Azure Table Storage vagy az Azure Cosmos DB használatával használhatja. Ha többet szeretne megtudni a táblaajánlatok közötti különbségekről ebben a két szolgáltatásban, tekintse meg az API for Table áttekintését. Az Ön által kiválasztott szolgáltatás használatához hozzon létre egy fiókot. Az alábbi szakaszok bemutatják, hogyan hozható létre az Azure Table Storage és az Azure Cosmos DB-fiók is, de csak az egyiket használhatja.
Azure-tárfiók létrehozása
Az Azure Storage-fiók létrehozásának legegyszerűbb módja az Azure Portal használata. További tudnivalókért lásd: Create a storage account (Tárfiók létrehozása).
Ezenkívül az Azure PowerShell vagy az Azure CLI használatával is létrehozhat egy Azure-tárfiókot.
Ha jelenleg nem szeretne tárfiókot létrehozni, az Azure Storage Emulator használatával helyi környezetben is futtathatja és tesztelheti a kódot. További információ: Az Azure Storage Emulator használata fejlesztéshez és teszteléshez.
Azure Cosmos DB for Table-fiók létrehozása
Az Azure Cosmos DB táblafiókhoz való létrehozásával kapcsolatos utasításokért lásd : Adatbázisfiók létrehozása.
C++-alkalmazás létrehozása
Ebben az útmutatóban egy C++ alkalmazás tárolási funkcióit fogja használni. Ehhez telepítse az Azure Storage C++-hoz készült ügyfélkódtárát.
Az Azure Storage C++-hoz készült ügyfélkódtárának telepítéséhez használja az alábbi módszereket:
- Linux: Kövesse az Azure Storage C++ README-hez készült ügyfélkódtárában megadott utasításokat: Első lépések Linux-oldalon .
- Windows: Windows rendszeren használja a vcpkg-t függőségkezelőként. A vcpkg inicializálásához kövesse az első lépéseket . Ezután a következő paranccsal telepítse a kódtárat:
.\vcpkg.exe install azure-storage-cpp
Útmutatót talál a forráskód létrehozásához és a Nugetbe való exportáláshoz a README fájlban.
A Table ügyféloldali kódtárhoz való hozzáférés konfigurálása
Ha az Azure Storage API-k használatával szeretné elérni a táblákat, adja hozzá a következő include
utasításokat a C++ fájl elejéhez:
#include <was/storage_account.h>
#include <was/table.h>
Az Azure Storage-ügyfél vagy az Azure Cosmos DB-ügyfél egy kapcsolati sztring használ végpontok és hitelesítő adatok tárolására az adatkezelési szolgáltatások eléréséhez. Ügyfélalkalmazás futtatásakor meg kell adnia a tárolási kapcsolati sztring vagy az Azure Cosmos DB kapcsolati sztring a megfelelő formátumban.
Azure Storage kapcsolati sztring beállítása
Ez a példa bemutatja, hogyan deklarálhat egy statikus mezőt az Azure Storage kapcsolati sztring tárolásához:
// Define the Storage connection string with your values.
const utility::string_t storage_connection_string(U("DefaultEndpointsProtocol=https;AccountName=<your_storage_account>;AccountKey=<your_storage_account_key>"));
Használja a Storage-fiók nevét a következőhöz <your_storage_account>
: . Your_storage_account_key <>használja az Azure Portalon felsorolt Storage-fiók hozzáférési kulcsát. A Tárfiókokról és a hozzáférési kulcsokról további információt a Tárfiók létrehozása című témakörben talál.
Azure Cosmos DB kapcsolati sztring beállítása
Ez a példa bemutatja, hogyan deklarálhat statikus mezőt az Azure Cosmos DB kapcsolati sztring tárolásához:
// Define the Azure Cosmos DB connection string with your values.
const utility::string_t storage_connection_string(U("DefaultEndpointsProtocol=https;AccountName=<your_cosmos_db_account>;AccountKey=<your_cosmos_db_account_key>;TableEndpoint=<your_cosmos_db_endpoint>"));
Használja az Azure Cosmos DB-fiók nevét.<your_cosmos_db_account>
Adja meg az elsődleges kulcsot a következőhöz <your_cosmos_db_account_key>
: . Adja meg a végpontot az Azure Portalon a következőhöz <your_cosmos_db_endpoint>
: .
Az alkalmazás helyi Windows-alapú számítógépen való teszteléséhez használhatja az Azure SDK-val telepített Azure Storage Emulatort. A Storage Emulator egy segédprogram, amely szimulálja a helyi fejlesztői gépen elérhető Azure Blob-, Queue- és Table-szolgáltatásokat. Az alábbi példa bemutatja, hogyan deklarálhat statikus mezőt a kapcsolati sztring a helyi tárolóemulátorhoz való tárolásához:
// Define the connection string with Azure Storage Emulator.
const utility::string_t storage_connection_string(U("UseDevelopmentStorage=true;"));
Az Azure Storage Emulator elindításához a Windows asztalról válassza a Start gombot vagy a Windows billentyűt. Adja meg és futtassa a Microsoft Azure Storage Emulatort. További információ: Az Azure Storage Emulator használata fejlesztéshez és teszteléshez.
A kapcsolati sztring lekérése
Az osztály használatával cloud_storage_account
képviselheti a tárfiók adatait. A tárfiók adatainak a tárolási kapcsolati sztring való lekéréséhez használja a metódustparse
.
// Retrieve the storage account from the connection string.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
Ezután szerezze be az osztályra cloud_table_client
mutató hivatkozást. Ez az osztály lehetővé teszi a Table Storage szolgáltatásban tárolt táblák és entitások referenciaobjektumainak lekérését. A következő kód létrehoz egy objektumot cloud_table_client
a korábban lekért tárfiók-objektum használatával:
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
Entitások létrehozása és hozzáadása egy táblához
Tábla létrehozása
Egy cloud_table_client
objektum lehetővé teszi a táblák és entitások referenciaobjektumainak lekérését. Az alábbi kód létrehoz egy cloud_table_client
objektumot, és egy új tábla létrehozásához használja.
// Retrieve the storage account from the connection string.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
// Retrieve a reference to a table.
azure::storage::cloud_table table = table_client.get_table_reference(U("people"));
// Create the table if it doesn't exist.
table.create_if_not_exists();
Entitás hozzáadása a táblához
Ha entitást szeretne hozzáadni egy táblához, hozzon létre egy új table_entity
objektumot, és adja át a táblának table_operation::insert_entity
. Az alábbi kód az ügyfél keresztnevét használja sorkulcsnak és a vezetéknevét partíciókulcsnak. Egy entitás partíció- és sorkulcsa együttesen azonosítja az entitást a táblán belül. Az azonos partíciókulcsot tartalmazó entitások gyorsabban kérdezhetők le, mint a különböző partíciókulcsokkal rendelkező entitások. A különböző partíciókulcsok használata nagyobb párhuzamos működés skálázhatóságot tesz lehetővé. További információ: A Microsoft Azure Storage teljesítmény- és méretezhetőségi ellenőrzőlistája.
Az alábbi kód létrehoz egy új példányt table_entity
néhány ügyféladat tárolásához. A következő kód meghívja table_operation::insert_entity
, hogy hozzon létre egy table_operation
objektumot, amely egy entitást szúr be egy táblába, és társítja az új táblaentitást vele. Végül a kód meghívja az execute
objektum metódusát cloud_table
. Az új table_operation
kérést küld a Table service-nek, amely beszúrja az új ügyfélentitást a people
táblába.
// Retrieve the storage account from the connection string.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
// Retrieve a reference to a table.
azure::storage::cloud_table table = table_client.get_table_reference(U("people"));
// Create the table if it doesn't exist.
table.create_if_not_exists();
// Create a new customer entity.
azure::storage::table_entity customer1(U("Harp"), U("Walter"));
azure::storage::table_entity::properties_type& properties = customer1.properties();
properties.reserve(2);
properties[U("Email")] = azure::storage::entity_property(U("Walter@contoso.com"));
properties[U("Phone")] = azure::storage::entity_property(U("425-555-0101"));
// Create the table operation that inserts the customer entity.
azure::storage::table_operation insert_operation = azure::storage::table_operation::insert_entity(customer1);
// Execute the insert operation.
azure::storage::table_result insert_result = table.execute(insert_operation);
Entitásköteg beszúrása
Egyetlen írási művelettel egy teljes entitásköteget is beszúrhat a Table Service-be. Az alábbi kód létrehoz egy table_batch_operation
objektumot, majd három beszúrási műveletet ad hozzá. Minden beszúrási művelet új entitásobjektum létrehozásával, értékének beállításával, majd az insert
objektum metódusának table_batch_operation
meghívásával társítja az entitást egy új beszúrási művelettel. Ezután a kód meghívja cloud_table.execute
a műveletet.
// Retrieve the storage account from the connection string.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
// Create a cloud table object for the table.
azure::storage::cloud_table table = table_client.get_table_reference(U("people"));
// Define a batch operation.
azure::storage::table_batch_operation batch_operation;
// Create a customer entity and add it to the table.
azure::storage::table_entity customer1(U("Smith"), U("Jeff"));
azure::storage::table_entity::properties_type& properties1 = customer1.properties();
properties1.reserve(2);
properties1[U("Email")] = azure::storage::entity_property(U("Jeff@contoso.com"));
properties1[U("Phone")] = azure::storage::entity_property(U("425-555-0104"));
// Create another customer entity and add it to the table.
azure::storage::table_entity customer2(U("Smith"), U("Ben"));
azure::storage::table_entity::properties_type& properties2 = customer2.properties();
properties2.reserve(2);
properties2[U("Email")] = azure::storage::entity_property(U("Ben@contoso.com"));
properties2[U("Phone")] = azure::storage::entity_property(U("425-555-0102"));
// Create a third customer entity to add to the table.
azure::storage::table_entity customer3(U("Smith"), U("Denise"));
azure::storage::table_entity::properties_type& properties3 = customer3.properties();
properties3.reserve(2);
properties3[U("Email")] = azure::storage::entity_property(U("Denise@contoso.com"));
properties3[U("Phone")] = azure::storage::entity_property(U("425-555-0103"));
// Add customer entities to the batch insert operation.
batch_operation.insert_or_replace_entity(customer1);
batch_operation.insert_or_replace_entity(customer2);
batch_operation.insert_or_replace_entity(customer3);
// Execute the batch operation.
std::vector<azure::storage::table_result> results = table.execute_batch(batch_operation);
Kötegelt műveletek esetében ügyeljen a következőkre:
- Egyetlen kötegben akár 100
insert
,delete
,merge
,replace
,insert-or-merge
ésinsert-or-replace
bármilyen kombinációban végezhet műveleteket. - A kötegműveletek lekérési művelettel is rendelkezhetnek, ha ez az egyetlen művelet a kötegben.
- Egy adott kötegművelet összes entitásának ugyanazzal a partíciókulccsal kell rendelkeznie.
- A kötegműveletek 4 MB nagyságú hasznos adatra vannak korlátozva.
Entitások lekérdezése és módosítása
Egy partíció összes entitásának lekérése
Ha egy partíció összes entitásához szeretne táblát lekérdezni, használjon egy objektumot table_query
. Az alábbi példakód egy szűrőt ad meg azoknak az entitásoknak, ahol Smith
a partíciókulcs található. A példa megjeleníti a konzolon a lekérdezés eredményei között szereplő entitásokhoz tartozó mezőket.
Feljegyzés
Ezek a metódusok jelenleg nem támogatottak a C++ nyelv esetén az Azure Cosmos DB szolgáltatásban.
// Retrieve the storage account from the connection string.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
// Create a cloud table object for the table.
azure::storage::cloud_table table = table_client.get_table_reference(U("people"));
// Construct the query operation for all customer entities where PartitionKey="Smith".
azure::storage::table_query query;
query.set_filter_string(azure::storage::table_query::generate_filter_condition(U("PartitionKey"), azure::storage::query_comparison_operator::equal, U("Smith")));
// Execute the query.
azure::storage::table_query_iterator it = table.execute_query(query);
// Print the fields for each customer.
azure::storage::table_query_iterator end_of_results;
for (; it != end_of_results; ++it)
{
const azure::storage::table_entity::properties_type& properties = it->properties();
std::wcout << U("PartitionKey: ") << it->partition_key() << U(", RowKey: ") << it->row_key()
<< U(", Property1: ") << properties.at(U("Email")).string_value()
<< U(", Property2: ") << properties.at(U("Phone")).string_value() << std::endl;
}
A példában szereplő lekérdezés az összes olyan entitást visszaadja, amely megfelel a szűrési feltételeknek. Ha nagy táblákkal rendelkezik és gyakran le kell töltenie a táblaentitásokat, javasoljuk, hogy adatait inkább Azure Storage-blobokban tárolja.
Partíció entitástartományának lekérése
Ha nem szeretné lekérdezni egy partíció összes entitását, megadhat egy tartományt. Kombinálja a partíciókulcs szűrőt egy sorkulcsszűrővel. Az alábbi példakód két szűrőt használ az összes olyan entitás particionálásához Smith
, ahol a sorkulcs (utónév) egy betűvel kezdődik, mint E
az ábécében, majd kinyomtatja a lekérdezés eredményeit.
Feljegyzés
Ezek a metódusok jelenleg nem támogatottak a C++ nyelv esetén az Azure Cosmos DB szolgáltatásban.
// Retrieve the storage account from the connection string.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
// Create a cloud table object for the table.
azure::storage::cloud_table table = table_client.get_table_reference(U("people"));
// Create the table query.
azure::storage::table_query query;
query.set_filter_string(azure::storage::table_query::combine_filter_conditions(
azure::storage::table_query::generate_filter_condition(U("PartitionKey"),
azure::storage::query_comparison_operator::equal, U("Smith")),
azure::storage::query_logical_operator::op_and,
azure::storage::table_query::generate_filter_condition(U("RowKey"), azure::storage::query_comparison_operator::less_than, U("E"))));
// Execute the query.
azure::storage::table_query_iterator it = table.execute_query(query);
// Loop through the results, displaying information about the entity.
azure::storage::table_query_iterator end_of_results;
for (; it != end_of_results; ++it)
{
const azure::storage::table_entity::properties_type& properties = it->properties();
std::wcout << U("PartitionKey: ") << it->partition_key() << U(", RowKey: ") << it->row_key()
<< U(", Property1: ") << properties.at(U("Email")).string_value()
<< U(", Property2: ") << properties.at(U("Phone")).string_value() << std::endl;
}
Egyetlen entitás lekérdezése
Írhat egy lekérdezést egy adott entitás lekérdezéséhez. Az alábbi kód az ügyfél Jeff Smith
megadására szolgáltable_operation::retrieve_entity
. Ez a metódus csak egy entitást ad vissza gyűjtemény helyett, a visszaadott érték pedig a következőben table_result
van: . Ha egyetlen entitást szeretne lekérdezni a Table szolgáltatásból, ennek leggyorsabb módja a partíció- és sorkulcsok megadása a lekérdezésben.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
// Create a cloud table object for the table.
azure::storage::cloud_table table = table_client.get_table_reference(U("people"));
// Retrieve the entity with partition key of "Smith" and row key of "Jeff".
azure::storage::table_operation retrieve_operation = azure::storage::table_operation::retrieve_entity(U("Smith"), U("Jeff"));
azure::storage::table_result retrieve_result = table.execute(retrieve_operation);
// Output the entity.
azure::storage::table_entity entity = retrieve_result.entity();
const azure::storage::table_entity::properties_type& properties = entity.properties();
std::wcout << U("PartitionKey: ") << entity.partition_key() << U(", RowKey: ") << entity.row_key()
<< U(", Property1: ") << properties.at(U("Email")).string_value()
<< U(", Property2: ") << properties.at(U("Phone")).string_value() << std::endl;
Entitás cseréje
Ha le szeretne cserélni egy entitást, kérje le a Table Service-ből, módosítsa az entitásobjektumot, majd mentse a módosításokat a Table Service-be. A következő kód egy meglévő ügyfél telefonszámát és e-mail-címét módosítja. Hívás table_operation::insert_entity
helyett ez a kód használja table_operation::replace_entity
. Ez a módszer az entitás teljes cseréjét eredményezi a kiszolgálón, kivéve, ha a kiszolgálón lévő entitás megváltozott a lekérése óta. Ha módosították, a művelet meghiúsul. Ez a hiba megakadályozza, hogy az alkalmazás felülírja a másik összetevő lekérése és frissítése között végrehajtott módosításokat. Ennek a hibának a megfelelő kezelése az entitás ismételt lekérése, a módosítások végrehajtása, ha továbbra is érvényes, majd egy másik table_operation::replace_entity
művelet végrehajtása.
// Retrieve the storage account from the connection string.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
// Create a cloud table object for the table.
azure::storage::cloud_table table = table_client.get_table_reference(U("people"));
// Replace an entity.
azure::storage::table_entity entity_to_replace(U("Smith"), U("Jeff"));
azure::storage::table_entity::properties_type& properties_to_replace = entity_to_replace.properties();
properties_to_replace.reserve(2);
// Specify a new phone number.
properties_to_replace[U("Phone")] = azure::storage::entity_property(U("425-555-0106"));
// Specify a new email address.
properties_to_replace[U("Email")] = azure::storage::entity_property(U("JeffS@contoso.com"));
// Create an operation to replace the entity.
azure::storage::table_operation replace_operation = azure::storage::table_operation::replace_entity(entity_to_replace);
// Submit the operation to the Table service.
azure::storage::table_result replace_result = table.execute(replace_operation);
Entitás beszúrása vagy cseréje
table_operation::replace_entity
a műveletek meghiúsulnak, ha az entitás módosult a kiszolgálóról való lekérése óta. Emellett a sikeresség érdekében table_operation::replace_entity
először le kell kérnie az entitást a kiszolgálóról. Néha nem tudja, hogy az entitás létezik-e a kiszolgálón. A benne tárolt aktuális értékek irrelevánsak, mert a frissítésnek felül kell írnia az összeset. Az eredmény eléréséhez használjon egy table_operation::insert_or_replace_entity
műveletet. Ez a művelet beszúrja az entitást, ha nem létezik. A művelet lecseréli az entitást, ha létezik. Az alábbi kód példában a program továbbra is lekéri az ügyfél entitását Jeff Smith
, de a rendszer a használatával menti vissza a kiszolgálóra table_operation::insert_or_replace_entity
. Az entitáson a lekérési és a frissítési művelet között történt összes módosítás felül lesz írva.
// Retrieve the storage account from the connection string.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
// Create a cloud table object for the table.
azure::storage::cloud_table table = table_client.get_table_reference(U("people"));
// Insert or replace an entity.
azure::storage::table_entity entity_to_insert_or_replace(U("Smith"), U("Jeff"));
azure::storage::table_entity::properties_type& properties_to_insert_or_replace = entity_to_insert_or_replace.properties();
properties_to_insert_or_replace.reserve(2);
// Specify a phone number.
properties_to_insert_or_replace[U("Phone")] = azure::storage::entity_property(U("425-555-0107"));
// Specify an email address.
properties_to_insert_or_replace[U("Email")] = azure::storage::entity_property(U("Jeffsm@contoso.com"));
// Create an operation to insert or replace the entity.
azure::storage::table_operation insert_or_replace_operation = azure::storage::table_operation::insert_or_replace_entity(entity_to_insert_or_replace);
// Submit the operation to the Table service.
azure::storage::table_result insert_or_replace_result = table.execute(insert_or_replace_operation);
Az entitástulajdonságok egy részének lekérdezése
Egy táblalekérdezéssel egy entitásnak csak bizonyos tulajdonságait is lekérdezheti. Az alábbi kódban szereplő lekérdezés a table_query::set_select_columns
metódus használatával csak a tábla entitásainak e-mail-címét adja vissza.
// Retrieve the storage account from the connection string.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
// Create a cloud table object for the table.
azure::storage::cloud_table table = table_client.get_table_reference(U("people"));
// Define the query, and select only the Email property.
azure::storage::table_query query;
std::vector<utility::string_t> columns;
columns.push_back(U("Email"));
query.set_select_columns(columns);
// Execute the query.
azure::storage::table_query_iterator it = table.execute_query(query);
// Display the results.
azure::storage::table_query_iterator end_of_results;
for (; it != end_of_results; ++it)
{
std::wcout << U("PartitionKey: ") << it->partition_key() << U(", RowKey: ") << it->row_key();
const azure::storage::table_entity::properties_type& properties = it->properties();
for (auto prop_it = properties.begin(); prop_it != properties.end(); ++prop_it)
{
std::wcout << ", " << prop_it->first << ": " << prop_it->second.str();
}
std::wcout << std::endl;
}
Feljegyzés
Egy entitás néhány tulajdonságának lekérdezése hatékonyabb, mint minden tulajdonság lekérése.
Tartalom törlése
Entitás törlése
Az entitásokat a lekérés után törölheti. Miután lekért egy entitást, kérje meg table_operation::delete_entity
az entitást a törlésre. Ezután hívja meg a metódust cloud_table.execute
. Az alábbi kód lekéri és törli a partíciókulcsot Smith
és a sorkulcsot tartalmazó entitást Jeff
.
// Retrieve the storage account from the connection string.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
// Create a cloud table object for the table.
azure::storage::cloud_table table = table_client.get_table_reference(U("people"));
// Create an operation to retrieve the entity with partition key of "Smith" and row key of "Jeff".
azure::storage::table_operation retrieve_operation = azure::storage::table_operation::retrieve_entity(U("Smith"), U("Jeff"));
azure::storage::table_result retrieve_result = table.execute(retrieve_operation);
// Create an operation to delete the entity.
azure::storage::table_operation delete_operation = azure::storage::table_operation::delete_entity(retrieve_result.entity());
// Submit the delete operation to the Table service.
azure::storage::table_result delete_result = table.execute(delete_operation);
Tábla törlése
Végezetül pedig az alábbi példakóddal törölhető egy tábla a tárfiókból. A törölt táblák a törlést követően egy ideig nem hozhatók létre újra.
// Retrieve the storage account from the connection string.
azure::storage::cloud_storage_account storage_account = azure::storage::cloud_storage_account::parse(storage_connection_string);
// Create the table client.
azure::storage::cloud_table_client table_client = storage_account.create_cloud_table_client();
// Create a cloud table object for the table.
azure::storage::cloud_table table = table_client.get_table_reference(U("people"));
// Delete the table if it exists
if (table.delete_table_if_exists())
{
std::cout << "Table deleted!";
}
else
{
std::cout << "Table didn't exist";
}
Hibaelhárítás
A Visual Studio Community Edition esetében, ha a projekt buildelési hibákat kap a storage_account.h és a table.h fájlokat tartalmazó fájlok miatt, távolítsa el a /megengedő fordítókapcsolót:
- A Solution Explorer (Megoldáskezelő) lapon kattintson a jobb gombbal a projektre, és válassza a Properties (Tulajdonságok) elemet.
- A Property Pages (Tulajdonságlapok) párbeszédpanelen bontsa ki a Configuration Properties (Konfigurációs tulajdonságok), majd a C/C++ csomópontot, és válassza a Language (Nyelv) elemet.
- A Conformance mode (Megfelelőségi mód) értékét állítsa No (Nem) értékűre.
Következő lépések
A Microsoft Azure Storage Explorer egy ingyenes, önálló alkalmazás, amelynek segítségével vizuálisan dolgozhat Azure Storage-adatokkal Windows, macOS és Linux rendszereken.
Az alábbi hivatkozásokra kattintva további információt talál az Azure Storage-ról és az Azure Cosmos DB-beli Table API-ról: