Pesquisar dados com tags nomeadas e SQL
As Consultas de Objeto também podem ser usadas para recuperar itens do cache com seus critérios de consulta sendo Tags Nomeadas. A consulta quando executada irá pesquisar o cache de acordo com a Named Tag fornecida na consulta SQL. Antes de pesquisar, certifique-se de que o item seja adicionado ao cache com as Named Tags. Consulte o Adicionar itens com tags nomeadas seção para obter detalhes sobre como criar e adicionar tags nomeadas.
Pré-requisitos
- Para aprender sobre os pré-requisitos padrão necessários para trabalhar com todos os NCache recursos do lado do cliente, consulte a página fornecida em Pré-requisitos da API do lado do cliente.
- Classes personalizadas/atributos pesquisáveis devo ser indexado conforme explicado em Configurando índices de consulta.
- Para obter detalhes da API, consulte: ICache, ICacheReader, Comando de consulta, ExecuteReader, Serviço de pesquisa.
O exemplo a seguir recupera os Produtos do cache onde os valores das Tags Nomeadas correspondem ao valor fornecido.
// Preconditions: Cache is already connected
// User wants to see the details of all the customers having 12% VIP membership discount using SQL query.
// Custom class is query indexed through the NCache Management Center or config.ncconf*/
// Create an SQL Query with the specified criteria
// Make sure to use the Fully Qualified Name for custom class
string query = "SELECT CustomerID,ContactName FROM Alachisoft.NCache.Samples.Data.Customer WHERE VIP_Membership_Discount = 0.12 ";
// Use QueryCommand for query execution
var queryCommand = new QueryCommand(query);
// Executing the Query
ICacheReader reader = cache.SearchService.ExecuteReader(queryCommand);
// Read results if the result set is not empty
if (reader.FieldCount > 0)
{
while (reader.Read())
{
// Get the value of the result set
string customerID = reader.GetValue<string>("CustomerID");
string customerName = reader.GetValue<string>("ContactName");
Console.WriteLine($"Customer '{customerName}' with ID '{customerID}' has VIP membership discount.");
}
}
else
{
Console.WriteLine($"No VIP members found");
}
Note
Para garantir que a operação seja à prova de falhas, é recomendável lidar com possíveis exceções em seu aplicativo, conforme explicado em Como lidar com falhas.
Aviso
Se você tiver vários aplicativos que compartilham o mesmo cache e todos eles devem adicionar tags nomeadas, certifique-se de que as mesmas tags nomeadas tenham tipos de dados homogêneos. Por exemplo, se um cliente estiver adicionando uma Tag Nomeada ID do produto com um tipo de dados string, todos os outros clientes deverão adicionar valores de ID do produto apenas em um formato de string para o mesmo cache.
Para obter mais detalhes sobre consultas de objetos, consulte o Referência SQL para NCache seção.
Recursos adicionais
NCache fornece um aplicativo de exemplo para tags em GitHub.
Veja também
.INTERNET: Alachisoft.NCache.Runtime.Cache espaço para nome.
Java: com.alachisoft.ncache.runtime.caching espaço para nome.
Node.js: Named TagsDictionary classe.
Pitão: ncache.runtime.caching classe.