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

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

При сохранении созданой записи она исчезает [D7, Access]


Страницы:   1 2

AlexeyK ©   (2008-08-20 13:50:00) 

Доброго времени суток!

Есть таблица с 60 полями, работаю через ADO.
Во избежании ошибки "Не удается найти строку для обновления. Некоторые значения могли быть изменены со времени последнего чтения" при событии FormShow использую
...TelTable.Properties['Update Resync'].Value:=adResyncAll;

Проблема вот в чем:
после сохранения созданой записи, она исчезает с набора данных и ее не видно в DBGrid'e.
Но реально в базе она сохраняется и после закрытия/открытия проги все данные видно.

В чем может быть причина?

Зараннее всем спасибо за советы

Да, и еще один нюанс: в БД Access была использавана функция реплики, могло ли это быть причиной?


stas   (2008-08-20 16:59:00) [21]


> Anatoly Podgoretsky ©   (20.08.08 16:39) [15]
> Что на колени хочешь поставить сервер или клиента?


Каким образом если это акцесс?


Anatoly Podgoretsky   (2008-08-20 16:40:00) [22]


> а DBGrid использую только для просмотра, и в конце не буду
> его вообще использовать.

Ну и зачем тогда вообще вопрос, какая разница если сетки нет.


Anatoly Podgoretsky   (2008-08-20 16:39:00) [23]


> CursorLocation: = clServer

Что на колени хочешь поставить сервер или клиента?


Anatoly Podgoretsky   (2008-08-20 16:37:00) [24]


> в AdoQuery

В топку


Anatoly Podgoretsky   (2008-08-20 16:37:00) [25]


> Пробовал, правда с ADOTable

В топку


AlexeyK   (2008-08-20 16:24:00) [26]


> Коран запрещает ?
> Чего вы так все панически избегаете переоткрытий на стабильных серверах ?


Дело не в паническом страхе, а в удобстве пользования, и условий использования программы!


Sergey13   (2008-08-20 16:17:00) [27]

> [10] MsGuns ©   (20.08.08 16:12)
> Чего вы так все панически избегаете переоткрытий на стабильных серверах ?

Просто я их люблю и берегу, как и сеть. И стараюсь не нагружать пустой работой.


MsGuns   (2008-08-20 16:12:00) [28]

>Sergey13 ©   (20.08.08 15:53) [7]
>Если вместо последней запятой поставить жирную точку - абсолютно правильная рекомендация. 8-)

Чего вы так все панически избегаете переоткрытий на стабильных серверах ?


MsGuns   (2008-08-20 16:09:00) [29]

>AlexeyK   (20.08.08 15:56) [8]
>MsGuns спаисбо за совет, но в своем случаее желательно  обойтись без "переоткрытия датасета >и поиска обновленной (добавленной) записи методом Locate"

Коран запрещает ?


AlexeyK   (2008-08-20 15:56:00) [30]

MsGunsспаисбо за совет, но в своем случаее желательно  обойтись без "переоткрытия датасета и поиска обновленной (добавленной) записи методом Locate"

Забыл отметить как раз редактирование идет в отдельно окне через TEdit,TCombobox,TMemo.., а DBGrid использую только для просмотра, и в конце не буду его вообще использовать.


Sergey13   (2008-08-20 15:53:00) [31]

> [6] MsGuns ©   (20.08.08 15:47)

Если вместо последней запятой поставить жирную точку - абсолютно правильная рекомендация. 8-)


MsGuns   (2008-08-20 15:47:00) [32]

1. Заменить TADOTable на TADODataSet
2. Курсор клиентский, а не серверный - в данном случае он и нафиг не нужен, а тормозить будет
3. Для ЛЮБОЙ сортировки вполне достаточно св-во датасета Sort, при этом никакие индексы не нужны вообще

Редактирование и добавление рекомендую организовать не в самой сетке (в этом случае надо громоздить обработчики BeforeXXX/AfterXXX для проверки правильности заполнения данных пользователем), а в модальном окне с не DB-aware контролами (TEdit,TCombobox,TMemo..), а внесение изменений в таблицу выполнять отдельным TADOCommand/TADOQuery с последуещим переоткрытием датасета и поиском обновленной (добавленной) записи методом Locate


stas   (2008-08-20 15:38:00) [33]

Недолжно.
Лучше вообще сделать редактирование отдельным окном и запросом, а в гриде только отображать данные.
Сортировать можно еще с помощью грида, только не стандартного а eh или cx


AlexeyK   (2008-08-20 15:22:00) [34]

Спасибо попробую.
но вот только немного неудобно, переделывать многое прийдеться.

еще вопрос:
я пишу оболочку для работы с одной БД, и планируется сделать так, на серваке лежит база а на клиентских машинах только оболочка и доступ к базе идет через сеть, т.е. к одной базе подключаются несколько пользователей.
в даном случае при использовании CursorLocation: = clServer  проблем не будет?


stas   (2008-08-20 14:48:00) [35]

в AdoQuery -
select * from mytable
Order by FieldName


AlexeyK   (2008-08-20 14:35:00) [36]


> ADOQueryCursorLocation: = clServer
> CursorType := ctKeyset


Пробовал, правда с ADOTable, но тогда не работает сортировка (использовал SORT и по IndexField), а без нее никуда.
Выдает ошибку "текущий проводник не поддерживает необходимые интерфейсы для сортировки"


stas   (2008-08-20 14:21:00) [37]


> >Есть таблица с 60 полями

ОГО!
ADOQuery
CursorLocation: = clServer
CursorType := ctKeyset


Страницы:   1 2

Наверх

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