![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Редактирование данных в таблице Access через ADOQuery [D5, MS Access]
bss © (2003-12-03 15:12:00)
Есть соединение с таблицей MS Access ADOConnection. Есть запрос данных из таблицы ADOQuery1.
Пишу ADOQuery1.Edit и хочу начать редактировать запись, но запрос почему-то имеет состояние dsEdit... Проверяю свойство запроса CanModify, все в порядке.
В чем может быть проблема?
bss (2003-12-03 16:23:00) [1]
нет, на эти события никаких моих процедур нет
Vlad (2003-12-03 16:22:00) [2]
> bss © (03.12.03 16:11) [16]
АЛЁ, КАМЧАТКА ! ЕСТЬ ЧТО НИБУДЬ НА СОБЫТИЯ ВАШЕГО QUREY BEFORE|AFTEREDIT ИЛИ ДАЛЬШЕ МОЛЧАТЬ БУДЕМ КАК ПАРТИЗАНЫ И НЕ ОБРАЩАТЬ ВНИМАНИЯ НА ЗАДАВАЕМЫЕ ВОПРОСЫ ?
Плохиш_ (03.12.03 16:08) [14]
Vlad © (03.12.03 15:47) [8]
Плохиш_ (03.12.03 15:37) [5]
Скока еще раз нужно спросить ?
-----
Извините, если я слишком много от вас хочу...
bss (2003-12-03 16:11:00) [3]
При пустом наборе записей кнопка "Редактировать" запрещена вовсе...
И еще так к слову:
на форме "свои" кнопки редактирования, но при использовании стандартного TDBNavigator было тоже самое...
Плохиш_ (2003-12-03 16:09:00) [4]
Кстати, а набор данных у тебя случаем не пустой?
Плохиш_ (2003-12-03 16:08:00) [5]
bss © (03.12.03 16:04) [13]
Уже лучше, теперь читаем последнее предложение в
> Vlad © (03.12.03 15:47) [8]
bss (2003-12-03 16:04:00) [6]
Пример прцедуры нажатия на кнопку редактировать:
if DM.qNotRead.CanModify then
begin
DM.qNotRead.Edit;
if DM.qNotRead.State = dsEdit then //здесь запрос в состоянии dsBrowse
DM.qNotRead.FieldByName("HaveRead").AsBoolean := true;
end;
записи не редактируются, а при попытке присвоить полю "HaveRead" значение true вызвается ошибка, что запрос не находится в состоянии dsEdit или dsInsert
Пример прцедуры нажатия на кнопку добавить запись:
if DM.qNotRead.CanModify then
begin
DM.qNotRead.Insert;
if DM.qNotRead.State = dsInsert then //здесь запрос в состоянии dsInsert
DM.qNotRead.FieldByName("HaveRead").AsBoolean := true;
end;
Добавление записи происходит нормально...
Vlad (2003-12-03 15:58:00) [7]
> где это видно, что он readonly и почему тогда записи добавляются?
А где из вашего поста было видно что записи добавляются?
Может расскажем нормально все-таки ? С примерами кода скажем... (еще один тонкий намек)
bss (2003-12-03 15:52:00) [8]
где это видно, что он readonly и почему тогда записи добавляются?
Vlad (2003-12-03 15:49:00) [9]
И еще как вариант. Твой набор данных - ReadOnly
Плохиш_ (2003-12-03 15:49:00) [10]
> bss © (03.12.03 15:42) [7]
> уже в событии BeforeEdit сщстояние запроса dsBrowse.
> Странно еще то, что добавление и удаление записей происходит
> нормально, т.е. он не в readOnly...
Ну и что ты хотел(а) ;-) оно-же и называется Before
Vlad (2003-12-03 15:47:00) [11]
> BeforeEdit
Edit еще не произошел, потому что Before
Говорю, код людям дай поглядеть, может помогут.
В т.ч. все что у тебя написано в событиях Before\AfterEdit
bss (2003-12-03 15:42:00) [12]
уже в событии BeforeEdit сщстояние запроса dsBrowse.
Странно еще то, что добавление и удаление записей происходит нормально, т.е. он не в readOnly...
Vlad (2003-12-03 15:38:00) [13]
> Очепаточка вышла... выдалжелаемое за действительное...
... Сказал Светлана.
Ну да бог с ним.
Ошибка однозначно в 17 строке.
Плохиш_ (2003-12-03 15:37:00) [14]
>bss © (03.12.03 15:33) [4]
Проверь, что делается в OnBeforeEdit, OnAfterEdit.
bss (2003-12-03 15:33:00) [15]
Извиняюсь...
Очепаточка вышла... выдал желаемое за действительное...
На самом деле все обстоит так:
Почему-то при команде ADOQuery1.Insert запрос имеет состояние dsInsert, а вот при командеADOQuery1.Edit почему-то остается в состоянии dsBrowse (в предыдущем сообщении очепаточка была) и соответственно запись не редактируется...
В чем дело? Может быть какое-то свойство у ADOQuery неграмотно стоит?
Vlad (2003-12-03 15:28:00) [16]
> Закусывать не пробывал?
.... сказал Плохиш_ Светлане :)
> Пишу ADOQuery1.Edit и хочу начать редактировать запись,
> но запрос почему-то имеет состояние dsEdit...
А какое, по вашему мнению, запрос (как вы его называете) должон иметь состояние после AdoQuery.Edit ? :)
bss (2003-12-03 15:27:00) [17]
На работе не пью...
А вообще-то первый раз сталкиваюсь с такой проблемой...
Плохиш_ (2003-12-03 15:14:00) [18]
> Есть соединение с таблицей MS Access ADOConnection. Есть
> запрос данных из таблицы ADOQuery1.
> Пишу ADOQuery1.Edit и хочу начать редактировать запись,
> но запрос почему-то имеет состояние dsEdit... Проверяю свойство
> запроса CanModify, все в порядке.
>
> В чем может быть проблема?
Закусывать не пробывал?