2009-05-15 13 views
0

ich eine gespeicherte Prozedur in PostgreSQL:Erste Rückgabewert aus einer gespeicherten Prozedur in PostgreSQL

CREATE OR REPLACE FUNCTION dosmth() 
RETURNS boolean AS 
$BODY$ 
BEGIN 

RETURN FALSE; 

END; 
$BODY$ 
LANGUAGE 'plpgsql' VOLATILE 

Von ado.net muss ich den Rückgabewert abzurufen. Ich versuche, die folgendes zu tun:

DbCommand cmd = DBTemplate.CreateStoredProcedureCommand(dbConnection, "dosmth"); 

    cmd.Parameters.Add(DBTemplate.CreateParameter(System.Data.DbType.Boolean, 
       "@RETURN_VALUE", System.Data.ParameterDirection.ReturnValue)); 

    DBTemplate.ExecuteNonQuery(cmd); 
    Boolean bl = Convert.ToBoolean(cmd.Parameters["@RETURN_VALUE"].Value); 

Leider dies nicht funktioniert sagen mir, dass die Art DBNull nicht zu Boolean umgewandelt werden.
Irgendwelche Ideen?

Antwort

0

Verwenden Sie ExecuteScalar anstelle von ExecuteNonQuery. Ich erinnere mich, dass ExecuteNonQuery auch kein Ergebnis zurückgibt.

Verwandte Themen