Operador similar a SQL: sintaxis y uso
Note
Esta función solo está disponible en NCache Enterprise.
NCache le permite buscar un patrón específico en una columna a través de un formato de consulta similar a SQL usando COMO operador.
Los dos comodines utilizados con el COMO operador son:
*
: se usa como sustituto de cero o más caracteres en la cadena.?
: Se usa como sustituto de un solo carácter en la cadena.
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 dada en Requisitos previos de la API del lado del cliente.
- Los objetos que se pueden buscar y sus atributos deben estar indexados por configurando índices or definir índices programáticamente.
- El caché debe estar ejecutándose.
- La aplicación debe ser conectado al caché antes de realizar la operación.
- Para obtener detalles de la API, consulte: Dolor, Lector de ICache, Ejecutar Lector, Servicio de búsqueda, ConsultaComando, ExecuteNonQueryExecuteNonQuery.
- Asegúrese de que los datos que se agregan sean serializable.
- 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.
- Para manejar cualquier excepción no vista, consulte el Solucionando Problemas .
Sintaxis
Aquí hay un ejemplo que busca en el caché y recupera todos los productos que tienen su Nombre del producto comenzando con las letras champúy Categoría comenzando con las letras casaho usando ExecuteReader
.
try
{
// Pre-condition: Cache is already connected
// Items are already present in the cache
// Specify the query with the specified criteria.
// Use the Fully Qualified Name (FQN) of your own custom class
string query = "SELECT * FROM FQN.Product WHERE ProductName LIKE ? AND Category LIKE ?";
// Use QueryCommand for query execution
var queryCommand = new QueryCommand(query);
// Providing parameters for query
queryCommand.Parameters.Add("ProductName", "P*");
queryCommand.Parameters.Add("Category", "Beverage?");
// Executing QueryCommand through ICacheReader
ICacheReader reader = _cache.SearchService.ExecuteReader(queryCommand);
// Check if result set is not empty
if (reader.FieldCount > 0)
{
while (reader.Read())
{
// Get the value of the result set
string result = reader.GetValue<string>("ProductID");
// Perform operations
}
}
else
{
// Null query result set retrieved
}
}
catch (OperationFailedException ex)
{
if (ex.ErrorCode == NCacheErrorCodes.INCORRECT_FORMAT)
{
// Make sure that the query format is correct
}
else
{
// Exception can occur due to:
// Connection Failures
// Operation Timeout
// Operation performed during state transfer
}
}
catch (Exception ex)
{
// Any generic exception like ArgumentException, ArgumentNullException
}
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 la búsqueda de SQL en GitHub.
Vea también
.NETO: Alachisoft.NCache.Servicios al cliente espacio de nombres
Java: com.alachisoft.ncache.runtime.caching espacio de nombres
Nodo.js: cache clase.
Pitón: ncache.servicios al cliente clase.