powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
25 сообщений из 37, страница 1 из 2
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523595
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос вроде-бы пересекается с новым faq, но не совсем то...

Есть форма, у нее подчиненная.
На выходе из подчиненной запускается sp, правящая записи в ней. (таблица, из которой берет данные подчиненная форма, с иерархией, и хранимка пересчитывает количество в записях, с учетом количества верхних узлов - т.е. полное кол-во. Чтобы не считать их на лету.)

Создаю новую запись в главной форме - вхожу в подчиненную - создаю запись в подчиненной - выхожу в главную форму (отработала sp) - вхожу в подчиненную - правлю созданную запись - пытаюсь ее сохранить - получаю сабж.

Причем если в той же цепочке поменять первый пункт, т.е.

Встаю на любую запись в главной форме - вхожу в подчиненную - создаю запись в подчиненной - выхожу в главную форму (отработала sp) - вхожу в подчиненную - правлю созданную запись - сохраняю ее

или

Правлю любую запись в главной форме - вхожу в подчиненную - создаю запись в подчиненной - выхожу в главную форму (отработала sp) - вхожу в подчиненную - правлю созданную запись - сохраняю ее

То проблем нет.

Во всех триггерах есть nocount on и вставки для сохранения identity. В главной и подчиненной описана команда синхронизации (формы не на sp, а на выражениях sql - "select * from mytable")

Что делать?
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523602
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вру. Неправильно описал.

Встаю на любую запись в главной форме - вхожу в подчиненную - создаю запись в подчиненной - выхожу в главную форму (отработала sp) - вхожу в подчиненную - правлю созданную запись - пытаюсь ее сохранить - ошибка

Встаю на любую запись в главной форме - вхожу в подчиненную - правлю запись в подчиненной - выхожу в главную форму (отработала sp) - вхожу в подчиненную - правлю ту же запись - пытаюсь ее сохранить - ошибки нет
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523613
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Geo

Твоя проблема типична при отсуствиее комады синхронизации, но она у тебя есть. Попробуй выяснить через Profiler, что Акес передает/запрашивает.
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523616
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очень сильно похоже, что нужен реквери для подчиненной формы.
По сценарию (Б) ОТСУТСТВУЕТ внешний по отношению к рекордсету (подчиненной) формы Update таблицы, по сценарию (А) он ЕСТЬ.
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523619
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отвечал на самое первое сообщение
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523658
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бат вай?..
А, сейчас. Вот:

exec sp_executesql
N'UPDATE "Dolina".."tDrafts" SET
"NameDraft"=@P1 WHERE
"NumDraft"=@P2 AND "NumOrder"=@P3 AND
"StrNum"=@P4 AND "NumHighLevel"=@P5 AND
"NameDraft"=@P6 AND "DateDesign" IS NULL AND
"NormWork" IS NULL AND "Quantity"=@P7 AND
"Comment" IS NULL AND "FullQuantity" IS NULL'
, N'@P1 nvarchar(5),@P2 int,@P3 varchar(5),@P4 nvarchar(2),@P5 int,@P6 varchar(3),@P7 smallint'
, N'asd**', 21109, '77785', N'as', 21106, N'asd', 1

exec sp_executesql N'SELECT * FROM (tDrafts) WHERE NumDraft=@P1', N'@P1 int', 21109

это из профайлера. И следом идет запись о сохранении случившейся ошибки
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523725
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, источник данных у меня меняется по мере перемещения по подчиненной форме:

select * from tDrafts where NumHighLevel=...

а строка синхронизации одна

select * from (tDrafts) where NumDraft=?

Это нормально? (млин, вечером буду хетца читать, как это вообще работает)
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523733
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по этому обрывку судить вполне тяжело.
когда писал, подразумевал следующее

0) я в АДП прктически как номер этого пункта. Когда-то, когда токо вышел 2000 акс чуть щупнул ад с скль 7 потом повода не было.
(кажется сильно хочу поменять работу, только невдомек как это вообще делается...)

1) тогда (по памяти) увидел, что акцесс норовит с рекордсетами формы работать фактически через глобальные серверные курсоры.

