2008-11-02 5 views
0

Existe-t-il un moyen d'exécuter des fonctions personnalisées SQL avec Enterpise Library? J'ai essayé Database.ExecuteScalar() mais pour une raison quelconque, il renvoie null.Fonctions personnalisées SQL dans la bibliothèque d'entreprise

C'est ma fonction:

Database db = DatabaseFactory.CreateDatabase("ConnectionString"); 
DbCommand cmd = db.GetStoredProcCommand("FunctionName"); 
db.AddInParameter(cmd, "Value1", DbType.String, Param1Value); 
db.AddInParameter(cmd, "Value2", DbType.String, Param2Value); 
return Convert.ToBoolean(db.ExecuteScalar(cmd)); 

Voici la méthode db.ExecuteScalar (cmd) retourne null. Cela ne se produit pas avec les procédures stockées.

Soit dit en passant, im en utilisant la version 4.0

Merci.

Répondre

5

Vous devez créer une instruction select qui sélectionne le résultat de la fonction et l'exécute.

« SELECT * FROM FunctionName (@ Valeur1, @ Valeur2) »

Ou vous pouvez envelopper votre appel de fonction dans une procédure et appeler la procédure, je préfère cela.

2

Pour les fonctions scalaires il serait

SELECT FuncName(@Param1) 

alors une fonction de valeur table serait

SELECT * FROM FuncName(@Param1) 
Questions connexes