![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ограничение записей в базе Firebird [D7, IB6.x, Firebird]
Carmen © (2005-07-22 14:31:00)Возможно ли средствами Firebird ограничить количество записей в таблице, так чтобы это ограничение снять былобы трудно. Имеется ввиду создание демо версии какой либо программы с ограничение количества записей в таблице скажем 50 или 100.
linesoft (2005-08-09 10:24:00) [1]УсЁ перечислено...
Ставь заглушки в проге. Она скомпилирована. А гарантий тоже никаких. Потому что вот...
carmen (2005-08-09 08:00:00) [2]идея с тригерами не подходит, их можно и подправить.
Идея с вычищением исходного текста ХП и триггеров из БД тоже, востановление/сохранение базы идем автоматом.
Какие еще есть варианты
Rule (2005-07-23 13:43:00) [3]а зря, тема то интересная ...
Anatoly Podgoretsky (2005-07-23 13:10:00) [4]Автор ушел в подполье
DrPass (2005-07-22 23:04:00) [5]А вам важно именно триггером проверять? Почему бы программе самой, когда надо, не вызывать select count... from...
Desdechado (2005-07-22 18:38:00) [6]Видел как-то программку, которая вычищает исходный текст ХП и триггеров из БД, оставляя только скомпилированную часть.
В этом случае можно и в триггер запихнуть проверку.
Однако не уверен, что при этом backup-restore будет функционировать...
Val (2005-07-22 16:34:00) [7]>[12] Андрей Жук © (22.07.05 16:20)
я понял вашу мысль, просто я несколько косноязычно выразился в [11]. Я имел ввиду, что вы предлагате сделать некое подобие триггера перед вставкой, который будет работать и на клиенте и на сервере, так как вставки могут идти как с клиента, так и в коде хп в серверной части. Вариант, в, принципе, рабочий конечно, но для очень уж простой таблички, в которую вставка идет в 2-3-5 местах, иначе - гемор.
Johnmen (2005-07-22 16:23:00) [8]А если тельце триггера покоцано ? :))))
Вобщем разговор весёлый, легкий и беспредметный...
Андрей Жук (2005-07-22 16:20:00) [9]На клиенте проверку наличия серверного триггера
Val (2005-07-22 16:12:00) [10]рукотворный триггер на клиенте делать будем? а вставки на сервере?
Андрей Жук (2005-07-22 16:05:00) [11]а когда надо. При старте, при добавлении
Val (2005-07-22 16:01:00) [12]>[8] Андрей Жук © (22.07.05 15:58)
когда проверять? :)
Андрей Жук (2005-07-22 15:58:00) [13]А тогда проверять наличие триггера и его код. Не совпадает - вылетать с ошибкой.
Johnmen (2005-07-22 15:07:00) [14]>Digitman © (22.07.05 14:56) [6]
>таблица же, как понимаешь, живет себе преспокойно в БД и безо всяких приложений
Вот это я и имел в виду.
Но понял так, что защищаем приложение.
>было бы что защищать) ... согласен ?)
Дык :))
Digitman (2005-07-22 14:56:00) [15]
> Johnmen © (22.07.05 14:50) [5]
> в конце-концов защищаем приложение, а не БД
не знаю , не знаю ...
автор про приложение ничего не говорил, его именно число записей в таблице озаботило ...
таблица же, как понимаешь, живет себе преспокойно в БД и безо всяких приложений
> защитить её по уму не удастся
было бы что защищать) ... согласен ?)
Johnmen (2005-07-22 14:50:00) [16]>Digitman © (22.07.05 14:44) [4]
Просто я так понял, что у автора демо версия, т.е. в свободном полёте. А там неизвестно, кому попадётся.
И защитить её по уму не удастся...
И поэтому наиболее перспективно делать проверки в приложении, ведь в конце-концов защищаем приложение, а не БД.
Digitman (2005-07-22 14:44:00) [17]
> Johnmen © (22.07.05 14:39) [3]
понимаю)
но вряд ли очумелые ручки имеются везде и повсюду)
да и им, очумелым ручкам, таки придется повозиться, если автор не будет раздавать доступ к администрированию своей базы кому попало
Johnmen (2005-07-22 14:39:00) [18]>Digitman © (22.07.05 14:37) [1]
Ну могут же оч.умелыми ручками грохнуть триггер...
:)
Johnmen (2005-07-22 14:38:00) [19]Нет.
Но если делать ограничение именно на уровне приложения, и только его, то всё просто, контролируй количество сам.
Digitman (2005-07-22 14:37:00) [20]в before insert триггере для этой таблицы :
declare cnt as BigInt;
select count(..) from ЭтаТаблица into :cnt;
if (not cnt is null) then
if (cnt = MaxRecords) then
exception "Облом !";