Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.15;
Скачать: CL | DM;

Вниз

Переделка проекта с Paradox в Interbase/Firebird   Найти похожие ветки 

 
nemirof ©   (2008-07-07 15:09) [0]

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

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

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

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


 
DrPass ©   (2008-07-07 15:21) [1]

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


 
PEAKTOP ©   (2008-07-07 16:37) [2]

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

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


 
nemirof ©   (2008-07-07 20:49) [3]

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


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


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


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


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


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

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

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


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


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

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


 
Sergey13 ©   (2008-07-08 10:37) [6]

> [5] BUM   (08.07.08 10:31)

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


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


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

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


 
Sergey13 ©   (2008-07-08 10:53) [8]

> [7] BUM   (08.07.08 10:45)

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


 
Anatoly Podgoretsky ©   (2008-07-08 11:20) [9]

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

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

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


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


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

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

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

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

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


 
nemirof ©   (2008-07-09 01:06) [11]


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

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


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


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

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


 
Loginov Dmitry ©   (2008-07-09 07:50) [13]

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


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


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


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


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


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

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

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


 
Loginov Dmitry ©   (2008-07-09 10:09) [15]


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


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


 
Anatoly Podgoretsky ©   (2008-07-09 10:11) [16]

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

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


 
Anatoly Podgoretsky ©   (2008-07-09 10:12) [17]

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

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


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


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

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


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

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

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

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


 
MsGuns ©   (2008-07-09 12:27) [20]

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


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

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

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


 
ANB   (2008-07-09 13:59) [22]


> Anatoly Podgoretsky ©   (09.07.08 10:12) [17]

логический тип не ест ни оракл ни фб (они сильно, кстати, похожи). А в парадоксе он есть.


 
nemirof ©   (2008-07-09 14:36) [23]

Для того, чтобы поломать парадокс сосвем ненужно быть специалистом
Есть популярная сборка Total Commander  в которой среди прочих плагинов имеется встренный прсмотрщик/редактор таблиц BDE и таблица открывается клавишей F3. А если она запаролирована, то  обычный юзер откроет ее за 15 минут, если будет мыслить в правильном направлении.    

У меня в базе нет логического типа данных, но если бы был, то это небыло бы большой проблемой  для меня. Перевел бы поле в Integer, прошелся поиском по проекту и подправил соответсвующие куски кода. Для форм есть компонетны, которые умеют отображать целые значения (0,1) в виде флажков. Всего работы максимум на полдня.


 
MsGuns ©   (2008-07-09 20:23) [24]

>nemirof ©   (09.07.08 14:36) [23]
>Для того, чтобы поломать парадокс сосвем ненужно быть специалистом
>Есть популярная сборка Total Commander  в которой среди прочих плагинов >имеется встренный прсмотрщик/редактор таблиц BDE и таблица >открывается клавишей F3. А если она запаролирована, то  обычный юзер >откроет ее за 15 минут, если будет мыслить в правильном направлении

Да-да, и уборщица тетя Маша, и грузчик Семеныч, и секретарша Клавочка, не говоря уже о девочках из бухгалтерии, конечно, же, в курсе "сборки" Total commander и "рулят" плагинами и даже знают все клавиши


 
Loginov Dmitry ©   (2008-07-09 23:59) [25]

> Что касается самого парадокса, то сказки про его несостоятельность
> как многопользовательской СУБД


Ну... если использовать трехзвенку с TRemoteDataModule, то в многопользовательском режиме можно работать с чем угодно, в том числе - с парадоксом, а с ciMultiInstance + tmApartment не страшно любое количество подключенных клиентов ))


 
MsGuns ©   (2008-07-10 00:39) [26]

>Sergey13 ©   (09.07.08 13:53) [21]
>Т.е. переделывать на КС вообще не стОит?

СтОит, ИМХО, если соблюдается хотя бы одно из условий:
- Вся система требует существенного развития в плане функциональности,
- Требуется достаточно крупное масштабирование
- Резко повысились требования по скорости и надежности

Если же старая система нормально работает и удовлетворяет пользователей, на кой бес ее переделывать ?

>Loginov Dmitry ©   (09.07.08 23:59) [25]

Я уже устал здесь повторять - парадокс нормально работает в системе до 20-25 пользователей одновременно. ПРИ ЭТОМ ВСЕ ОНИ МОГУТ ПИСАТЬ.
Дело в руках, головах и некоторых специальных заклинаниях ;))


 
Loginov Dmitry ©   (2008-07-10 07:59) [27]

