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

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

Переделка проекта с Paradox в Interbase/Firebird [D5, IB6.x, Paradox]


Страницы:   1 2 3

nemirof ©   (2008-07-07 15:09:00) 

Есть работающий уже 7 лет проект на Paradox (около 50 таблиц общий объем 100 МБ)
Его нужно перевести в Interbase или Firebird.
Я сделал DataPump базы данных и создал простое приложение для просмотра таблиц уже в IB. Но в старом проекте есть очень много процедур для обработки данных, с которымы возникают сложности.

Книжка пишет, что процедурs типа While not table eof do ... использовать неправильно, нужно пользоваться хранимыми процедурами и запросами. Тоже самое с обработчиками событий типа OnBeforeInsert, OnAfterPost и аналогичными, которые нужно переводить в тригеры.

Есть ли какие-нибудь примеры или методики как это лучше сделать? А то некоторые процедуры старого проекта состоят из нескольких десятков или сотен строк кода и я пока без понятия как их загнать на сервер.  

И будет ли очень плохо, если некоторые из процедур While not table eof do... оставить "как есть" ?


Sergey13   (2008-07-09 13:53:00) [21]

> [19] MsGuns ©   (09.07.08 12:23)
> Что касается самого парадокса, то сказки про его несостоятельность
> как многопользовательской СУБД, которые тут любит рассказывать
> компания во главе с Германом - это всего-навсего следствия
> их личного печального опыта, не более.

Т.е. переделывать на КС вообще не стОит?


MsGuns   (2008-07-09 12:27:00) [22]

По поводу несанкционированного доступа, Да, ломается. Точно также как ИБ, и МССКЛ и все другое. Но ломается СПЕЦИАЛИСТАМИ. У меня за надцать лет работы с БД не было НИ ЕДИНОГО СЛУЧАЯ когда базу хоть на парадоксе, хоть на клиппере пытался бы ломать спец, А юзер не то что поломать, он вообще в 99,99% случаев вообще не знает что такое БД, где она "живет" и как к ней подойти.


MsGuns   (2008-07-09 12:23:00) [23]

>Loginov Dmitry ©   (07.07.08 22:38) [4]

Поддерживаю практически без ремарок. Но с одним дополнением.
Если перевод один-в-один не получается (например из-за несоответствия типов данных), то
можно пойти на таку хитрость (правда для TTable это не прокатит) - таблицы в ИБ назвать иначе, чем в парадоксе, а именами пападоксовксих таблиц назвать процедуры или вьюхи, в которых представлять данные "как в парадоксе". Это если максимально выносить логику на сторону сервера

Что касается самого парадокса, то сказки про его несостоятельность как многопользовательской СУБД, которые тут любит рассказывать компания во главе с Германом - это всего-навсего следствия их личного печального опыта, не более.


Правильный^Вася   (2008-07-09 11:10:00) [24]


> На нескольких десятках пользователей ему поплохеет.

поставить субд на колени можно и одним юзером
все зависит от того, какие запросы, как часто
ну и от эффективности проектирования БД
и в последнюю очередь от железяки версера и сети


Anatoly Podgoretsky   (2008-07-09 10:12:00) [25]

> ANB  (09.07.2008 10:06:14)  [14]

В Парадокс настолько мало типов, что он похож на любую базу.


Anatoly Podgoretsky   (2008-07-09 10:11:00) [26]

> Loginov Dmitry  (09.07.2008 7:50:13)  [13]

Неужели ты веришь в сказки для ламеров, да даже и ламеры Элементарно открывают.


Loginov Dmitry   (2008-07-09 10:09:00) [27]


> На нескольких десятках пользователей ему поплохеет.


Да ну? С чего бы?


ANB   (2008-07-09 10:06:00) [28]


> В таком случае без раздумий - Firebird!

На нескольких десятках пользователей ему поплохеет.

Я бы посоветовал оракл, но чтобы переделывать поменьше и поэтапно, не теряя работоспособности, лучше взять мс скл. Он наиболее похож по типам данных на парадокс.


Loginov Dmitry   (2008-07-09 07:50:00) [29]

