Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить список полей в ХП в МС СКЛ 2005 [D7, MSSQL]


Int23 ©   (2009-05-13 12:31:00) 

Есть такая ХП


CREATE PROCEDURE dbo.Test23
  as
if getdate()<'2009-01-01'
 select 123 as F1,  23 as F2
else
 select 13 as F3,  123 as F4


Суть в том, что в зависимости от параметров возвращается разный состав полей. Я вызываю TDataSet.GetFieldNames, но мне возвращается первый список полей (F1,F2). Как получить список всех полей?


Ega23   (2009-05-13 14:26:00) [1]

function Foo(const Value : Integer) : TObject;
begin
 case Value of
   0 : Result := TStringList.Create;
   1 : Result := TADOConnection.Create(nil);
   2 : Result := TBitmap.Create;
   else
     Result := nil;
 end;
end;


Ega23   (2009-05-13 14:24:00) [2]


> Я хочу униф. механизм


Чудес не бывает.


Palladin   (2009-05-13 13:21:00) [3]

мало ли что ты хочешь... TDataSet - представляет собой конкретный набор данных от сервера, а не все его разные метафизические ревоплощения и вариации в каких то странных, недоступных понимаю TDataSet, условиях.


Int23   (2009-05-13 13:04:00) [4]

у меня есть своя ИДЕ. Я делаю подстановщик кода. Есть ХП которая может возвращать разный набор полей. Я хочу униф. механизм


Ega23   (2009-05-13 12:58:00) [5]


> Суть в том, что в зависимости от параметров возвращается
> разный состав полей. Я вызываю TDataSet.GetFieldNames, но
> мне возвращается первый список полей (F1,F2). Как получить
> список всех полей?


Заведи в ХП входной параметр @DateIn datetime ='2009-01-01'
Выполни её 2 раза - получи разный набор полей.


Palladin   (2009-05-13 12:52:00) [6]

TDataSet.GetFieldNames получает список полей в вернувшемся наборе данных, на то что происходит в процедуре ему нет никакого дела.


Наверх

Титульная страница Поиск, карта сайта Написать письмо