Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в цикле создавать поля в новой таблице? [D5, Paradox]


AERO ©   (2003-04-18 17:34:00) 

Доброго всем времени суток! Подскажите новичку как правильно сделать? У меня есть массив с именами будущих полей. Требуется создать новую таблицу c именами полей из этого массива.Все поля одного типа. Попробовал в пример из Help"а добавить цикл - не работает:

...
with FieldDefs do begin
Clear;
with AddFieldDef do begin
for x:=0 to nn do begin // добавил цикл
Name := cA[x];
DataType := ftInteger;
Required := True;
end;
end;
end;
...

Подскажите, где я ошибся!


AERO   (2003-04-21 17:08:00) [1]

Прошу прощения за "корявый" вопрос, опыта общения на форуме нет (пишу второй раз). Ваши замечания учту.
Попробовал без WITH- таже ошибка EDBEngineError.
Вариант от Zz_работает, хотя при компиляции появляется предупреждение:
[Warning] Unit1.pas(49): Type "" must be a class to have OLE automation
У меня с этой строки начинается цикл:
for x:=0 to nn do // строка 49
begin // строка 50
Table1.FieldDefs.Add(cA[x],ftInteger,0,True); // строка 51
end;

Переменные проверил - все значения допустимые.
Может ошибка еще в чем-то?


Anatoly Podgoretsky   (2003-04-21 13:43:00) [2]

А не пользуйся для начала WITH трудно читать и разбираться с логикой, обычно получается много ошибок.
Во вторых про ошибки надо говорить сразу, а не потом.


AERO   (2003-04-21 11:56:00) [3]

Спасибо всем кто ответил! Вариант Zz_работает. Хотя все равно непонятно, почему AddFieldDefв цикле вызывает exception: " ... exception class EDBEngineError with message "Capability not supported" ...", а Addвыполняется нормально? Может кто-нить пояснит в чем дело.


Zz_   (2003-04-18 17:43:00) [4]

Clear;
for x:=0 to nn do begin
Add(cA[x],ftInteger,0,True);
end;


Anatoly Podgoretsky   (2003-04-18 17:37:00) [5]

А ты проверь в отладчике работает или нет и тамже посмотри, а вдруг NN = -1


Наверх

Титульная страница Поиск, карта сайта Написать письмо