> Более того, он и как локальная база не имеет защиту от "несанкционированн
> ого просмотра и изменения".


Зато в нем можно защитить таблицу с помощью пароля. И попробуй открой! :)


> Парадокс как сетевая база - это нонсекс!


Типа это круто? :)


Германн   (2008-07-09 03:31:00) [30]


> nemirof ©   (09.07.08 01:06) [11]
>
>
> > Petr V. Abramov ©   (09.07.08 00:40) [10]
>
> Интересно, как уважаемые знатоки посоветуют защитить сетевую
> базу на парадоксе от несанкционированного просмотра и изменения?
>
>

Дык никак.
Парадокс на это не расчитан.
Более того, он и как локальная база не имеет защиту от "несанкционированного просмотра и изменения".
Да и вообще. Парадокс как сетевая база - это нонсекс!
:) Очепятка моя.


nemirof   (2008-07-09 01:06:00) [31]


> Petr V. Abramov ©   (09.07.08 00:40) [10]

Интересно, как уважаемые знатоки посоветуют защитить сетевую базу на парадоксе от несанкционированного просмотра и изменения?


Petr V. Abramov   (2008-07-09 00:40:00) [32]


> PEAKTOP ©   (07.07.08 16:37) [2]
> Не три, не чеши - само пройдет.

в общем случае не пройдет, но учитывая

>  (около 50 таблиц общий объем 100 МБ)

при примероно постоянном кол-ве юзеров точно чесаться само перестанет.

Но: возможно, за почесать человеку неплохие для него деньги обещают :)


Anatoly Podgoretsky   (2008-07-08 11:20:00) [33]

> BUM  (08.07.2008 10:31:05)  [5]

> А как другие выходят из такой ситуации?

Выбором соответствующей СУБД до использования, а не после.


Sergey13   (2008-07-08 10:53:00) [34]

> [7] BUM   (08.07.08 10:45)

Никто и не гарантировал полной совместимости между разными СУБД.


BUM   (2008-07-08 10:45:00) [35]


> 0/1 не подойдет?

Т. е. запрос вида (которых в проге немерено) Select * From .. Where FL = True прокатит при значениях 0, 1? Чтото сомнительно


Sergey13   (2008-07-08 10:37:00) [36]

> [5] BUM   (08.07.08 10:31)

0/1 не подойдет?


BUM   (2008-07-08 10:31:00) [37]


> В таком случае без раздумий - Firebird!

Без раздумий не получится. Хотел перейти с PARADOX на FireBird и нарвался на такую хрень как отсутствие логического типа поля. Может я чтото не понимаю конечно.. А как другие выходят из такой ситуации?


Loginov Dmitry   (2008-07-07 22:38:00) [38]


> Его нужно перевести в Interbase или Firebird.


В таком случае без раздумий - Firebird!


> Есть ли какие-нибудь примеры или методики как это лучше
> сделать? А то некоторые процедуры старого проекта состоят
> из нескольких десятков или сотен строк кода и я пока без
> понятия как их загнать на сервер.  


Пойти можно двумя путями:

1. Оставить все как есть (все while not и прочее), добиться того, чтобы все работало хотябы как раньше (производительность может в некоторых случаях ухудшиться, главное - не нарушить логику). Затем выявить те места, для которых необходима оптимизация, и их уже прорабатывать (хранимыми процедурами, более мощными и быстрыми запросами и прочими возможностями, предоставляемыми сервером СУБД)

2. Переписать все заново. Вероятно, это займет гораздо больше времени, чем 1, зато освежит память по всему проекту в целом :)


nemirof   (2008-07-07 20:49:00) [39]

Переход на клиент-сервер нужен, поскольку раньше база использовалась только в одном кабинете на 3-х компах, а в будущем планируется организовать доступ к базе сразу нескольких отделов. В этом случае возникает проблема защиты базы от несанкционированного просмотра или изменения. А  количество одновременно работающих пользователей будет 7-10 с перспективой увеличения.


PEAKTOP   (2008-07-07 16:37:00) [40]

> Есть работающий уже 7 лет проект на Paradox

Не три, не чеши - само пройдет.


Страницы:   1 2 3

Наверх

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