При блокировке базы данных MySQL, таким образом, только один человек сразу может выполнить запрос?

Ниже код будет работать для вас

Private Sub Command531_Click()
     If Nz(ComboReports, "") <> "" And Nz(ComboReports, "") <> "Select Report" Then
        DoCmd.OpenReport ComboReports, acViewPreview, acWindowNormal
   Else
     MsgBox ("You Must First Select a Report To Open!")
     ComboReports.SetFocus
   End If
   ComboReports = ""
End Sub
5
задан Jason S 14 January 2009 в 21:15
поделиться

4 ответа

Вы ищете LOCK.

http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

Это может быть выполнено как простое mysql_query (или MySQLi::query/prepare).

Я сказал бы, что лучше заблокировать определенные таблицы (хотя можно, вероятно, попробовать LOCK TABLES *) это должно быть заблокировано, а не целая база данных - поскольку ничто не сможет быть считанным. Я думаю, что Вы ищете что-то как:

LOCK TABLES items;
START TRANSACTION;
INSERT INTO items (name, label) VALUES ('foo', 'bar');
UNLOCK TABLES;

Или в PHP:

mysql_query('LOCK TABLES items');
mysql_query("INSERT INTO items (name, label) VALUES ('foo', 'bar')");
mysql_query('UNLOCK TABLES');
1
ответ дан 14 December 2019 в 01:19
поделиться

Вручную блокировка таблиц хуже, думают, что Вы могли когда-либо делать. Что происходит, если код для разблокирования их никогда не работает (потому что PHP перестал работать, или пользователь затем нажимает следующий шаг, убегает от ПК, и т.д.).

Один способ минимизировать это в веб-приложении и частой ошибке devs делает, должен иметь datagrid полное из текстовых полей данных для редактирования, с кнопкой сохранения на строку или на целой таблице. Очевидно, если человек открывает это в пятницу и возвращается в понедельник, данные могли бы быть неправильными, и они могли сохранять по новым данным. Один простой способ зафиксировать это состоит в том, чтобы вместо этого иметь кнопки EDIT на каждой строке, и нажатие кнопки затем загружает форму редактирования, этот путь они, надо надеяться, загружают новые данные и могут только отправить 1 изменение строки за один раз.

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

3
ответ дан 14 December 2019 в 01:19
поделиться

Читайте на транзакциях базы данных. Это - вероятно, лучший способ обработать то, в чем Вы нуждаетесь, чем рабочие ТАБЛИЦЫ БЛОКИРОВКИ.

5
ответ дан 14 December 2019 в 01:19
поделиться

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

Отчасти как stackoverflow обрабатывает комментарий.

0
ответ дан 14 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: