|
|
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
В базе Ac2002 есть связанная таблица, содержащая чуть более 3600 записей. На основе таблицы есть форма. На форме кнопочка. На кнопочку навешан код, который проводит простую операцию. Запускается цикл с первой записи до последней, в котором поле, содержащее дату в полном формате, преобразуется в три поля: первое - номер дня в месяце, второе - номер месяца, третье - номер года. Запускаю код. Происходит следующее - преобразует 490 первых записей и выдает ошибку на операторе ".Edit". Ошибка '3281' "Записи блокированы." Пытаюсь сделать цикл с последней записи к первой. Преобразует приблизительно 500 записей с хвоста и опять выдает туже ошибку. Далее выгоняюю всех юзеров изо всех баз, которые пользуют эту таблицу. Все эти "другие" базы закрываю. Ту, с которой работаю, перегружаю. ЭФФЕКТ ТОТ ЖЕ. Если начиная с последней записи, которая кодом была создана, править "ручками" в форме для этой связанной таблицы, то все правится без проблем - без всяких "блокировок". Далее из "родительской" базы делаю копию этой самой связанной таблицы в ту базу, с которой работаю. Копия - уже просто копия без всяких связей. Подключаю ее к существующей форме. Правлю код, чтоб открывался рекорсет для новой таблицы. Запускаю код. ВСЕ НОРМАЛЬНО СРАБАТЫВАЕТ, т.е. по всем записям все нормально. Поля с номерами дней, месяцев и годов все оказываются заполнеными. Далее делаю запрос на обновление связанной таблицы на основе ее копии, в которой я все преобразовал как надо. Запускаю запрос. Он добегает до какого-то места и ПРОСТО МОЛЧА ВИСНЕТ. Короче, пора и вопрос сформулировать. Он простой - ЧТО ЗА ФИГНЯ???? Кто-нибудь сталкивался с таким??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 16:21 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
Я ничего не понимаю... А особенно вот чего: почему бы эту операцию не сделать запросом? Типа: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 18:41 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
А давай посмотрим код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 18:45 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
полностью согласен с предыдущим , все ети рекордсеты - происки капиталистов, все можно сделать запросами или конструкциями типа DoCmd.RunSql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 19:18 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
Вот он код, который повешен на кнопку: Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Когда я перехожу в коде к несвязанной копии таблицы, я просто меняю "MyTable" на другое название f.e. "MyTable_copy" и все в этой самой "MyTable_copy" проходит. Но запрос на обновление MyTable из MyTable_copy виснет наглухо. Правда запрос на обновление я делал не кодом, а с помощью мастера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 19:19 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
2AlexJuice А как в моем случае написать этот запрос? Че-то я его пишу в коде, а оно все ругается :-( Я ж его на кнопку в форме вешаю. А проапдедить нужно таблицу. Чего-то я не очень понимаю. Если можно разобъясните по-подробней, плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 19:35 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
По умолчанию у тебя используется пессимистичная блокировка. Попробуй применить оптимистичную (dbOptimistic). К тому же ты уверен что выбор типа рекордсета dbOpenDynaset оправдан Может достаточно dbOpenSnapshot? В таблице нет поля-счетчика? Может нужно "полечить" mdb'шку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 19:42 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
Текст запроса я уже вроде написал, да? UPDATE MyTab SET Dy = Day(Dt), Mn = Month(Dt), Yr = Year(Dt) В коде пишешь DoCmd.RunSQL "UPDATE MyTab SET Dy = Day(Dt), Mn = Month(Dt), Yr = Year(Dt)" как писал выше SiriusB [lack?] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 20:57 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
2Pavel автор писал:В таблице нет поля-счетчика? - Есть. А что это меняет? автор писал:Может нужно "полечить" mdb'шку? - А это как и что, плз? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 21:29 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
2 AlexJuice. Увы и ах.... С SQL запросом таже фигня....При выполнении запроса для прилинкованной таблицы, запрос уходит в безмолвное, глухое зависание. Для копии прилинкованной таблицы все делает как часы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 21:46 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
2 Pavel. Какая разница dbOptimistic или нет. Я всех юзеров порозагнал и базы им позакрывал. А то, что могут присутствовать какие-нибудь невидимые хакеры - в этом я железно уверен, что нет таковых у нас в конторе. Да и контора не шибко большая... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 21:50 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
Всем принявшим участие и давшим ценные советы, большое спасибо. Так и осталось не понятным, что это за фигня была. Поскольку мне нужно было сделать разовую, а не регулярную операцию с таблицей, то как-то "раком-боком" вопрос я решил - заменил "родительскую" таблицу в центральной базе, той, что сделал из копии в своей базе. Но жаль, что так и осталась загадкой эта гребанная блокировка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2003, 00:24 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
>> таблице нет поля-счетчика? >- Есть. А что это меняет? Ну тогда нужно открывать рекордскт с опцией dbSeeChanges. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2003, 06:29 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
Просто таблицу лочишь ты сам, тем что "просматриваешь" её формой, это верно только для присоединенной таблицы да и еще Зайди в Сервис->Параметры->Другие что там написано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2003, 10:31 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
2 bazaea Там написано: - Режим открытия по умолчанию - Общий доступ; - Блокировка по умолчанию - Изменяемой записи; - Блокировка записей при открытии БД - стоит "птичка"; - операции DDE - "птичка" на обновление связей DDE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2003, 19:24 |
|
||
|
Какая-то ерунда с блокировкой записей.
|
|||
|---|---|---|---|
|
#18+
Я так понял, что речь идет о Access2002 и судя по настройкам "Просто таблицу лочишь ты сам, тем что "просматриваешь" её формой, это верно только для присоединенной таблицы " остается в силе. Да и еще по поводу решения проблемы (сори что запоздал). Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2003, 11:55 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32326484&tid=1678015]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
137ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 402ms |

| 0 / 0 |