2) для данного изложения достаточно считать, что глоб серв. курсоры образуют "собственный" рекордсет, к которому можно подсоединиться, но без этого подсоединенния он прочим процессам не виден.

3) изменения, проведенные во внешних процессах, и затрагивающие отобранные курсором записи фактически инвалидируют их (Ё уровень изоляции)

4) sp_executesql КАК РАЗ И ЗАПУСКАЕТ такое независимое исполнение.
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523734
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from (tDrafts) where NumDraft=?

скобки бы убрал - изврат это, да к тому же ты проблему с identity уже решил в триггере. Ну это так - к делу навряд ли относится, а вот с
Код: plaintext
1.
, N'@P1 nvarchar(5),@P2 int,@P3 varchar(5),@P4 nvarchar(2),@P5 int,@P6 varchar(3),@P7 smallint'
, N'asd**',  21109 , '77785', N'as',  21106 , N'asd',  1 
тебе самому прйдется разбираться. там именно те параметры котрые должны быть?
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523756
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если по рабоче-крестьянски

Встаю на любую запись в главной форме - вхожу в подчиненную - создаю запись в подчиненной - тут сохранить запись-выхожу в главную форму (отработала sp) - вхожу в подчиненную - правлю созданную запись - пытаюсь ее сохранить - ошибка
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523774
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 zz
думаю, сохранение НЕ ПОМОЖЕТ, потому как при ДОбавлении меняетсо КОЛИЧЕСТВО подчиненных записей, в которых sp МАРАЕТ при изменении количества и НЕ МАРАЕТ в противном случае.
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523840
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторскобки бы убрал
/topic/40261#266083
:)

автортам именно те параметры котрые должны быть?
Те.

2zz
бесполезно (пробовал), она же и так сохраняется
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523843
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Victoha
А как с этим бороться/обходить?
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523851
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/40261#266083
:)

именно по этому и написал, что это изврат и это видно далее по тексту :)

З.Ы,
Так до сих пор и не понял в чем загадка скобок.
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523930
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕСЛИ ЭТО ОНО (у тебя НЕ ОБЯЗАТЕЛЬНО оно, мне просто показалось, что похоже) то обходиться можно попробовать 3-мя способами - субъективные мнения в скобках

0) забабахать явный реквери при входе в подчиненную, можно при этом переменную состояния завесть, на которую и смотреть, нужен реквери или нет (чистый акцессный путь )

1) (не нравится) воткнуть явный Update подчиненных в триггер (афтер) НА ВСТАВКУ в подчиненные

2) добавление вынести в собственную хранимку, по возможности избавившись от sp_executesql, иначе, боюсь, все повториться - тут лучше к соседям- скульникам сходить

3) забыл - отвлекли - не могу вспонить - наверно больше ничего не придумаю
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523934
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Victosha3) забыл - отвлекли - не могу вспонить
Если нумеруешь от 0, то считать надо до n-1. Это нормально. 0, 1, 2 - это 3 штуки.
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523949
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч

написал 2) полностью, поставил 3) вспомнил про 0) - записал - ОТВЛЕКЛИ - что писать в 3) не помню - может и не было ничего.
-)))))))
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523973
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот еще придумалось (не 3 3 должно было бы быть что-то специфически "серверное")

4) (вариация на тему 0 ) переменную состояния забабахать в подчиненной форме, если взведена, то при выходе сначала забабахать простой апдейт на текущем коннекте (без хранимки) И ПЕРЕД ПОТЕРЕЙ ФОКУСА контролом подчиненки - реквери

5) нарисовать "традиционный" цикл изменения на рекордсете

ЗЫ
Не забыть при этом, что в адп я 0 и палоччков у мене нету.
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32523977
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Victosha

Первый способ заработал, спасибо. По остальным попробую что-нибудь спросить, м.б. пойму чего.

автор1) (не нравится) воткнуть явный Update подчиненных в триггер (афтер) НА ВСТАВКУ в подчиненные

Зачем? Что при этом произойдет?

