|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Заполнение БД в Delphi. SOS!!! |
|
Delphi - Заполнение БД в Delphi. SOS!!!
|
Voprosik
Сообщения: n/a |
Есть такая задача: заполнить базу данных автоматически с помощью генератора. Поступил таким образом: по нажатию кнопки "Старт" на главной форме запускается процедура обработки следующего содержания:
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, на нажатие кнопки - вообще никакой реакции. |
|
Отправлено: 21:59, 12-11-2005 |
Voprosik
Сообщения: n/a |
Пересоздал процедуры обработчиков 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 он может выполнять операции??? |
Отправлено: 11:33, 13-11-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 278
|
Профиль | Отправить PM | Цитировать Цитата:
И удалять все записи не проще через Query? |
|
Отправлено: 14:04, 13-11-2005 | #3 |
Voprosik
Сообщения: n/a |
Zippy, спасибо за ответ. Я Delphi знаю, мягко говоря, не очень хорошо, поэтому морочиться с запросами - для меня не лучший выход. С помощью рукотворного "дебаггера" (после каждой строки вставил MessageDlg) обнаружил, где ошибка возникает. Сейчас уже точно и не вспомню, но смысл в свойствах readonly, insert, edit и active. Расставив их в нужном порядке, вроде получил то, что хотел - таблица содержит-таки 1440 записей!
Теперь проблема со второй таблицей. Пока буду разбираться сам. Если что не будет получаться - ждите вопроса ;-) |
Отправлено: 21:03, 13-11-2005 | #4 |
![]() Старожил Сообщения: 278
|
Профиль | Отправить PM | Цитировать |
|
Последний раз редактировалось Zippy, 13-11-2005 в 21:27. Причина: Опечатка Отправлено: 21:26, 13-11-2005 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - заполнение массива | Lisiy_egik | Программирование и базы данных | 18 | 20-11-2009 14:58 | |
[решено] Заполнение FORM в IE | HORRIBLE | AutoIt | 5 | 10-09-2009 23:46 | |
Интерфейс - [решено] Не показывается заполнение HDD | JJKey | Microsoft Windows Vista | 2 | 20-06-2009 21:04 | |
Ошибка - Быстрое заполнение диска С: | baltiec | Microsoft Windows 2000/XP | 1 | 17-01-2009 13:04 | |
Заполнение базы из браузера | Qwe1 | Вебмастеру | 6 | 19-02-2008 18:49 |
|