![]() |
|
|
![]()
|
|
| Serebrus |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 22.5.2007 Где: Ташкент Репутация: нет Всего: нет |
Привет.
Помогите решить следующий вопрос: После работы с таблицей данных ADOTable я удаляю все записи вот так: ADOTable.DeleteRecords(arAll) но у меня ошибка: "Операция не допускается в данном котексте"; По этому я "смостерил" такой код:
проблем почти нет (только немного тормозит), но при следующем добавлении записей в эту таблицу ID начинается со следующей цыфры а не с единицы. Как можно просто очистить таблицу простым путем? Надо чтобы после этого, при добавлении новых записей ID начинался с 1. Заране спосибо. Это сообщение отредактировал(а) Serebrus - 3.9.2007, 17:02 |
|||
|
||||
| ALeXandrK |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 2 Всего: 6 |
Это ужасный способ! Лучше создай запрос вида:
Для того, чтобы выполнить запрос, можно использовать компонент TADOCommand:
А с id - это вопрос сложный, т.к. СУБД следит за тем, чтобы они были всегда уникальные, иначе ты удалил из одной таблицы все данные с этими id, а в другой они остались, что может привести потом к тому, что ты будешь делать неверную выборку из базы. -------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
||||||||
|
|||||||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: 1 Всего: 11 |
ALeXandrK,
в чем сложность с id ?
Добавлено через 8 минут и 23 секунды И уникальность это несколько друге. Никакого отношения к удалению не имеет. Уникальность обеспечивает однозначную идентификацию записи по полю. Важно при вставке\редактировании. При удалении надо думать об ссылочной целостности, иначе появятся "бесхозные" записи. Что я и написал выше. И последнее - не всегда поле id используется для связывания таблиц. |
|||
|
||||
| ALeXandrK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 2 Всего: 6 |
Anark1: спасибо просветил
-------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
|||
|
||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: 1 Всего: 11 |
No problem |
|||
|
||||
| Lunatikus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 29.6.2007 Репутация: 1 Всего: 6 |
а может речь идет об автоинкрементном поле ID?Тогда надо запросом его обнулять.Не вспомню сразу синтаксис-не пользовался давненько.
-------------------- TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games). сайт гильдии |
|||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
думаю можно программно снять флаг автоинкрементности (или изменить тип на Integer) - зависит от БД а потом так же программно вернуть автоинкремент -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Serebrus,
Прочитай правила насчет того, что нужно указывать ОБЯЗАТЕЛЬНО. |
|||
|
||||
| Serebrus |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 22.5.2007 Где: Ташкент Репутация: нет Всего: нет |
Anark1, подскажи пожалуйста, где это:
ON DELETE CASCADE ON UPDATE CASCADE пишется? (как употребляется?) |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
with ADOTable2 do
begin First; for i:=1 to RecordCount-1 do begin Delete; end; end; и еще это может быть из за отсутствия ключевого поля а nехт то зачем одного делета хватит Добавлено через 1 минуту и 8 секунд а лучше
|
|||
|
||||
| Deniz |
|
||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
RinOSpro, а самому попробовать этот код, он не совсем корректный, если указатель стоит не на первой записи. Если не нравится совет ALeXandrK используй что-то типа
3 варианта на выбор. Но лучше все же
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||||||
|
|||||||||
| ALeXandrK |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 2 Всего: 6 |
А * в запросе что-то меняет или просто ты к тому, что с ней, что без нее - одно и тоже? -------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
||||
|
|||||
| Anark1 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: 1 Всего: 11 |
Это употребляется как необязательное условие при создании внешнего ключа. Пример для InterBase SQL Server.
|
||||
|
|||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 8 Всего: 44 |
ALeXandrK, если писать delete со "*" то система должна ругаться. (SQL 92)
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| ALeXandrK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 342 Регистрация: 31.1.2007 Где: Санкт-Петербург Репутация: 2 Всего: 6 |
Deniz: Все время так писал и не разу ругани не слышал. Может уже новый стандарт написали
-------------------- Богат не/ни тот, у кого много, а тот, кому хватает |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |