![]() |
Заполнение БД в Delphi. SOS!!!
Есть такая задача: заполнить базу данных автоматически с помощью генератора. Поступил таким образом: по нажатию кнопки "Старт" на главной форме запускается процедура обработки следующего содержания:
procedure TForm1.Start_ButtonClick(Sender: TObject); Var I : Longint; a1: Longint; {пусть в таблице 1 столбец} Begin a1 := 1; i := 1; Repeat Table1.insert; {типа переходим в режим вставки} Table1.last; {переходим в конец таблицы} Table1.FieldByName('Stolb_1').AsInteger := a1; {пишем в столбец} Table1.Post; {сохраняем} a1 := a1 + 100; {изменяем переменную для следующей итерации} i := i + 1; Until i = 10; {10 строк} end; Такая програмка один раз сработала (таблицу я заполнил), потом очистил (также в цикле вызывая Table1.Delete до Table1.EOF, в конце вызвал метод Post). И вот тут появилась проблема!!! Теперь эту таблицу я заполнить не могу!!! Возможно я что-то менял в свойствах объектов (точно не помню), но теперь при нажатии кнопки "Старт" вылезает собщение "Table is not in Insert or Edit mode". ЧТО ДЕЛАТЬ????? P.S. Если убрать строку Table1.insert, на нажатие кнопки - вообще никакой реакции. |
Пересоздал процедуры обработчиков OnClick и добавил выключение свойства "Только чтение":
Table1.ReadOnly := False; Table1.append; {ну, типа записываем сразу в конец} Прогресс налицо - стала появляться хотя бы ошибка. При попытке записи пишет "Cannot perform this operation on an open dataset". Ну, так как dataset - это table1, значит, надо её закрыть: Table1.Active := False; Но тут... "Cannot perform this operation on an CLOSED (!!!!!!!) dataset". Так над какой dataset он может выполнять операции??? |
Цитата:
И удалять все записи не проще через Query? |
Zippy, спасибо за ответ. Я Delphi знаю, мягко говоря, не очень хорошо, поэтому морочиться с запросами - для меня не лучший выход. С помощью рукотворного "дебаггера" (после каждой строки вставил MessageDlg) обнаружил, где ошибка возникает. Сейчас уже точно и не вспомню, но смысл в свойствах readonly, insert, edit и active. Расставив их в нужном порядке, вроде получил то, что хотел - таблица содержит-таки 1440 записей!
Теперь проблема со второй таблицей. Пока буду разбираться сам. Если что не будет получаться - ждите вопроса ;-) |
Цитата:
Код:
Query.SQL.Clear; |
Время: 22:58. |
Время: 22:58.
© OSzone.net 2001-