Buscar datos con etiquetas con nombre y SQL
Las consultas de objetos también se pueden utilizar para recuperar elementos del caché siendo sus criterios de consulta etiquetas nombradas. La consulta, cuando se ejecute, buscará en la caché de acuerdo con la etiqueta nombrada proporcionada en la consulta SQL. Antes de buscar, asegúrese de que el elemento esté agregado al caché con las etiquetas con nombre. Referirse a Agregar elementos con etiquetas con nombre para obtener detalles sobre cómo crear y agregar etiquetas con nombre.
Requisitos previos
- 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.
El siguiente ejemplo recupera los productos del caché donde los valores de las etiquetas con nombre coinciden con el valor proporcionado.
// 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 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.
advertencia
Si tiene varias aplicaciones que comparten el mismo caché y se supone que todas deben agregar etiquetas con nombre, asegúrese de que las mismas etiquetas con nombre tengan tipos de datos homogéneos. Por ejemplo, si un cliente agrega una etiqueta con nombre ID del Producto con un tipo de datos de cadena, entonces todos los demás clientes deben agregar valores de ID del Producto solo en un formato de cadena para el mismo caché.
Para obtener más detalles sobre consultas de objetos, consulte la Referencia de SQL para NCache .
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: NamedTagsDiccionario clase.
Pitón: ncache.runtime.caching clase.