Конференция "Базы" » Как получить список полей в ХП в МС СКЛ 2005 [D7, MSSQL]
 
  • Int23 (13.05.09 12:31) [0]
    Есть такая ХП


    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). Как получить список всех полей?
  • Palladin © (13.05.09 12:52) [1]
    TDataSet.GetFieldNames получает список полей в вернувшемся наборе данных, на то что происходит в процедуре ему нет никакого дела.
  • Ega23 © (13.05.09 12:58) [2]

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


    Заведи в ХП входной параметр @DateIn datetime ='2009-01-01'
    Выполни её 2 раза - получи разный набор полей.
  • Int23 (13.05.09 13:04) [3]
    у меня есть своя ИДЕ. Я делаю подстановщик кода. Есть ХП которая может возвращать разный набор полей. Я хочу униф. механизм
  • Palladin © (13.05.09 13:21) [4]
    мало ли что ты хочешь... TDataSet - представляет собой конкретный набор данных от сервера, а не все его разные метафизические ревоплощения и вариации в каких то странных, недоступных понимаю TDataSet, условиях.
  • Ega23 © (13.05.09 14:24) [5]

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


    Чудес не бывает.
  • Ega23 © (13.05.09 14:26) [6]
    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;

 
Конференция "Базы" » Как получить список полей в ХП в МС СКЛ 2005 [D7, MSSQL]
Есть новые Нет новых   [134473   +33][b:0][p:0.001]