Quello che stai cercando è il metodo includeTotalCount
sull'oggetto Tabella/query (purtroppo che manca dalla documentazione, farò un bug al team di prodotto per avere la fissa).
Quando si chiama read
sull'oggetto query, verrà restituito per impostazione predefinita 50 (IIRC, il numero potrebbe essere diverso) elementi da esso, per impedire a una chiamata ingenua di restituire tutti gli elementi in una tabella molto grande (in tal modo o incorrere il costo della larghezza di banda in uscita per i servizi riservati o il raggiungimento della quota per quelli gratuiti). Quindi ottenere tutti gli elementi nella tabella e ottenere la lunghezza dei risultati potrebbe non essere accurato.
Se tutto ciò che si desidera è il numero di elementi nella tabella, è possibile utilizzare il codice riportato di seguito: restituzione zero elementi e il conteggio totale.
var table = client.getTable('tableName');
table.take(0).includeTotalCount().read().then(function (results) {
var count = results.totalCount;
new Windows.UI.Popups.MessageDialog('Total count: ' + count).showAsync();
});
Se si desidera richiedere alcuni elementi, e comprendono anche il conteggio totale (vale a dire, per il paging), basta aggiungere le opportune take()
e skip()
chiamate, e anche il includeTotalCount
pure.
Grazie carlosfigueira! Ha funzionato :). E c'è un modo per eseguire questo processo sul lato azzurro e restituire il risultato del conteggio delle righe solo all'app client? –
Sarebbe bello fornire un semplice metodo 'Query'' .count() 'che ha fatto esattamente questo. Qualcosa come ...' client .getTable ('tableName'). count() 'invece di' read() ' per ottenere il risultato scalare; – SliverNinja
Buona idea, presenterà un suggerimento con il team del prodotto. – carlosfigueira