Opérateur de type SQL : syntaxe et utilisation
Notes
Cette fonctionnalité est uniquement disponible dans NCache Enterprise.
NCache vous permet de rechercher un modèle spécifique dans une colonne via un format de requête de type SQL en utilisant COMME opérateur.
Les deux caractères génériques utilisés avec le COMME l'opérateur sont :
*
: utilisé en remplacement de zéro ou plusieurs caractères dans la chaîne.?
: utilisé en remplacement d'un seul caractère dans la chaîne.
Pré-requis
- Pour en savoir plus sur les prérequis standard requis pour travailler avec tous NCache fonctionnalités côté client, veuillez vous référer à la page donnée sur Prérequis de l'API côté client.
- Les objets interrogeables et leurs attributs doivent être indexés soit par configuration des index or définition d'index par programme.
- Le cache doit être en cours d'exécution.
- La demande doit être connecté au cache avant d'effectuer l'opération.
- Pour plus de détails sur l'API, reportez-vous à : ICache, ICacheReader, ExécuterReader, Service de recherche, RequêteCommand, ExécuterSans Requête.
- Assurez-vous que les données ajoutées sont sérialisable.
- Pour s'assurer que l'opération est sécurisée, il est recommandé de gérer toutes les exceptions potentielles dans votre application, comme expliqué dans Gestion des échecs.
- Pour gérer les exceptions invisibles, reportez-vous au Dépannage .
Syntaxe
Voici un exemple qui recherche dans le cache et récupère tous les produits qui ont leur ProductName commençant par les lettres Shampooinget la
Catégories commençant par les lettres Maison en utilisant 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
}
Notes
Pour garantir la sécurité de l'opération, il est recommandé de gérer toutes les exceptions potentielles au sein de votre application, comme expliqué dans Gestion des échecs.
Ressources additionnelles
NCache fournit un exemple d'application pour la recherche SQL sur GitHub.
Voir aussi
.RAPPORTER: Alachisoft.NCache.Services clients espace de noms.
Java: com.alachisoft.ncache.runtime.caching espace de noms.
Node.js : Cache classe.
python: ncache.services clients classe.