автор2) добавление вынести в собственную хранимку, по возможности избавившись от sp_executesql, иначе, боюсь, все повториться - тут лучше к соседям- скульникам сходить

Добавление записи в подчиненную хранимкой? Это как?
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32524016
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор автор
1) (не нравится) воткнуть явный Update подчиненных в триггер (афтер) НА ВСТАВКУ в подчиненные


Зачем? Что при этом произойдет?

предварительное замечание
Все что было написано - это не замена реквери, а некоторая его обертка, которая, возможно, при каких-то вариантах рекордсета его (реквери) в клиентском коде не потребует

ответ
Думал вот о чем: Задача произвести update во всех подчиненных при добавлении новых и не производить в противном случае. Умеренно естественным местом для такого действия будет триггер на вставку. (на самом деле не уверен, что он должен быть after - посмотри в BOL) Так ты всю "бизнес-логику" этого вопроса выносиш на сервер, ассоциируешь ее непосредственно с таблицей, и она не интерферирует с простым изменением записи подчиненной таблицы.

Вообще говоря это не отменяет реквери - но есть надежда.



автор автор
2) добавление вынести в собственную хранимку, по возможности избавившись от sp_executesql, иначе, боюсь, все повториться - тут лучше к соседям- скульникам сходить


Добавление записи в подчиненную хранимкой? Это как?

обычная хранимка с параметрами, внутри которой INSERT
тоже ничего не отменяет - см 12:45.
В действительности не знаю, как прикрутить к табличной форме.
При работе с актив-иксами - относительно стандарный способ.
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32524020
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo
сам я, наверно, пошел бы по дороге 4)
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32524044
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему вообще происходила ошибка?
Количество измененных записей отличается от того, которое Акцесс ожидал увидеть при сохранении записи?
Если да, то сколько он ожидал в случае с вновь созданной после выхода/входа в подформу?
И можно ли это как-то узнать?
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32524049
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И зачем знать перед сохранением изменений в записи @@lastident?
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32524086
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА почему вообще происходила ошибка?
все что я думал по этому поводу, изложил в 12:45

ТАМ ОТВЕТ КАК МИНИМУМ НЕ ПОЛНЫЙ, А, МОЖЕТ И СОВСЕМ НЕВЕРНЫЙ.

Еще раз, грубо идея в том, что после updatet-a значений существующих записей вызванных добавлением новой строки в текущем рекордсете ВСЕ СТРОКИ НЕПРАВИЛЬНЫЕ И НЕ СООТВЕТСТВУЮТ текущему состоянию базы данных, о чем адо и пытается сообщить по своему.

ЗЫ1 вот как-то я призывал Latuk-а поспорить - не захотел. А тема-то родственная. (Там тема про остатки-обороты была)
РОДСТВЕННАЯ ТЕМА:Хранение количества штук подчиненных записей в самих подчиненных в отдельном поле.
Я скромно считаю это плохим проектированием, ПРОТИВОРЕЧАЩИМ естественному быту проектирования РЕЛЯЦИОННЫХ базов данных.
В данном случае даже вопиюще. Я бы лишил подчиненные ТАКОГО волшебного знания.

ЗЫ2
авторИ зачем знать перед сохранением изменений в записи @@lastident?
прошу прощения, но я совсем не знаю о чем это - мы об этом никак не говорили и такого в этом потоке не вижу влет. То есть, наверно, не ко мне.
...
Рейтинг: 0 / 0
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
    #32524109
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор мы об этом никак не говорили и такого в этом потоке не вижу влет

Это о добавлении в триггеры кусков, сохраняющих последний identity. Тоже не понимаю, зачем оно нужно. Блин, пишу программу, которая не знаю как и почему работает/не работает. Обычно кусочки складываются в четкую картину со временем, но как правило далеко не сразу. Надо бы что-нибудь почитать про sql "для чайников" - почему, что и как в нем крутиться.

К сожалению про серверные курсоры (в том числе) я не знаю ничего, то есть абсолютно ничего, поэтому вынужден временно прекратить задавать вопросы, поскольку не понимаю на них ответов. :(

Еще раз спасибо :)
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]