![]() |
|
![]() ![]() ![]() |
|
Heathen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Здравствуйте !
У меня такой вопрос: Есть таблица Ассеss, первое поле ключевое id_n. Как грамотно удалить/вставить строку? ADODataset1.Commandtext:=('delete from table1 where id_n') - пишет что нехватает параметров, если ... where id_n=5' тогда 5-я строка удаляется но вылетает ошибка: CommandText das not return a result set . Вообще надо конечно выбранную удалять а не 5-ю. Заранее спасибо ! |
|||
|
||||
Heathen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Да, забыл сказать что поле id_n еще и автоинкрементное
|
|||
|
||||
Heathen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Вот как я делал это через BDE
UpdateSQL1.Query[ukDelete].ParamByName('OLD_id_n').Value:=Query1.FieldByName('id_n').Value; UpdateSQL1.ExecSQL(ukDelete); В UpdateSQL: delete from table1 where id_n = :OLD_id_n В ADO так неполуается т.к. нет в ADO компонента UpdateSQL |
|||
|
||||
Heathen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Даа... то ли никто не знает(что очень сомнительно) то ли я ерунду спрашиваю(признавать это нехочется)
|
|||
|
||||
Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Можно и проще:
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Sorry, я несколько не понял что такое "Выбранную" - кем выбранную и по какому критерию? Или у тебя уже открытая таблица и там курсор стоит на записи - тогда проще:
ADOTable.delete; -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Heathen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Ну да-курсор уже стоит на записи (строка выделена).
Интересно, а можно все таки это сделать через ADODataset(ну просто чтоб Query на форму не кидать лишний раз) |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Открываем help по ADODataSet, и что мы видим:
... TADODataSet is not capable of issuing Data Manipulation Language (DML) SQL statements that do not return result sets (like DELETE, INSERT, and UPDATE). For this use a component like TADOCommand or TADOQuery. ... Надеюсь это похоже на тот ответ который ты ожидал? -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Heathen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
ADOTable- не подходит, он ведь в отличии от Query работает c одной таблицей, так?
|
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Наверно можно извратится и перехватывать сообщения об ошибках, но зачем. И вообще почему используется TADODataSet? Используй изначально вместо него TADOQuery и не будет проблем
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Да! -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Heathen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Сорри, пока писал про ADOTable вы уже ответили про ADODataset
|
|||
|
||||
Heathen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Чтоб подвести итог. Как же все таки через Query выделенную строку удалять (а не 5-ю)
|
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
ADOQuery1.delete;
Только это не всегда будет работать, если квери типа Select * From MyTable Это будет работать, а если сложный Join какой-нибудь, то это может быть невозможно. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Heathen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Именно Select * From MyTable у меня и прописан но удаляет только в Grid-e
(т.е. наверно в НД) а в самой базе все без изменений |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |