Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ограничение записей в базе 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 "Облом !";


Наверх

Титульная страница Поиск, карта сайта Написать письмо