Buscar datos de etiquetas en caché con consulta SQL
NCache proporciona consultas de objetos a través de las cuales puede buscar y eliminar conjuntos de resultados en función de los criterios proporcionados a la consulta. Para recuperar los datos de acuerdo con sus criterios especificados, NCache le proporciona una extensión de consulta SQL. Le permite buscar los datos en su caché según los criterios del requisito.
Una palabra clave especial $Tag$
se utiliza para especificar que la condición bajo consideración utiliza etiquetas. La consulta SQL con los criterios de búsqueda se ejecuta utilizando ExecuteReader
.
ExecuteReader
procesa la consulta en el lado del servidor y luego envía el resultado en fragmentos (como un diccionario que contiene claves y valores) al cliente en forma tabular al ICacheReader
tipo de instancia.
Puede consultar un elemento que tenga una etiqueta específica como se explica a continuación.
Requisitos previos para buscar datos de etiquetas en caché mediante consulta SQL
- Para obtener información sobre los requisitos previos estándar necesarios para trabajar con todos NCache características del lado del cliente, consulte la página dada en Requisitos previos de la API del lado del cliente.
- Clases personalizadas/atributos de búsqueda debe indexarse como se explica en Configuración de índices de consulta.
- Para obtener detalles de la API, consulte: Dolor, Lector de ICache, ConsultaComando, Ejecutar Lector, Servicio de búsqueda.
Buscar datos en caché con una etiqueta
Al usar consultas de objetos, se puede usar una sola etiqueta para recuperar todos los elementos asociados con esa etiqueta.
Sintaxis
El siguiente ejemplo recupera todos los elementos asociados con la etiqueta. Clientes VIP utilizando la consulta SQL.
Note
Utilice el nombre completo (FQN) de la clase Cliente, por ejemplo, Datos.Cliente.
// Preconditions: Cache is already connected
// Create a query for search
// Use the Fully Qualified Name (FQN) of your own custom class
string query = "Select CustomerID,ContactName FROM Alachisoft.NCache.Samples.Data.Customer WHERE $Tag$ = ?";
// Use QueryCommand for query execution
var queryCommand = new QueryCommand(query);
queryCommand.Parameters.Add("$Tag$", "VIP Customers");
// Executing Query
ICacheReader reader = cache.SearchService.ExecuteReader(queryCommand);
// Read results if 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 contactName = reader.GetValue<string>("ContactName");
Console.WriteLine($"Customer '{contactName}' having ID '{customerID}' is a VIP Customer.");
}
}
else
{
Console.WriteLine($"No VIP Customers found");
}
advertencia
Proporciona un Null
el valor de la etiqueta para la consulta generará una excepción ArgumentNullException o NullPointerException.
Para obtener más detalles sobre NCache consultas por favor refiérase a la Referencia de SQL para NCache .
Note
Para garantizar que la operación sea a prueba de fallas, se recomienda manejar cualquier posible excepción dentro de su aplicación, como se explica en Manejo de fallas.
Recursos adicionales
NCache proporciona una aplicación de muestra para etiquetas en GitHub.
Vea también
.NETO: Alachisoft.NCache.Runtime.Caching espacio de nombres
Java: com.alachisoft.ncache.runtime.caching espacio de nombres
Nodo.js: Etiqueta clase.
Pitón: ncache.runtime.caching clase.