Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
3-1135777688
Dimankos
2005-12-28 16:48
2006.02.26
mysql и delphi


2-1139597968
Alex_C
2006-02-10 21:59
2006.02.26
Как наложить один Bitmap на другой?


15-1139141684
Новичоккк
2006-02-05 15:14
2006.02.26
Антивирус


15-1139389488
Empleado
2006-02-08 12:04
2006.02.26
8 февраля - С Днем Науки, товарищи!


6-1132116706
SANEK_10289
2005-11-16 07:51
2006.02.26
Данные о погоде из Интернета




   Наверх