Ошибка доступа к MS с MySQL

0

Я работал над приложением, использующим ms access 2010 и oracle. Теперь я работаю над использованием моего sql 5.7 вместо оракула.

Но код в ms-доступе содержит recordset.edit, а затем 2 набора инструкций, за которыми следует recordet.update. recordset.edit recordset.Fields(22).value=1 recordset.update

Это дает ошибку времени выполнения 3197. Вы и другой пользователь пытаетесь изменить одни и те же данные одновременно.

Я попытался сопоставить все типы данных. Но ничего не работает. Тем не менее, я получаю такую же ошибку.

Ценю твою помощь. заранее спасибо

  • 1
    Как вы открываете свой набор записей - где ваш открытый SQL? Конечно, переменная не называется recordset ? Используете ли вы ADO или DAO - где находится строка подключения?
  • 0
    Fields(22) - серьезно? Вы должны обратиться к столбцам по имени, чтобы убедиться, что вы получите правильный.
Показать ещё 3 комментария
Теги:
ms-access
ms-access-2010

1 ответ

1

Это "другое" сообщение пользователя часто вводит в заблуждение, и на самом деле другой пользователь не обновил запись.

Две вещи для проверки:

Если какое-либо обновление sql или код набора записей "может" обновить текущую запись, над которой вы работаете, затем принудительно записывайте диск и, следовательно, нет ожидающих обновлений:

Например:

If me.Dirty = True then me.Dirty = false.

YOUR code here such as above is now called/run

Вторая общая проблема - столбцы с нулевым битом. Они часто путают доступ, и поэтому вам нужно СДЕЛАТЬ УВЕРЕНЬ на уровне SERVER, который у вас установлен по умолчанию для таких столбцов (значение 0 для сервера sql - не уверен, что оно одинаково для MySQL). Так что это ДОЛЖНО проверить проблему.

Следующий:

Убедитесь, что в таблице есть PK, и вы должны добавить версию строки (временную метку). Этот тип столбца НЕ следует путать с датой времени или столбцом для хранения текущего времени - это столбец версии строки. Поэтому добавьте столбец timestamp, убедитесь, что столбец PK существует, и убедитесь, что столбец бит (true/false) в таблице имеет значение по умолчанию. Если существующие столбцы бит имеют нулевые значения, затем запустите запрос обновления, чтобы установить все значения false (0).

После того, как вы измените таблицу (если необходимо), повторно привяжите все свои таблицы доступа.

Вышеупомянутое должно охватывать 99% случаев, когда вы получаете это "другое" сообщение пользователя, когда на самом деле вы уверены, что это не другой пользователь.

  • 0
    Я попробовал это, и это решило большинство проблем, но в конечном счете я написал заявления об обновлении

Ещё вопросы

Сообщество Overcoder
Наверх
Меню