> Я уже устал здесь повторять - парадокс нормально работает
> в системе до 20-25 пользователей одновременно. ПРИ ЭТОМ
> ВСЕ ОНИ МОГУТ ПИСАТЬ.


Это в общем-то не отрицается. Раз Вы привели такие цифры, то вероятно сталкивались с такими случаями вплотную, и настройки все выставили соответсвующие. Более интересен вопрос надежности: надежна ли такая система? сможет ли она неделями/месяцами/годами работать без участия каких либо средств по восстановлению/ремонту базы данных?

Насчет необходимости переделки на КС - я тоже не большой сторонник этого. В FB запросто можно столкнуться с проблемами, которые никогда не возникали при работе с BDE. Имхо одна из основных - когда система устанавливается на машину, где уже установлен FB другой версии - придется ставить вторую версию параллельно, а это уже серьезное изучение документации.


 
MsGuns ©   (2008-07-10 10:11) [28]

>Loginov Dmitry ©   (10.07.08 07:59) [27]
>Более интересен вопрос надежности: надежна ли такая система?
>сможет ли она неделями/месяцами/годами работать без участия каких либо средств по >восстановлению/ремонту базы данных?

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


 
Anatoly Podgoretsky ©   (2008-07-10 10:25) [29]

> MsGuns  (10.07.2008 10:11:28)  [28]

Это срабатывает, если удастся открыть таблицу, Да и то не гарантируется.
dbiRegisterCallback используешь конечно?


 
MsGuns ©   (2008-07-10 11:49) [30]

нет


 
Anatoly Podgoretsky ©   (2008-07-10 12:34) [31]

> MsGuns  (10.07.2008 11:49:30)  [30]

Зря


 
MsGuns ©   (2008-07-10 14:10) [32]

Она там и нафиг не нужна


 
Поросенок Винни-Пух ©   (2008-07-10 14:33) [33]

Конечно, по надежности парадокс далеко не чемпион

Никто в этом не чемпион. Девятку оракла можно было уронить одному единственному юзеру. Причем навсегда и особо не извращаясь. Только документированными способами.


 
Anatoly Podgoretsky ©   (2008-07-10 20:06) [34]

> MsGuns  (10.07.2008 14:10:32)  [32]

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


 
MsGuns ©   (2008-07-10 21:35) [35]

>Anatoly Podgoretsky ©   (10.07.08 20:06) [34]

Анатолий, моя система не пытается ни обнаружить какие-то проблемы, ни тем более их исправить. Просто корректное восстановление из корректного последнего архива. И все !


 
Anatoly Podgoretsky ©   (2008-07-10 21:51) [36]

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


 
Prohodil Mimo ©   (2008-07-11 17:25) [37]

Loginov Dmitry ©   (09.07.08 7:50) [13]
Зато в нем можно защитить таблицу с помощью пароля. И попробуй открой! :)


удаляем файлы *.VAL и открываем.


 
Директор ВЭБ ©   (2008-07-20 10:36) [38]

Ребята, я тоже написаль большую базу CRM с многопользовательским доступам около 15 человек одновременно. сперва для себя на ПАРАДОКСЕ. так вот другу одному из вице през. небольшой компании понравилась моя база хочет у сябя на фирме установить, тоже нужно организовать доступ к базе сразу нескольких отделов. Возможно ли это не переводя Парадокс в Interbase или Firebird или в другие? скачал Firebird и IBExpert теперь незнаю что делать с ними. я вообще не знаю для чего они нужны. может кто книшки даст почетать про Firebird и IBExpert? помогите что мне делать? с чего начть кинте ссылки


 
Anatoly Podgoretsky ©   (2008-07-20 11:42) [39]

> Директор ВЭБ  (20.07.2008 10:36:38)  [38]

Возможно - 200 000


 
Игорь Шевченко ©   (2008-07-21 21:39) [40]


> Возможно - 200 000


Евро. Каждому.



Страницы: 1 2 вся ветка

Текущий архив: 2009.03.15;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.022 c
15-1231788345
Прайм
2009-01-12 22:25
2009.03.15
В каком юните находится функция Arc?


2-1232578097
аврам
2009-01-22 01:48
2009.03.15
stream and stringlist


2-1232636844
Evgengold
2009-01-22 18:07
2009.03.15
QueryPerformanceFrequency задать временной интервал


2-1232796577
Арт
2009-01-24 14:29
2009.03.15
Как разместить ссылку в форме?


15-1231989207
Slider007
2009-01-15 06:13
2009.03.15
С днем рождения ! 15 января 2009 четверг