|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.11.2009, 23:59 | #1 |
Пользователь
Регистрация: 05.11.2009
Сообщений: 13
|
Для работы с базой на аксесе я добавил Adoconnection, Datasource, adotable, query(не ADO), все настроил, поместил на форму кнопку "добавить". Имеется таблица "Клиент" с полями: фио_клиента, адрес, телефон. Пытаюсь записать запись, но пишет ошибку, мол неправильно употреблены слова в запросе (ругается на название полей таблицы походу)
вот сам запрос: Код:
Что нужно исправить? помогите плз... Изменил Query1 на AdoQuery1. Немного изменил запрос: Код:
Теперь в ошибке пишет: "Изменения не были успешно внесены из-за повторяющихся значений в индексею Удалите индекс или переопределите его..." Зато данные добавляет, правдо надо перезапускать прогу чтобы они появились в DBGride, подозреваю что надо както его обновлять. Какая процедурка может есть стандартная? И как избавится от ошибки? Последний раз редактировалось Stilet; 09.11.2009 в 09:21. |
09.11.2009, 00:47 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
DBGrid через Datasource подцеплен к adotable ?
А вы подцепите к ADOQuery1 и сразу будут видны обновления. (Естественно, после инсерта нужно будет делать селект.) Аdotable тогда не нужна. Другой вариант - после отработки form2.ADOQuery1.ExecSQL; сделайте Аdotable.Refresh. По поводу ошибки. У вас индексы определены или нет ни одного? Если определены, то это не ошибка, а нормальная реакция базы - не имеет права быть двух записей с одинаковым значением индексного поля, о чем и говорит сообщение "Изменения не были успешно внесены из-за повторяющихся значений в индексе. Удалите индекс или переопределите его..." Последний раз редактировалось mihali4; 09.11.2009 в 02:24. |
09.11.2009, 02:21 | #3 |
Пользователь
Регистрация: 05.11.2009
Сообщений: 13
|
Все разобрался:
form2.ADOQuery1.Active := true; Было лишним. Спс михалыч, твой совет с Запросом помог. Теперь другая проблема, делаю по аналогии на другой форме похожий запрос: Код:
Последний раз редактировалось Stilet; 09.11.2009 в 09:21. |
09.11.2009, 09:24 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
В таких случаях я обычно ставлю breakpoint на ту строчку где выполняется команда (в товем случае form3.ADOQuery1.ExecSQL и посмотреть как оно сформировало запрос - после чего скормить его акцессу и пусть пожурит тебя.
I'm learning to live...
|
09.11.2009, 12:03 | #5 |
Пользователь
Регистрация: 05.11.2009
Сообщений: 13
|
|
09.11.2009, 12:07 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
На бряке добавь в Ватч form3.ADOQuery1.SQL.Text и скопируй его значение в Акцесс
I'm learning to live...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добавление записи | gitzzz | Microsoft Office Access | 2 | 23.06.2009 19:30 |
Добавление записи | LLIYT | БД в Delphi | 15 | 09.06.2009 18:25 |
Добавление записи | rn6hac | БД в Delphi | 3 | 02.06.2009 10:26 |
Добавление записи в файл (Delphi) | VadEr | Помощь студентам | 2 | 15.05.2009 10:30 |
Добавление записи.... | Droid | БД в Delphi | 2 | 04.06.2008 15:50 |