Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: CL | DM;

Вниз

Динамическое добавление полей в ADOQuery.Fields   Найти похожие ветки 

 
ArhArhangel ©   (2005-12-10 20:37) [0]

Здравствуйте!
Подскажите пожулуйста как динамически в список Fields, компонента ADOQuery можно добавить поля таблицы базы данных  ?


 
Johnmen ©   (2005-12-12 09:23) [1]

ADOQuery.FieldDefs.AddFieldDef + F1
но перед этим внимательно прочитать описание ADOQuery.Fields.Add


 
ArhArhangel ©   (2005-12-14 11:26) [2]

Прочитал и то и другое, но так и не смог реализовать.. :-(


 
Johnmen ©   (2005-12-14 15:51) [3]

А скажи, зачем тебе это? Какая цель?


 
ArhArhangel ©   (2005-12-16 19:19) [4]

Хотел одну форму, с одним компонентом Query сделать универсальной для многих таблиц.
На этой форме надо чтобы в StringGrid имелось поле "Chek" в котором пользователь может выбирать галочками определенные строки..

Если поле Chek создать при проектировании, то тогда не будет видно остальных полей таблиц..
Вот и не знаю как во время выполнения программы добавить эти остальные поля в список Fields


 
Johnmen ©   (2005-12-19 12:23) [5]

1. Надо наоборот. Добавлять своё поле к имеющимся.
2. Изучить DB-Aware компонентя, напр.DBGrid, и никаких там StringGrid.
3. Сходить http://delphikingdom.ru/asp/viewitem.asp?catalogid=168#link3


 
ORMADA ©   (2005-12-19 12:58) [6]

а-ля

   //--- Переносим все поля из MainQuery в MainDataSet ---begin----------------
   for i := 0 to MainQuery.FieldCount - 1 do
     case MainQuery.Fields.Fields[i].DataType of

       ftAutoInc:
         begin
           with TAutoIncField.Create(MainDataSet) do
           begin
             FieldKind := fkData;
             ReadOnly := True;
             FieldName := MainQuery.Fields.Fields[i].FieldName;
             DataSet := MainDataSet;
             Name := DataSet.Name + "Fields" + IntToStr(i);
             MainQuery.FieldDefs.Add(name, ftAutoInc);
           end;
         end;
....


 
Slym ©   (2005-12-19 14:28) [7]

На вскидку...
var i:integer;
Field:TField;
begin
 DataSet.FieldDefs.Clear;
 DataSet.FieldDefs.Update;
 for i:=0 to DataSet.FieldDefs.Count-1 do
 begin
Field:=DataSet.FieldDefs[i].FieldClass.Create(DataSet);
DataSet.Fields.Add(Field);
 end;
//Добавляем свое поле
DataSet.Open;
end;


 
Slym ©   (2005-12-19 14:29) [8]

Забыл...
Field.FieldName:=Contract.FieldDefs[i].Name;


 
ArhArhangel ©   (2006-01-03 07:35) [9]

Всем огромнейшее спасбо :-)



Страницы: 1 вся ветка

Текущий архив: 2006.02.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.06 c
2-1139305606
Id
2006-02-07 12:46
2006.02.26
Локальная база на Fb


1-1138120988
буратино
2006-01-24 19:43
2006.02.26
TWebBrowser


2-1139569824
BaBayka007
2006-02-10 14:10
2006.02.26
Подскажите пожалуйста неопытному....


3-1135613699
Сатир
2005-12-26 19:14
2006.02.26
PL/SQL Developer


2-1139493461
worldmen
2006-02-09 16:57
2006.02.26
Выбор в TCheckListBox-е выбранных строк