Вниз
Скачать: 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.029 c
9-1117003410
GR
2005-05-25 10:43
2006.02.26
Как на счет СТЕРЕО-ИГРУХИ?


15-1138911475
Piter
2006-02-02 23:17
2006.02.26
Контрольная сумма TTH


1-1138264729
Gremlin13
2006-01-26 11:38
2006.02.26
Как убрать нажатый Ctrl ?


4-1134078315
spyrytus
2005-12-09 00:45
2006.02.26
Как отследить "Завершение работы".


15-1139235738
oldman
2006-02-06 17:22
2006.02.26
И кому оно все надо? (взгрустнулось...)




   Наверх