![]() |
|
![]() ![]() ![]() |
|
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
Доброго времени суток!
Работаю в связке Delphi + MySQL. Хотелось вы выяснить следующее: возможно ли запретить каким-либо образом (средствами СУБД или программно) изменение данных моей программой. Поясню: допустим программа меняет количество товара у поставщика Х на определенное число. Можно ли сделать так, чтобы программа не смогла изменить кол-во товара у конкретного человека Y? Заранее спасибо. |
|||
|
||||
Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
Каким образом меняет: редактированием грида (что-то типа: если значение поля человек равно Y, то запретить редактирование), запросом (update table set количество = новое_значение where человек = X и человек не равен Y)... Как-то так примерно... ЗЫ. Какой вопрос - такой ответ ![]() |
|||
|
||||
Anakin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 25.9.2006 Репутация: нет Всего: нет |
Ну можно допустим добавить поле с Типом БОЛЕАН
Выходит так что если значение Поля ТРУЕ тогда можно редактировать а если значение Фалсе тогда нельзя. И каждый раз программно проверять значение поля перед редактированиям. Я както использовал такое в программе. Когда нет так как не дома. НО если устраивает такой Тип могу Вечером скинуть примерный код. |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
Внесение новых значений и редактирование осуществляется запросами, если говорить о конкретике. Спасибо за идею, возьму на заметку. Для начала хотелось бы определить возможность (!) такого решения - при работе с БД установить блокировку на запись для определенного поставщика (например настройкой БД или управлением через Delphi), чтобы один и тот же код с запросом выполнялся нормально для X, но выдавал ошибку для Y. Это сообщение отредактировал(а) Keeper89 - 9.4.2009, 22:09 |
|||
|
||||
Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
||||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
В MySQL появились триггеры, может в них можно?
|
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: нет Всего: 6 |
Ну а условия то что ли уже отменили??? Ты же знаешь у кого меняешь.. Странный вопрос, нужна конкретика
|
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
помоему речь идет о блокировке записи при одновременном редактировании, так?
Добавлено через 59 секунд "холостой" update в незакомиченной транзакции не заблокирует запись? -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
Решение отличное, но к сожалению поддержка для триггеров включена, начиная с MySQL 5.0.2, а используется 3.x...
Не совсем. Речь идет о блокировке изменений для конкретного значения. Есть идея создания дополнительного приложения, которое будет при обновлении конкретной записи возвращать изменения обратно. Что скажете - возможно и если да, то как? |
|||
|
||||
Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
||||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
||||
|
||||
Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
||||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
Еще разок: 1) есть приложение, добавляющее/обновляющее параметры поставщиков - оно закрыто, и внутрь я никак не залезу (например, не добавлю проверку условий или т.п.); 2) поэтому есть 2 варианта осуществления контроля - на уровне БД (триггеры отпадают из-за версии) и дополнительным приложением. Вот собственно и все. Это сообщение отредактировал(а) Keeper89 - 11.4.2009, 23:48 |
|||
|
||||
Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
Раньше ты говорил немножко другое:
ЗЫ. Тогда, наверное, придется изменять записи на начальные значения, как ты и предполагал... |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
||||
|
||||
Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
По-моему, вариантов не много, только нужно определиться автоматом (с какой частотой) или по требованию будешь возвращать начальные значения... Я бы создал доп. табличку, в которой хранил бы те записи, поля которых нельзя менять программой... И апдейтил бы (по таймеру или кнопке) те поля тех записей нач. таблицы, которые не совпадают со значениями из доп. таблицы... вот и все, в принципе... |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
Спасибо. буду смотреть. |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 1 Всего: 58 |
Возник вопрос: нельзя ли каким-либо образом определить событие добавления или редактирования записи? Или только самостоятельной проверкой таблицы? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |