Buscar datos de grupo en caché con consulta SQL
NCache proporciona consultas de objetos a través de las cuales se utilizan los criterios dados en una consulta para buscar conjuntos de resultados. Para recuperar los datos según sus criterios especificados, NCache le proporciona una extensión de SQL.
Una palabra clave especial $Group$
se usa para especificar que la condición bajo consideración usa grupo. Se ejecuta una consulta con los criterios de búsqueda mediante 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.
Requisitos previos para buscar datos de grupo 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 proporcionada 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.
advertencia
Si el grupo buscado no está en el caché, la consulta se devolverá como una Null
.
Buscar datos en grupos mediante consulta SQL
También puede buscar los elementos de caché presentes en grupos a través de SQL. El siguiente programa busca los ID de clientes presentes en un grupo a través de una consulta SQL.
// A user wants to see all the West Coast Customers using the SQL query.
// Preconditions: Cache is already connected
// Items with groups exist in the cache
// 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 (FQN)
string query = "SELECT CustomerID,ContactName FROM Alachisoft.NCache.Samples.Data.Customer WHERE $Group$ = ? ";
// Use QueryCommand for query execution
var queryCommand = new QueryCommand(query);
// Providing parameters for query
queryCommand.Parameters.Add("$Group$", "West Coast Customers");
// Executing the 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 customerName = reader.GetValue<string>("ContactName");
Console.WriteLine($"Customer '{customerName}' having ID '{customerID}' belongs to West Coast.");
}
}
else
{
Console.WriteLine($"No customers from West Coast found");
}
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 grupos en GitHub.
Vea también
.NETO: Alachisoft.NCache.Cliente espacio de nombres
Java: com.alachisoft.ncache.cliente espacio de nombres
Nodo.js: cache clase.
Pitón: ncache.cliente clase.