Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическое создание полей в FIBDataSet'e 
:(
    Опции темы
Delphist
Дата 22.3.2007, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Скажите, пожалуйста, как программно в FIBDataSet'e создать все поля полученные из Sql-запроса. ну т.е. сделать аналог как если бы я в дизайнере кликнул правой кнопкой мыши по компоненту TFIBDataSet и из контекстного меня выбрал Fields Editor... а затем Add Fields... в результате чего появляются все поля.




--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Akella
  Дата 5.3.2009, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Поднимаю тему, вопрос актуален. Только перенесите его в Delphi и базы данных.
PM MAIL   Вверх
Bose
Дата 6.3.2009, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



А что мешает сделать также как и в любом другом датасете?
Двойной клик по датасету - и voila.

Кстати, если это не работает, то уточните два вопроса:
1) какая версия FibPlus?
2) FIB-ы точно скомпилированы с директивой USE_GUI(или как она там называется - не помню точно)(пальцем в небо).
PM MAIL WWW Skype   Вверх
Akella
Дата 6.3.2009, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Всё в рантайме, какой ещё двойной клик?

FIB696

У них на форуме задал вопрос, но пока тишина
PM MAIL   Вверх
Delphist
  Дата 6.3.2009, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Akella @  6.3.2009,  03:37 Найти цитируемый пост)
Всё в рантайме, какой ещё двойной клик?
FIB696
У них на форуме задал вопрос, но пока тишина 


Я сделал так:
Код

function
  CreateField(ADataSet: TDataSet; AFieldName: string; AFieldType: TFieldType; 
  AFieldKind: TFieldKind; ASize: integer = 0):
  TField;
var
  FClass: TFieldClass;
  Field: TField;
begin

  Result := nil;
  if AFieldName <> '' then
  begin
    case AFieldType of
      ftInteger: FClass := TIntegerField;
      ftFloat: FClass := TFloatField;
      ftString: FClass := TStringField;
    else
      FClass := TFloatField
    end;
    Field := FClass.Create(ADataSet);
    Field.FieldName := AFieldName;
    Field.FieldKind := AFieldKind;
    Field.DataSet := ADataSet;
    if FClass = TStringField then
      Field.Size := ASize;
    ADataSet.FieldDefs.Update;
    Result := Field;
  end;
end;



Это сообщение отредактировал(а) Delphist - 6.3.2009, 11:04


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Akella
Дата 6.3.2009, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Вот что ответил Сергей Бузаджи.
Цитата
Вообще если поля не созданы в дизайне, то они автоматически создаются при открытии датасета. 


Значит у меня косяк в другом.
PM MAIL   Вверх
pseud
Дата 6.3.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(Akella @  6.3.2009,  11:57 Найти цитируемый пост)
Значит у меня косяк в другом.

Я так понимаю поля АВТОсоздаются если у тебя список Fields - пуст.
Но если там есть хоть одно созданное вручную или в рантайме поле, то датасет после открытия оставляет все как есть.



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Bose
Дата 6.3.2009, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Цитата(pseud @  6.3.2009,  15:55 Найти цитируемый пост)
Я так понимаю поля АВТОсоздаются если у тебя список Fields - пуст.
Но если там есть хоть одно созданное вручную или в рантайме поле, то датасет после открытия оставляет все как есть.

Да. Это стандартное поведение всех датасетов.

Поля создаются автоматически при открытии датасета, либо при вызове Prepare.

Цитата(Akella @  6.3.2009,  01:37 Найти цитируемый пост)
Всё в рантайме, какой ещё двойной клик?

сорри, ступил.

PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.