Получение возвращаемого значения из хранимой процедуры в PostgreSQL - PullRequest
0 голосов
/ 16 мая 2009

У меня есть хранимая процедура в PostgreSQL:

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

RETURN FALSE;

 END;
 $BODY$
 LANGUAGE 'plpgsql' VOLATILE

С ado.net мне нужно получить возвращаемое значение. Я пытаюсь сделать следующее:

   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);

К сожалению, это не работает, сообщая, что тип DBNull не может быть преобразован в Boolean.
Есть идеи?

1 Ответ

0 голосов
/ 16 мая 2009

Попробуйте использовать ExecuteScalar вместо ExecuteNonQuery. Кажется, я помню, что ExecuteNonQuery также не возвращает результат.

...