Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Во время выполнения


Автор: Burka 9.8.2007, 14:45
Во время выполнения программы не могу обратится к полю по имени
Код

AdoTable1.FieldByName('pole1').asString 

Выдает ошибку, что поле не найдено, хотя в БД оно есть.

Я так понял нужно добавить все поля в Fields Editor'e у датасета, как это сделать программно?

Автор: Bose 9.8.2007, 18:46
Цитата(Burka @  9.8.2007,  14:45 Найти цитируемый пост)
Я так понял нужно добавить все поля в Fields Editor'e у датасета, как это сделать программно?


Тут возможны 2 варианта:
1) не добавлять ни одного поля в Fields Editor'e в Design-Time, тогда после активации датасета, все поля добавятся автоматически
2) добавить программно - но как это сделать я счас не знаю. Посмотри как это происходит в твоём датасете...

Автор: ALeXandrK 9.8.2007, 18:49
Нужно что-нибудь наподобие 
Код

...
var Field: TField;
begin
  Field := TField.Create(nil);
  Field.Name := 'Num';
  Field.Text := 'Номер';
  tbl1.Fields.Add(Field);
end;

Автор: Burka 9.8.2007, 18:52
Цитата

1) не добавлять ни одного поля в Fields Editor'e в Design-Time, тогда после активации датасета, все поля добавятся автоматически

Но я и не добавлял полей туда, потому что коннект к базе идет во время выполнения, Fields Editor пуст! и поэтому поля не видны при обращении  smile 

Цитата

2) добавить программно - но как это сделать я счас не знаю. Посмотри как это происходит в твоём датасете...

Куда посмотреть?


Автор: Savek 10.8.2007, 08:40
Если в дизайне не добавлял, значит все поля присуствуют в ADOTable, подключи временно DBGrid и посмотри какие поля отображаются, возможно ошибся буковкой в названии поля

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)