RETURN_VALUE, DataAccesor
От: 10der  
Дата: 25.05.12 07:18
Оценка:
Добрый день.

Есть цель легко получать результат выполнения процедуры (exec @Issue = dbo.ProcName)
С ходу не получилось
Подскажите мысли, если не трудно.

 public class CurrencyManager : BusinessManagerBase<CurrencyManager>
    {
        public CurrencyManager()
        {
           
        }

        private CurrencyAccessor Accessor
        {
            get
            {
                return this.CreateDataAccessInstance<CurrencyAccessor>();
            }
        }

        public GetCurrencyRatesResponse GetCurrencyRates()
        {
            var a = Accessor;
            var x = a.GetCurrencyRates();
            if (x != null) {}
            if (a.err != 0) {}
        }
    }
    [........]


    public abstract class MyAccessor : SimpleAccessor
    {
        public int err = -1;

        // за такой изврат нужно убивать...
        protected override void Dispose(DbManager dbManager)
        {
            err = (int)dbManager.Parameter("@RETURN_VALUE").Value;
            base.Dispose(dbManager);
        }
    }

    public abstract class CurrencyAccessor : MyAccessor
    {
        [SprocName("dbo.p_GetCurrencyRates")]
        public abstract List<ExchangeRateInfo> GetCurrencyRates();
    }


Есть обходной вариант, но почему то прописывать каждый раз в процедуре доп параметр, которого нет в процах, да и еще с созданием класса ошибки, меня не прётЪ...


public abstract List<ExchangeRateInfo> GetCurrencyRates([Direction.ReturnValue("Error")] SQLExecReturnValue Error);


[...]


SQLExecReturnValue ret = new SQLExecReturnValue();
var x  = Accessor.GetCurrencyRates(ret).ToArray();
if (x != null) {}


Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.