Rechercher des données de groupe dans le cache avec une requête SQL
NCache fournit des requêtes d'objet à travers lesquelles vous utilisez les critères donnés dans une requête pour rechercher des ensembles de résultats. Pour récupérer les données selon vos critères spécifiés, NCache vous fournit une extension de SQL.
Un mot-clé spécial $Group$
est utilisé pour spécifier que la condition considérée utilise le groupe. Une requête avec les critères de recherche est exécutée en utilisant ExecuteReader
.
ExecuteReader
traite la requête côté serveur, puis envoie le résultat en morceaux (sous forme de dictionnaire contenant des clés et des valeurs) au client sous forme de tableau au ICacheReader
type d'instance.
Conditions préalables pour rechercher des données de groupe dans le cache à l'aide d'une requête SQL
- 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.
- Classes personnalisées/attributs interrogeables must être indexé comme expliqué dans Configuration des index de requête.
- Pour plus de détails sur l'API, reportez-vous à : ICache, ICacheReader, RequêteCommand, ExécuterReader, Service de recherche.
Si le groupe recherché n'est pas dans le cache, la requête sera renvoyée sous forme de Null
valeur.
Rechercher des données dans des groupes à l'aide d'une requête SQL
Vous pouvez également rechercher les éléments de cache présents dans les groupes via SQL. Le programme suivant recherche les ID client présents dans un groupe via une requête 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");
}
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 les groupes sur GitHub.
Voir aussi
.RAPPORTER: Alachisoft.NCache.Client espace de noms.
Java: com.alachisoft.ncache.client espace de noms.
Node.js : Cache classe.
python: ncache.client classe.