Обновление списка полей в ADOQuery

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Обновление списка полей в ADOQuery

Re: Обновление списка полей в ADOQuery

Dr_Grizzly » 28 апр 2007, 09:06

&quot писал(а):Это как же у тебя получилось? Поделись опытом.
Я тоже считаю что это невозможно.
В режиме редактирования проги у ADOQuery заранее написал SQL запрос и добавил поля в список, а когда в коде изменяю sql запрос меняются сами поля, а список остается тем же и тогда прога начинает ругаться :)

Re: Обновление списка полей в ADOQuery

Udaw » 28 апр 2007, 08:50

Если я прально понял, то вот пример(из реальной работающей программы), как можно добавить поле в запрос.


function ……………..
//Описание добавляемого поля
var iField: TIntegerField;
begin
try
//Описание запроса
tProgram.Close;
tProgram.SQL.Clear;
tProgram.SQL.Add('… ');
....
if (условие1) then
begin
//Добавление поля
iField := TIntegerField.Create(nil);
iField.fieldname := 'dvp_uid';
iField.FieldKind := fkData;
iField.Dataset:=tProgram;
tProgram.Fields.Add(iField);
end;
//Выполнение запроса
tProgram.Open;
dvp^ := tProgram.FieldByName('dvp_uid').AsInteger;
if (условие1 ) then
begin
// Удаление поля
tProgram.Fields.Remove(tProgram.FieldByName('dvp_uid'));
tProgram.Close;
iField.Dataset := nil;
end
finally
FreeAndNil(frmSelLicProgram);
if (условие1) then
begin
//Уничтожение экземпляра
iField.Free;
end;
end;
end;

Re: Обновление списка полей в ADOQuery

SergeyS » 28 апр 2007, 06:37

&quot писал(а):А вот так чтобы в коде зарранее написать Adoquery1FIO, а добавить поле потом - так не получится!
Это не скомпилируется!
&quot писал(а):Гы Получится та получилось
Это как же у тебя получилось? Поделись опытом.
Я тоже считаю что это невозможно.

Re: Обновление списка полей в ADOQuery

Dr_Grizzly » 27 апр 2007, 09:29

Гы :) Получится та получилось, но вот про FieldByName чего-то не подумал :) Сенькс!

Re: Обновление списка полей в ADOQuery

Naeel Maqsudov » 27 апр 2007, 08:50

Для обеспечения гибкости не нужно создавать объекты TXXXField в Design-Time.
Устанавливайте свойства полей (такие как DisplayWidth, DisplayFormat...) программно.
Обращаться к полям нужно по имени

Table1.FieldByName('...')...

или по индексу

Table1.Fields...


А вот так чтобы в коде зарранее написать Adoquery1FIO, а добавить поле потом - так не получится!
Это не скомпилируется!

Обновление списка полей в ADOQuery

Dr_Grizzly » 27 апр 2007, 06:33

Всем привет!!! Такая вот штуковина, я создал SQL запрос в ADO и в FieldsEditor'е обновил список полей. Теперь в коде программы я меняю SQL запрос, и естественно меняется список полей, но как мне их программно обновит в FieldsEditor'е? Чтоб можно было обращатся к полю как Adoquery1FIO.text и т.д. А то adoquery1.fields.fields[1].text не очеть удобно, так как не знаю заранне в каком порядке будут расположены поля...

Вернуться к началу