Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Редактирование данных в таблице 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, все в порядке.
>
> В чем может быть проблема?

Закусывать не пробывал?


Наверх

Титульная страница Поиск, карта сайта Написать письмо