Форум: "Базы";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];
ВнизКак в цикле создавать поля в новой таблице? Найти похожие ветки
← →
AERO (2003-04-18 17:34) [0]Доброго всем времени суток! Подскажите новичку как правильно сделать? У меня есть массив с именами будущих полей. Требуется создать новую таблицу 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;
...
Подскажите, где я ошибся!
← →
Anatoly Podgoretsky (2003-04-18 17:37) [1]А ты проверь в отладчике работает или нет и тамже посмотри, а вдруг NN = -1
← →
Zz_ (2003-04-18 17:43) [2]Clear;
for x:=0 to nn do begin
Add(cA[x],ftInteger,0,True);
end;
← →
AERO (2003-04-21 11:56) [3]Спасибо всем кто ответил! Вариант Zz_ работает. Хотя все равно непонятно, почему AddFieldDef в цикле вызывает exception: " ... exception class EDBEngineError with message "Capability not supported" ...", а Add выполняется нормально? Может кто-нить пояснит в чем дело.
← →
Anatoly Podgoretsky (2003-04-21 13:43) [4]А не пользуйся для начала WITH трудно читать и разбираться с логикой, обычно получается много ошибок.
Во вторых про ошибки надо говорить сразу, а не потом.
← →
AERO (2003-04-21 17:08) [5]Прошу прощения за "корявый" вопрос, опыта общения на форуме нет (пишу второй раз). Ваши замечания учту.
Попробовал без 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;
Переменные проверил - все значения допустимые.
Может ошибка еще в чем-то?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c