|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
Здравствуйте! У меня много лет работала программка на Access 2003 под WIN ХР , в которой обновлялась присоединённая таблица командой dbs.Execute "UPDATE SPC1_TRANSBILL SET PR_DBF='t" & nviza1 & "' WHERE NVIZA =" & nviza1 & ";" Этой командой обновлялись все(!) записи присоединённой таблице. Проблем никогда не было. После перехода на Access 2010 под WIN 7 эта команда стала обновлять только одну(!) запись по условиям Сделал и программно и вручную запрос на обновление, с такой же командой, с конкретным параметром nviza1: UPDATE SPC1_TRANSBILL SET SPC1_TRANSBILL.PR_DBF= 't5168' WHERE SPC1_TRANSBILL.NVIZA=5168; При нажатии "выполнить"(запрос) появляется окно сообщения Записей, в этом конкретном случае - 7шт., одну обновляет, остальные, получается, блокируются. Подскажите, пожалуйста, что можно сделать. p.s. в настройках ACCESS в "Блокировки по умолчанию" отмечал и "Отсутствует" и "Изменяемой записи" Так же ставил и снимал флажок "Открытие БД с использованием блокировки на уровне записей". У запроса ставил "Блокировка записей отсутствует". (ACCESS после этого закрывал-открывал, таблицу переприсоединял) Ничего не изменялось, всё так же обновляет только одну запись. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2018, 14:23 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
valerian_1, стесняюсь спросить: а сколько записей в которых SPC1_TRANSBILL.NVIZA=5168 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2018, 15:19 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
sdku, 5168 - это просто для примера. И записей по "5168" 7шт. Но обновляется одна, остальные 6шт. я сам же каким-то образом блокирую, получается. Что и выдаётся в сообщении. В Accesse 2003 обновлялись все, сколько было по условию. Сейчас только одна, независимо сколько их. Если зациклить и добавить условие PR_DBF IS NULL, чтобы не обновлялась всё время одна и та же, то в конце концов обновятся все записи, но это ж не выход, а костыль ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2018, 15:48 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
Если хотите обновить все записи: Код: vbnet 1. 2. 3.
Если отобранные по критерию: Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2018, 16:07 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
в 2007 все работает про 2010 не знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2018, 16:10 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
sdku, 2007-й рядом, на другом ПК. То же самое, одна запись обновляется p.s. вы мне написали, по сути, ту же команду, что и у меня ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2018, 16:15 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
sdkuв 2007 все работает про 2010 не знаюvalerian_1sdku, 2007-й рядом, на другом ПК. То же самое, одна запись обновляется p.s. вы мне написали, по сути, ту же команду, что и у менявывод:"суть" не одинакова,в чем-то отличие (чудес не бывает) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2018, 18:36 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
valerian_1, во время выполнения запроса таблица используется в другом месте? Поле, которое вы обновляете, участвует в связях с другими таблицами? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2018, 09:24 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, нет. И в этой стороне не нужно искать. Скорее всего где-то что-то в настройках Access, т.к., ещё раз отмечаю, что в 2003 обновлялись все записи одной командой, а теперь в 2010 только одна. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2018, 09:50 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
valerian_1, как вариант, если грешите на настройки и вы все проверили, что я писал ранее. Тупо импортировать в новую БД 2010. Потому как где то в трех соснах блуждание. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2018, 12:57 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
Игортан, Что импортировать? Программу 2003 в 2010? Так я по сути так и сделал. Текст программы перенёс(не импортировал), только в объявлениях дописал DAO Dim dbs As DAO.Database, rec As DAO.Recordset и всё ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2018, 11:15 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
valerian_1, Да, я имел ввиду импортировать ВСЕ объекты из "плохой" бд. У меня еще было пару раз - кривой офис... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2018, 15:09 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
valerian_1...в которой обновлялась присоединённая таблица командой dbs.Execute "UPDATE SPC1_TRANSBILL SET PR_DBF='t" & nviza1 & "' WHERE NVIZA =" & nviza1 & ";" А ваша присоединённая таблица часом не DBF файл? Если угадал, то, судя по длинному имени таблицы, используется драйвер BDE. Может в нем собака порылась? Если импортировать данные и применить к ним запрос, то какой результат? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2018, 15:30 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, Нет, длинное имя таблицы - это потому что впереди "алиас"(или как там правильно называется) Пользователь, если применительно к этому написанию имени таблицы. Сразу напишу, что у этого пользователя "SPC1" есть все права на изменение таблиц("основной" пользователь) p.s. присоединённый файл(!) dbf у меня в программке тоже есть, но с ним всё нормально работает(чуть выше в программе). в него делаю INSERT считанных SELECTом данных из другой присоединённой таблицы той же БД (ORACLe). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2018, 11:07 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
valerian_1Кривцов Анатолий, Нет, длинное имя таблицы - это потому что впереди "алиас"(или как там правильно называется) Пользователь, если применительно к этому написанию имени таблицы. Сразу напишу, что у этого пользователя "SPC1" есть все права на изменение таблиц("основной" пользователь) p.s. присоединённый файл(!) dbf у меня в программке тоже есть, но с ним всё нормально работает(чуть выше в программе). в него делаю INSERT считанных SELECTом данных из другой присоединённой таблицы той же БД (ORACLe).откройте таблицу режиме конструктора и скриншот выложите сюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2018, 11:43 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
Прогер_самоучка, В строчке "Описание" ODBC;DSN=cp1;UID=spc1;DBQ=CP1;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=F;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=256000;TLO=O;MLD=0;ODA=F;;TABLE=SPC1.TRANSBILL ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2018, 12:08 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
valerian_1 ....что у этого пользователя "SPC1" есть все права на изменение таблиц("основной" пользователь)... таки "SPS1" это пользователь или имя таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2018, 12:12 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
valerian_1Прогер_самоучка, В строчке "Описание" ODBC;DSN=cp1;UID=spc1;DBQ=CP1;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=F;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=256000;TLO=O;MLD=0;ODA=F;;TABLE=SPC1.TRANSBILL я стесняюсь спросить... а нельзя было ли показать таблицу так, чтобы видно было все поля? valerian_1 Код: sql 1.
и желательно встать на поле, с которым проблемы, чтобы увидеть свойства "общие". А то по вашему скрину такого поля даж не существует в вашей таблице... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2018, 12:15 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
sdkuvalerian_1 ....что у этого пользователя "SPC1" есть все права на изменение таблиц("основной" пользователь)... таки "SPS1" это пользователь или имя таблицы?смотрите скрин, вопросы исчезнут :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2018, 12:16 |
|
Обновляется только одна запись, остальные блокируются
|
|||
---|---|---|---|
#18+
Прогер_самоучка, Прилагаю полный скрин. Думал вам интересна только строчка "Описание", т.к., считаю, что от поля, которое я обновляю ничего не зависит, потому что оно же обновляется. Проблема только в том, что обновляется одна запись. А если добавить условие и зациклить UPDATE, то по порядку обновляются все нужные мне строки таблицы. Что я и сделал, и ошибка теперь не выдаётся, всё работает. Но это костыль, и лишние обращения к БД. Да и просто интересно всё таки понять, почему в ХР обновлялись все записи одной командой, а в 2007 и 2007 только одна. SPC1 - это пользователь. Имя таблицы TRANSBILL В конструкциях SQL в других программных средствах обычно пишут через точку SPC1.TRANSBILL, а в VB ACCESS надо через подчёркивание SPC1_TRANSBILL Смотрю скрин, вопросы не исчезают :( ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2018, 13:11 |
|
|
start [/forum/topic.php?fid=45&fpage=49&tid=1611385]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 303ms |
total: | 450ms |
0 / 0 |