Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];

Вниз

Переделка проекта с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.56 MB
Время: 0.045 c
4-1206607413
kolj
2008-03-27 11:43
2009.03.15
Tapi -> LineGetId


11-1197997772
=BuckLr=
2007-12-18 20:09
2009.03.15
Компонент для вывода графиков


15-1231600877
Alkid
2009-01-10 18:21
2009.03.15
Про электрику вопрос


15-1231283649
Alkid
2009-01-07 02:14
2009.03.15
Из системы "пропал" DVD-RW


4-1206449330
Thrasher
2008-03-25 15:48
2009.03.15
Печать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский