Аксес визуально дублирует записи

PavelVX
Дата: 02.11.2009 09:58:54
Аксес 2003, PostgreSQL 8.3 Linux based.
Данная странность появилась при переходе с MS SQL на PostgreSQL сервер.
Есть форма, в которой для каждого заказа нужно указать несколько параметров, в том числе, в комбобоксе указывается заказчик.
При внесении новой записи в форму, просто встается на новую запись, выбирается заказчик и все нормально. После перехода на новый сервер всплыл такой косяк: при выборе заказчика, если он уже до этого фигурировал в таблице заказов, строчка просто визуально копируется на новую запись, со всеми параметрами. Помогает только переоткрытие аксеса. Локализация проблемы выявила следующее: данный сбой появляется если в событии current_record есть хоть одна команда. То-есть если сделать внутри on_current_record
msgbox "Event current record!"
exit sub
то форма начинает копировать записи. А если сразу
exit sub
то все покажет нормально. При этом, если открыть таблицу в аксесе, и там добавить новую строку, указав заказчика, то и там она будет дублировать. А вот если проделать вставку новой записи до выполнения current_record, то визуально запись вставится нормально.
Может кто-нибудь сталкивался с подобным? Как это лечить? Без события тут не обойтись :(
nrg_fly
Дата: 03.11.2009 10:51:15
привет PavelVX,
не совсем понял твое формулировки:
автор
при выборе заказчика, если он уже до этого фигурировал в таблице заказов, строчка просто визуально копируется на новую запись, со всеми параметрами


может в таблице заказов срабатывает триггер на добавление?
PavelVX
Дата: 03.11.2009 11:24:35
Триггер на этой таблице есть, но он не причем.
Это именно в аксесе петрушка. Потому что, если я событие current_record отключу, то запись, визуально, вставится как надо. А если не отключать, то после внесения записи экран будет выглядеть так, как будто внесли идентичные записи. Если в этот момент через таблицу внести новую запись, то тоже продублирует. Если перезапустить аксес, то он уже покажет нормальные записи.
2 скрина 1 внесение записи
2 после переоткрытия аксеса
PavelVX
Дата: 03.11.2009 11:26:01
Что-то форум не хочет вставлять картинки :(
PavelVX
Дата: 03.11.2009 11:27:27
После переоткрытия аксеса
George-III
Дата: 03.11.2009 11:34:52
PavelVX,

Сталкивался с таким, у меня было из-за проблем в сети, клиенты работают с MDB по SHDSL и связь иногда нестабильна. Сервер Win 2003 Standart
George-III
Дата: 03.11.2009 11:36:33
George-III,

Сорри, не посмотрtл, что сервак PostgreSQL...
mds_world
Дата: 03.11.2009 11:54:01
PavelVX
Это именно в аксесе петрушка. Потому что, если я событие current_record отключу, то запись, визуально, вставится как надо. А если не отключать, то после внесения записи экран будет выглядеть так, как будто внесли идентичные записи. Если в этот момент через таблицу внести новую запись, то тоже продублирует. Если перезапустить аксес, то он уже покажет нормальные записи.

Такое ощущение, что именно с формой что-то произошло. Что-то похожее бывало и (если правильно помню) исправлялось импортом в новую чистую БД.
nrg_fly
Дата: 04.11.2009 11:01:06
PavelVX
Триггер на этой таблице есть, но он не причем.
Это именно в аксесе петрушка. Потому что, если я событие current_record отключу, то запись, визуально, вставится как надо. А если не отключать, то после внесения записи экран будет выглядеть так, как будто внесли идентичные записи. Если в этот момент через таблицу внести новую запись, то тоже продублирует. Если перезапустить аксес, то он уже покажет нормальные записи.
2 скрина 1 внесение записи
2 после переоткрытия аксеса


я бы еще для окончательного теста построил произвольную форму на этом же источнике, что и проблемная форма, поставил бы такие же обработчики событий и проверил. Если и новая форма "глючит", то как и было ранее посоветовано можно просто все перенести в новый проект.
В таким "непонятных" случаях я также лечился редко через процедуру сжать-восстановить базу.
PavelVX
Дата: 05.11.2009 08:04:21
mds_world, мой респект!
Я когда-то давно так же лечил непонятно откуда взявшуюся странность аксеса. А тут память подвела.
Очень действенный метод если аксес начинает вести себя непредсказуемо.
Но! Это не помогло! Точнее ситуация такая: Я все импортирую, но в неопределенный момент все опять съезжает! :(. Сейчас пытаюсь отловить момент, когда все съезжает, но не могу. Импортирую по частям, подключаю модули по частям, подключаю библиотеки по частям. При этом постоянно делаю резервные копии. В разные моменты перестаёт аксес вести себя адекватно. Но самое противное в другом. Я начинаю открывать резервные копии в обратном порядки и они тоже перестают вести себя адекватно. До непонятно какого момента. Впервые вижу такую петрушку.
Кто и что посоветует? Как бы это дело отдиагностировать?