powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновление невозможно; блокировка другим сеансом данной машины
20 сообщений из 20, страница 1 из 1
Обновление невозможно; блокировка другим сеансом данной машины
    #32319305
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе всем время суток!

Появилася такая проблемка (Акс2000): в одном окне ленточная форма, при клике по записи открывается другое окно: в нем происходит редактирование.

Вот код
В начале модуля второй формы
Код: plaintext
1.
Dim RS As ADODB.Recordset

При загрузке
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
    NewRec = False
    
    PeopleCB.Enabled = True
    CompanyCB.Enabled = True
    
    SaveNewRecBtn.Visible = False
    AddRecord.Visible = True
' ----------------
 
    Set RS = New ADODB.Recordset
    Nid = Id
    RS.Open  "select * from News where NId="  & Nid, _
CurrentProject.Connection, adOpenForwardOnly, adLockPessimistic
    Topic = RS!Topic
    Industry = RS!IndId
    FDate = RS!Date
    SourceCB = RS!SId
    Document = RS!Document
    Body = RS!Body.GetChunk(RS!Body.ActualSize)
    CompanyLB.RowSource = _
 "SELECT C.CId, C.ÑSName FROM CConnect AS CC, Companies AS C WHERE CC.CId=[C].[CId] AND CC.NId="  _
& Nid
    PeopleLB.RowSource = _
 "select P.Pid, P.PSName from PConnect PC, Peoples P where PC.PId= P.Pid and PC.NId="  _
& Nid

При сохранении
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    RS!Topic = Topic
    RS!IndId = Industry
    RS!Date = FDate
    RS!SId = SourceCB
    RS!Document = Document
    If Not IsNull(Body) Then
     RS!Body = Null
     RS!Body.AppendChunk Body
    End If
    RS.Update

При updat'e и происхоит ошибка из сабжа.
Работа в одного юзера.
Все блокировки ставил и по минимуму и по разному.
Почему? Что за сеанс данной машины?
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319314
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты редактируешь ту же запись, что и в ленточной форме?
Если Да - то редактировал ли запись в ленточке до открытия формы 2?
Если Да - то сохрани запись в ленточке (Me.Dirty=False) до открытия 2-ой формы

Если Нет - хрен его знает. Надо инфы по более.
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319318
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В главной форме не редактирую. Там это дополнительно запрещено.

Какой инфы?
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319325
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глянь тут.
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319331
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, почему-то это проявляется, только если запись создал другой пользователь (сисбд и авторизация не применяется). Когда юзер сам создает - все ок.

Убрать поля TimeStamp не возможно. Они нужны. Или я неверно вас понял?

Что такое UPDATECRITERIA? У меня этого нет в хелпе
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319403
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убрать поля TimeStamp не возможно. Они нужны.

Кому? Я сам біло понасоздавал сдуру во всех таблицах, а потом чистил ;-))
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319505
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое UPDATECRITERIA? У меня этого нет в хелпе
Это динамическое свойство рекордсета. Хорошо разжовано в MDAC SDK. Может принимать значения констант
adCriteriaAllCols
adCriteriaKey
adCriteriaTimeStamp
adCriteriaUpdCols

По моему имена констант говорят сами за себя. именно это свойство отвечает за способ проверки наличия изменений перед сохранением записи.
Еще вариант - не использовать * в запросе. Попробуй явно перечислить поля.
Надеюсь уникальная таблица и команда синхронизации прописаны?
А может на табличках есть триггерa?
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319521
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вариант - не использовать * в запросе. Попробуй явно перечислить поля.

Кстати, заметил одну особенность (не пинайте если это уже обсуждалось). Если нужно в выборке произвести вычисления, например Количество*Цена AS Сумма, а затем выполнить агрегатную функцию типа SUM (классический пример обычной накладной) то в случае запроса с перечисленными полями набор является нередактируемым, а в случае со * редактируемым. Так что этой рекомендацией нужно пользоваться осторожно.
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319556
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужно в выборке произвести вычисления, например Количество*Цена AS Сумма, а затем выполнить агрегатную функцию типа SUM (классический пример обычной накладной) то в случае запроса с перечисленными полями набор является нередактируемым, а в случае со * редактируемым.
Я не совсем понял этот пример, так как искринне считаю что запрос с агрегатными функциями не может быть обновляемым. Вот запрос содержащий подзапросы с агрегированием - вполне. Может ты при перечислении полей не указал ключевое поле (а иногда и ключевые поля всех таблиц, учавствующих в запросе, а не только уникальной)?
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319574
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос с агрегатными функциями не может быть обновляемым.

Вот сам запрос:
Код: plaintext
SELECT Приход.*, [Цена входная] * Поступило AS Сумм FROM Приход ORDER BY CodePri

Я возможно немного не так сказал. Сам запрос содержит только вычисляемые поля. А агрегатная функция используется для суммирования поля Сумм в самой форме. А идея насчет ключегого поля возможно таки да ;-) Вроде не включал...
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319587
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сервиспаки все установлены? Что-то похожее вроде лечится сервиспаком.
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319710
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Odess
А как ты дату хранишь? Как число? И удобно работать?
Pavel
Мне очень стыдно, но я не совсем понял, что значат в контексте Акса "уникальная таблица и команда синхронизации"?
CtrlAlt А где проверить сервиспак? У меня в About 9.0.3821 SR-1?
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319719
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как ты дату хранишь? Как число?
Да нет, как DateTime. Пробовал как числа - не понравилось. Хотя у меня часто выборка не просто по дате а по дате + время (пересменка не приходится на 0 часов). Дополнительный гембель...
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32319848
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне очень стыдно, но я не совсем понял, что значат в контексте Акса "уникальная таблица и команда синхронизации"?
Не переживай. Москва не сразу строилась.
В свойствах формы на закладке "Данные" встаем на поле "Однозначная таблица" и жмем F1. то же самое делаем и с "Команда синхронизации".
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32320619
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот какие поля есть у меня в "Данных" главной формы:

Источник записей = "Select..."
фильтр=""
сортировка=""
применение фильтров=нет
разреш изм/удал/доб=нет
Ввод данных=нет
тип набора=Статический набор
блокировка=отстутствует


Вот какие поля есть у меня в "Данных" главной формы:

Источник записей = "" (поля заполняются программно - они не баундятся)
фильтр=""
сортировка=""
применение фильтров=нет
разреш изм/удал/доб=нет
Ввод данных=любые
тип набора=Динамический набор
блокировка=любые

У меня нет тех полей, о которых вы говорите.
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32320644
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приехали. так у тебя mdb чтоли?
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32321265
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да,.. а что, все плохо?
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32321319
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет, просто судя по использованию ADO я сделал вывод что это adp.

RS.Open "select * from News where NId=" & Nid, _
CurrentProject.Connection, adOpenForwardOnly, adLockPessimistic

Попробуй оптимистическую блокировку.
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32321358
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блокировки я перепробовал все!
...
Рейтинг: 0 / 0
Обновление невозможно; блокировка другим сеансом данной машины
    #32321973
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну же, народ, поможите...Уже все перепробовал. Ничего из некардинальных мер не помогает.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновление невозможно; блокировка другим сеансом данной машины
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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