|
|
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
SQL 2000 + ADP 2000 sp3\r \r Подчиненная форма "Строки Заказа". Источник - вьюха по одной таблице. На таблице триггер \'for insert, update, delete\', который изменяет вставляемые записи и записи одного же с ними заказа - при вставке, и изменяет оставшиеся в заказе строки - при удалении строк.\r \r при вставке нескольких записей возникала ошибка:\r \r "The data was added to the database but the data won\'t be desplayed in the form because it doesn\'t satisfy the criteria in the underlying record sourse" \r \r или\r \r "Данные, добавленные в базу данных, не будут отображены в форме, так как они противоречат условиям на базовый источник записей" \r \r пока решил с помощью скобок как описано здесь\r \r Но при удалении нескольких записей из подчиненной формы Аксес выдаёт что: \r \r "Row can not be located for updating. Some values may have been changed since it was last read" \r \r и удаляется только одна запись. \r Если же удалять записи одну за одной (триггер типа срабатывает) и не обновлять подчиненную форму нажимая F9 то начиная со второй удаленной записи Аксес будет ругаться теми же словами и не удалять записи. При обновлении с F9 после каждой удаленной записи - всё работает.\r \r Кто знает чем лечить? Где прочитать рецепт?\r \r \r P.S. да! и как на SQL.RU найти топики по целому выражению типа: \r "Row can not be located for updating"\r Если набрать это в строке поиска то покажется много чего - только не то что нужно. \r До смешного - что бы найти что-либо на SQL.RU я лезу на Яндекс или на Рамблер.\r Кстати, на эту ошибку тоже через Рамблер вышел, но только она в конфе по Делфи, а они там на другом языке говорят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 15:47 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
пока решил с помощью скобок как описано здесь \r \r Не тем способом решал - этим - лучше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 15:53 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
в начале всех триггеров set nocount on в строке синхронизации select * from mytable WITH(nolock) where id = ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 15:53 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
А как использовать сохранённую в #t identity? Куда подставлять? На какое событие? Пока не укладывается в голове по полочкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 15:57 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
Н-да... все решилось. При удалении нескольких записей из подчинённой формы, триггер не выполняет множественное удаление (как например при команде: delete * from myTable where id in (1,2,3,4)), а удаляет их одну за одной и каждый раз срабатывает триггер. Вот, например, удаляем две записи в моём случае. При удалении первой записи триггер срабатывает и изменяет в таблице на сервере ту запись которую Аксес собирается удалить. Аксес пробует удалить вторую запись, а на сервере её, типа, нет!!! - я, уж, не знаю по каким признакам Аксес определяет что это не та запись - ID (Primary Key) не изменялся?! Короче Me.Refresh на событие OnDelete, кажется, решает пробему. Во всяком случае пока... Почти сам с собой поговорил Спасибо Виктору и Алексею за быстрый отклик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 16:20 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
А как использовать сохранённую в #t identity? Куда подставлять? На какое событие? Не ты ее пользовать будешь - а Акес. Все беды от того, что он запрашивает последний identity, что бы обновить запись, и он его получает: только в твоем случае - identity от вставки в чужую таблицу и из-за этого глюки,а в примере В.Смирнова - от вставки в темп-таблицу, но так как в темп-таблицу вставлялся "правильный" identity - то все работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 16:23 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
на как Аксес узнает где правильный identity лежит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 16:28 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
на как Аксес узнает где правильный identity лежит? Если смотреть на это через Profiler, то видно как Акес делает "Select @@IDENTITY". Вот так он самостоятельно и узнает: последнее вставленное(созданное) значение счетчика для (только) твоей сессии. Его он и использует для рефреша ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 16:50 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
2 lobodava Профайлер в руки и вперёд, смотреть что Аксес делает. Ему пофиг, где какой идетнити лежит:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 16:50 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
2 Senin Viktor Опоздал:) Чуток совсем:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 16:51 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
Не прогневайтесь, люди добрые! Э-э-э... а кто такой Profiler? Это уже есть в FAQ'е? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 16:57 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
А, блин, дошло!!!!! вставляя в #t новую запись мы тем самым обновляем @@identity. Вот так всегда - по отдельности понятно, а как связать не понятно. А людям которые пытаются объяснить, всё настолько очевидно, что они не понимают чего не понятно Большое спасибо, добрые люди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 17:05 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
Продолжаем разговор. После обновления подчиненной формы указатель текущей записи "улетает" на верх. Хочется вернуть его на только что отредактированную запись. Как это сделать в mdb понятно: Код: plaintext 1. 2. 3. 4. 5. 6. В ADP такой приём не работает. Вариант с DoCmd.FindRecord (как советуют знающие люди) мне не очень понятен - для использования этой команды надо передвинуть фокус в поле по которому будет произведён поиск (или нет?), а если Me.tboItemID.Visible = False, тогда как? Короче.. Как в ADP передвинуть указатель записи, если известно ID этой записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 17:59 |
|
||
|
ADP - Подчиненная Форма - Ошибки
|
|||
|---|---|---|---|
|
#18+
даже несколько способов - у меня на сайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 19:18 |
|
||
|
|

start [/forum/topic.php?fid=45&gotonew=1&tid=1675218]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
7ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 470ms |

| 0 / 0 |
