Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Запись ADOTable1 в конец базы


Автор: Domoffou 17.10.2008, 21:38
Записываю данные в БД посредством Delphi (ADOTable1).
У меня только 1 таблица, значения строк таковы:
Код

1
2
3
4
5

Соответственно значение 6 должно отправляться в 6 строку.
После некоторого времени работы с БД все становится черт знает как, вот к примеру:
Код

262
263
264
1
2
3
4
5
6
-//-
261

Причем так во всех таблицах.
Т.е. беспорядочно, записывает иногда файл с начала (хотя по коду должен с конца).
Сам код записи в БД написан следующим образом:
Код

ADOTable1.Last; // - пробовал добавлять, хотя по сути разницы нет
ADOTable1.Edit;
ADOTable1.Append;
ADOTable1.Fields[0].Value:=id;
ADOTable1.Post;

Господа, в чем моя ошибка?
Спасибо.

Автор: Данкинг 17.10.2008, 22:25
Это не твоя ошибка, это косяк Access'а (если БД на нём). Я такую тему уже создавал.

Автор: Domoffou 18.10.2008, 10:51
Может быть записывать как получится в таком случае, а вывод сделать с сортировкой по ID?
Такое реально при большом количестве записей?

Автор: Domoffou 18.10.2008, 11:33
Т.е. можно ли составить вручную запрос в самой БД, который будет все сам фильтровать.
Каким образом мне тогда работать с базой?
Вместо ADOTable юзать ADOQuery?

Автор: Данкинг 18.10.2008, 14:08
Цитата(Domoffou @  18.10.2008,  11:51 Найти цитируемый пост)
а вывод сделать с сортировкой по ID?

Да, сделай своё поле, которое вручную (!!!) наращивай.


Автор: Domoffou 19.10.2008, 22:59
Цитата(Данкинг @ 18.10.2008,  14:08)
Цитата(Domoffou @  18.10.2008,  11:51 Найти цитируемый пост)
а вывод сделать с сортировкой по ID?

Да, сделай своё поле, которое вручную (!!!) наращивай.

это как?)

Автор: Данкинг 19.10.2008, 23:13
Цитата(Domoffou @  19.10.2008,  23:59 Найти цитируемый пост)
это как?) 

Заведи в программе переменную, прибавляй к ней единицу и записывай в соответствующий столбец таблицы.

Автор: Domoffou 19.10.2008, 23:22
Цитата(Данкинг @ 19.10.2008,  23:13)
Цитата(Domoffou @  19.10.2008,  23:59 Найти цитируемый пост)
это как?) 

Заведи в программе переменную, прибавляй к ней единицу и записывай в соответствующий столбец таблицы.

эт я понимаю, можно и через access создать поле со значением счетчика, при создании записи оно будет увеличиваться...
а вот как сделать при выводе сортировку по этому полю?
Я понимаю, что можно юзать SQL, но тогда смысл создавать это поле?

Вопрос в догонку, я всерьёз заинтересовался идеей запросов, т.е. вручную созданных через аксесс. Можно ли подключить их в дельфи и воспринимать как таблицу? Где можно почитать?)

Автор: Данкинг 19.10.2008, 23:25
Цитата(Domoffou @  20.10.2008,  00:22 Найти цитируемый пост)
а вот как сделать при выводе сортировку по этому полю?

Вместо AdoTable используй AdoQuery, в который выводи данные с нужной сортировкой:
Код

select * from table order by pole


Цитата(Domoffou @  20.10.2008,  00:22 Найти цитируемый пост)
Вопрос в догонку, я всерьёз заинтересовался идеей запросов, т.е. вручную созданных через аксесс. Можно ли подключить их в дельфи и воспринимать как таблицу? Где можно почитать?)

Можно, но не знаю, как, ни разу не было нужно. Поищи по форуму: тут много чего можно почитать! smile 

Автор: Domoffou 19.10.2008, 23:30
Данкинг, большое спасибо, буду пробовать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)