> Tech > Récupération des valeurs à  partir de fonctions UDF

Récupération des valeurs à  partir de fonctions UDF

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Form2 dans le projet SSMProcFunc fait appel aux trois fonctions UDF de la base de données SSMProcFunc. Le code sous-jacent au formulaire utilise, non pas un objet SqlDataReader, mais un objet DataSet pour accéder à l’ensemble de résultats des produits arrêtés dans une catégorie. La figure 2 illustre Form2 avec

les résultats correspondant à une valeur 7 pour @CategoryID. Au lieu d’afficher les produits arrêtés dans une zone de liste, ce formulaire se sert d’un contrôle DataGrid rempli par l’objet DataSet. Vous pouvez faire en sorte que Form2 s’ouvre à l’exécution du projet en sélectionnant Form2 comme objet Startup dans la page de propriétés du projet. Le processus de récupération de l’ensemble de résultats de la fonction UDF est similaire à celui employé pour la procédure stockée.

Connexion à la base de données. Le listing 6 affiche le code de connexion à la base de données SSMProcFunc. Les utilisateurs initient cette connexion lorsqu’ils cliquent sur le bouton Button1 de Form2. La chaîne de connexion employée diffère de la chaîne sous-jacente à Form1, en ce sens qu’elle désigne un login SQL Server (SSMProcFuncU1) et un mot de passe (SSMProcFunc). Avant d’exécuter ce code, veillez à exécuter le code T-SQL dans SSMProcFunc.sql pour créer le login et accorder les droits appropriés pour les fonctions UDF dans la base de données SSMProcFunc.

Récupération et affichage des valeurs des fonctions UDF. Le listing 7 présente un extrait du code Button1_Click sous-jacent à Form2, lequel récupère et affiche les données des trois fonctions UDF de la bibliothèque de code de base de données SSMProcFunc. Le fait de combiner les fonctions UDF en tant que source pour les valeurs et de remplir un contrôle DataGrid avec un objet DataSet simplifie l’écriture du code et augmente la souplesse d’écriture de celui-ci. Par exemple, cette approche facilite le recours à un objet SqlCommand pour récupérer plusieurs valeurs de retour, indépendamment du fait qu’il s’agisse de valeurs scalaires ou de valeurs de type table.

Le code du bloc A du listing 7 instancie et configure un objet SqlCommand qui représente la fonction UDF ufProductsInCategory. Rappelez-vous que cette fonction renvoie une valeur scalaire. Le code servant à configurer @CategoryID est similaire à celui employé précédemment pour configurer le paramètre d’entrée de la procédure stockée. En appelant la méthode ExecuteScalar, le code copie la valeur de la fonction UDF dans la variable int1, qu’une instruction Dim déclare au préalable avec un type de données integer.

Le code du bloc B montre comment réutiliser le même objet SqlCommand pour récupérer une valeur de la fonction UDF ufDiscontinuedProductsInCategory. Cette tâche requiert deux étapes. Premièrement, vous affectez une nouvelle propriété CommandText à l’objet SqlCommand, qui pointe vers la nouvelle fonction UDF. Deuxièmement, vous enregistrez dans une nouvelle variable la valeur retournée par la méthode ExecuteScalar. Cette variable, intitulée int2, est également du type integer.

Le code du bloc C chargé de remplir la propriété Text de Label2 est généralement le même que pour Form1. Toutefois, Form2 utilise int1 et int2 au lieu de prm1 et prm2.

Le code illustré au bloc D du listing 7 montre comment réutiliser l’objet SqlCommand ; il faut employer ce dernier comme argument pour le constructeur d’un objet SqlDataAdapter. Ensuite, vous appelez la méthode Fill de l’objet en question pour remplir un objet DataSet (das1). La table dans das1 (Tables(0)), qui contient le résultat de la fonction UDF, sert de source de données pour un contrôle DataGrid.

Téléchargez cette ressource

Phishing : Match PKI Versus MFA

Phishing : Match PKI Versus MFA

Au-delà des technologies de protection, les entreprises doivent s’appuyer sur des plateformes qui englobent tous les défis cyber liés à l’authentification des personnes et des machines, quels sont les avantages d’une Infrastructure à Clé Publique (PKI) vis-à-vis de la MFA ?

Tech - Par Renaud ROSSET - Publié le 24 juin 2010