Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Zippy

Старожил


Сообщения: 278
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата:
Table is not in Insert or Edit mode". ЧТО ДЕЛАТЬ
А дебаггер не показывает строку где вываливается ошибка?
И удалять все записи не проще через Query?

Отправлено: 14:04, 13-11-2005 | #3

Voprosik


Сообщения: n/a

Профиль | Цитировать


Zippy, спасибо за ответ. Я Delphi знаю, мягко говоря, не очень хорошо, поэтому морочиться с запросами - для меня не лучший выход. С помощью рукотворного "дебаггера" (после каждой строки вставил MessageDlg) обнаружил, где ошибка возникает. Сейчас уже точно и не вспомню, но смысл в свойствах readonly, insert, edit и active. Расставив их в нужном порядке, вроде получил то, что хотел - таблица содержит-таки 1440 записей!
Теперь проблема со второй таблицей. Пока буду разбираться сам. Если что не будет получаться - ждите вопроса ;-)

Отправлено: 21:03, 13-11-2005 | #4


Аватара для Zippy

Старожил


Сообщения: 278
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата:
поэтому морочиться с запросами
А что там? кладешь компонент Query на форму, все настройки, что и для Table. В нужном месте пишешь что-то в этом духе:
Код: Выделить весь код
Query.SQL.Clear; 
Query.SQL.Add( 'DELETE * FROM Mytable;' );
Query.ExecSQL;

Последний раз редактировалось Zippy, 13-11-2005 в 21:27. Причина: Опечатка


Отправлено: 21:26, 13-11-2005 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Заполнение БД в Delphi. SOS!!!

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход