Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновление невозможно; блокировка другим сеансом данной машины / 20 сообщений из 20, страница 1 из 1
10.11.2003, 18:49
    #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
10.11.2003, 19:05
    #32319314
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление невозможно; блокировка другим сеансом данной машины
Ты редактируешь ту же запись, что и в ленточной форме?
Если Да - то редактировал ли запись в ленточке до открытия формы 2?
Если Да - то сохрани запись в ленточке (Me.Dirty=False) до открытия 2-ой формы

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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