Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 команда для датаадаптера  [new]
Неочень опытный
Guest
Здравствуйте!
Есть такой вопрос: при создании нового датаадаптека в него прописывается команда - хранимая процедура, а возможно ли чтобы эта команда была не хранимой процедурой а функцией (UDF)?
13 дек 06, 11:20    [3528872]     Ответить | Цитировать Сообщить модератору
 Re: команда для датаадаптера  [new]
Z.E.L
Member

Откуда:
Сообщений: 81
Можно. В SelectCommand точно можно написать select * from fn_GetData(). На счет insert, update, delete не уверен, да и нужно ли это вообще. Логичнее использовать ф-ции для выгребания данных, а для остального - хранимки.
13 дек 06, 12:12    [3529363]     Ответить | Цитировать Сообщить модератору
 Re: команда для датаадаптера  [new]
Неочень опытный
Guest
Вопрос не совсем в этом заключается, есть у меня кусок кода в котором используется хранимая процедура:
SqlCommand _cmd = new SqlCommand(procname);
_cmd.Connection = _connect;
_cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter _da = new SqlDataAdapter();
DataSet _ds = new DataSet();
_da.SelectCommand = _cmd;
_da.Fill(_ds, "table");

Я же хочу чтобы procname - это было имя функции которая возвращает таблицу, возможно ли это в принципе
13 дек 06, 14:47    [3530676]     Ответить | Цитировать Сообщить модератору
 Re: команда для датаадаптера  [new]
Z.E.L
Member

Откуда:
Сообщений: 81
Если указать CommandType.StoredProcedure, то в команду можно впихнуть только процедуру. Для функции Ваш код будет таким. (Ведь функцию можно вызвать по разному можно select *, а можно
и select t.f1, t.f2, t.f3, f.f1 from t inner join fn_GetData() f on t.ID = f.tID. По этому вызов функции - это CommandType.Text).


SqlCommand _cmd = new SqlCommand("select * from fn_GetData()");
_cmd.Connection = _connect;
_cmd.CommandType = CommandType.Text;
SqlDataAdapter _da = new SqlDataAdapter();
DataSet _ds = new DataSet();
_da.SelectCommand = _cmd;
_da.Fill(_ds, "table");

13 дек 06, 14:55    [3530775]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить