|
|
|
Ошибка в запросе на изменение (нарушение блокировки)
|
|||
|---|---|---|---|
|
#18+
Ситуация не понятная, БД 5.х inno, в таблице всего одна запись с ключом id + четыре флага, которые по функционалу могут принимать значения только (0 и 1). Исходное состояние записи например 1,0,0,0,0. Вот такой запрос меняет например последний флаг с 0 на 1 легко: UPDATE flags SET flags.tarif = 1 WHERE (((flags.id)=1)); Соответственно, вот такой запрос этот же флаг сбрасывает в ноль тоже легко UPDATE flags SET flags.tarif = 0 WHERE (((flags.id)=1)); Почему повторное выполнение одного и того же запроса вызывает ошибку нарушение блокировки ? То есть я не могу тупо один и тот же флаг прописать дважды или нулём или единицей ??? Приходится перед установкой флага в 1 сначала проверить - а не стоит ли флаг уже в единице.... тоже самое и с остальными флагами... ну что ещё... таблица прилинкована через ODBC в акцес, настроенный через DSN, винда пофиг какая, драйвер ODBC 5.1.... флаги нумерик + картинка... честно говоря не сильно напрягает, но сильно интересно почему нельзя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 23:46:32 |
|
||
|
Ошибка в запросе на изменение (нарушение блокировки)
|
|||
|---|---|---|---|
|
#18+
тариф на то, чтобы опер слил авто. :-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 23:50:56 |
|
||
|
Ошибка в запросе на изменение (нарушение блокировки)
|
|||
|---|---|---|---|
|
#18+
Lumixтариф на то, чтобы опер слил авто. :-)))) ну примерно где то так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 00:01:10 |
|
||
|
Ошибка в запросе на изменение (нарушение блокировки)
|
|||
|---|---|---|---|
|
#18+
Ладно, бог с ней, с этой проблемой, засуну проверку в этот же запрос в качестве доп. условия типа: Код: sql 1. всё равно для меня MySql только как инструмент для миграции данных... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 00:19:57 |
|
||
|
Ошибка в запросе на изменение (нарушение блокировки)
|
|||
|---|---|---|---|
|
#18+
vmagв таблице всего одна записьа начешуя вам тогда where, извините за мой французский? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 07:00:38 |
|
||
|
Ошибка в запросе на изменение (нарушение блокировки)
|
|||
|---|---|---|---|
|
#18+
tanglirа начешуя вам тогда where, извините за мой французский? В вопросе локализована только проблема... Записи с ключом 2,3, ... это лог изменения, на картинке и поля то не все (дата, время, кто, что, откуда, бла, бла), не выкладывать же всё тз... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 08:49:34 |
|
||
|
Ошибка в запросе на изменение (нарушение блокировки)
|
|||
|---|---|---|---|
|
#18+
vmagПочему повторное выполнение одного и того же запроса вызывает ошибку нарушение блокировки ? Текст запроса никак не может вызвать блокировку. Либо блокировка есть следствие работы "обвязки", либо Вы по непонятной причине считаете блокировкой состояние, когда запись не изменяется - а MySQL считает только количество ФАКТИЧЕСКИХ изменений данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 09:08:47 |
|
||
|
Ошибка в запросе на изменение (нарушение блокировки)
|
|||
|---|---|---|---|
|
#18+
Akina, Вы, как обычно, правы... обвязка... это акцесс выплёвывает стандартное окно (изменение записи невозможно, бла,бла, нарушение блокировки - 1, бла, бла)... СПАСИБО!.... с этим можно жить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 09:37:50 |
|
||
|
Ошибка в запросе на изменение (нарушение блокировки)
|
|||
|---|---|---|---|
|
#18+
vmagСитуация не понятная, БД 5.х inno, в таблице всего одна запись с ключом id + четыре флага, которые по функционалу могут принимать значения только (0 и 1). Исходное состояние записи например 1,0,0,0,0. Вот такой запрос меняет например последний флаг с 0 на 1 легко: UPDATE flags SET flags.tarif = 1 WHERE (((flags.id)=1)); Соответственно, вот такой запрос этот же флаг сбрасывает в ноль тоже легко UPDATE flags SET flags.tarif = 0 WHERE (((flags.id)=1)); Почему повторное выполнение одного и того же запроса вызывает ошибку нарушение блокировки ? То есть я не могу тупо один и тот же флаг прописать дважды или нулём или единицей ??? Высока вероятность того, что ты не знакрываешь транзакцию. Либо делай явный commit, либо включи autocommit . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 13:09:58 |
|
||
|
Ошибка в запросе на изменение (нарушение блокировки)
|
|||
|---|---|---|---|
|
#18+
vmagAkina, Вы, как обычно, правы... обвязка... это акцесс выплёвывает стандартное окно (изменение записи невозможно, бла,бла, нарушение блокировки - 1, бла, бла)... СПАСИБО!.... с этим можно жить...а вы (не вы конкретно) как обычно не пользуетесь поиском https://www.google.ru/search?q=access нарушение блокировки --> http://www.sql.ru/forum/831446/access-odbc-mysql-narushenie-blokirovki-pri-obnovlenii --> http://www.harkyman.com/2008/08/01/mysql-ms-access-odbc-lock-violations-for-the-record/ авторSo, with this simple query: “UPDATE TblParameters SET Value=’1587′ WHERE Parameter=’CurrentCustomer’;” You will get a “lock violation” if the Value field already contains “1587″. If you’re doing this interactively, you can just click through the warning. However, if you’re getting this problem in the middle of a program or script, all you need to do is to enclose the Update command within an if/then statement that checks to see if the value you want to update is already at the desired value. If they are already the same, just skip it. Yes, it’s one extra step, and one more hit on the DB, but that’s what you get for using Access as a front end. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 13:22:08 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39087529&tid=1832571]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 185ms |
| total: | 302ms |

| 0 / 0 |
