DBDesigner & Lazarus

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Сообщение Padre_Mortius » 11.04.2008 19:33:46

Оптимальным вариантом будут подгружаемые модули. Но вот с реализацией возникает куча вопросов
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Brainenjii » 11.04.2008 19:38:21

а почему нельзя сделать класс-обёртку, который будет вызывать специфические компоненты...
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение alexs » 11.04.2008 20:31:40

Выложил исходники своего FBManager-а на Шаманграде - http://shamangrad.net/project.php?act=view&prj=FBManager
Желающие поучаствовать - присоединяйтесь.

Padre_Mortius
Padre_Mortius писал(а):Оптимальным вариантом будут подгружаемые модули

Пока нет аналога в fpc bpl - очень проблемно реализовать.

Brainenjii писал(а):а почему нельзя сделать класс-обёртку, который будет вызывать специфические компоненты...

Я тоже к этому скланаюсь.

Реализовать абстрактный класс - который будет предостовлять функционал по работе с БД (получить метаданные, выполнить запросы и т.д.) - а потом уже сделать колекцию наследников, которые будут работать через уже необходимый/понравившийся движок с любимым вами SQL.

Это также позволит реализовать настраиваемую сборку - т.е. не предпологается использовать какието сервера - ну и не включаем в исходник требуемый класс.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Padre_Mortius » 11.04.2008 20:49:45

А для добавления нового типа сервера нужно будет менеджер компилиривать?
Можно попробовать сделать их подгружаемыми плагинами (как это сделано например в ТС или Far)
Последний раз редактировалось Padre_Mortius 11.04.2008 21:54:21, всего редактировалось 1 раз.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Attid » 11.04.2008 20:49:51

alexs писал(а):Выложил исходники своего FBManager-а


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

alexs писал(а):Желающие поучаствовать - присоединяйтесь.

только если не будешь гнать коней не svn версиях
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Padre_Mortius » 11.04.2008 20:54:35

если на много БД то прийдется переименовываться =)


А кто мешает в качестве имени плагина использовать не только имя, но версию сервера
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Attid » 11.04.2008 20:57:15

alexs писал(а):Моё мнение - не надо делать одну универсальную программу. Лучше сделать несколько прогриамм, основанных на одной кодовой базе и имеющих похожий функционал - но заточенных каждая под свой сервер.
Примерно так же как постороена LCL от лазаря - прослойка под каждый из серверов своя.


пример EMS SQL Management Studio у них проги под разные БД разные , но все как две капли похожи =)

а уже внутри каждой проги выбор по версии бд как у эксперта.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Padre_Mortius » 11.04.2008 21:05:38

Ну и как быть если у меня например живут FireBird, Oracle и MySQL одновременно? Ставить три проги сразу? И постоянно путаться в какой из них я в данный момент нахожусь )
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение alexs » 11.04.2008 21:28:41

Ну это так - пока проба сил.
Если пойдёт - переименуем.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Attid » 12.04.2008 12:11:37

Padre_Mortius писал(а):Ну и как быть если у меня например живут FireBird, Oracle и MySQL одновременно? Ставить три проги сразу? И постоянно путаться в какой из них я в данный момент нахожусь )


1, одновременно работать в нескольких невозможно.
2, даже если они будут в обной проге у каждой бд свой синтаксис создания того же тригера, значит окошки редактора будут выглядеть по разному, значит путаницы больше.
3, еще минус одиночной проги это ее размер так как на каждую бд своя форма создания\редактирования всех сущностей ! их будет крайне трудно обьединить в единое целое.

минимальный пример инкрементальное поле в мускуле и генератор в firebird.

длл тут не подойдет так как очень много всего внутри держать нужно будет и это будет великим тормазом.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение AShen » 14.04.2008 13:46:20

Brainenjii писал(а):а почему нельзя сделать класс-обёртку, который будет вызывать специфические компоненты...

Зачем создавать? Есть же TSQLConnection предок всех остальных SQLConnection. Ну и в зависимости от используемых типов БД можно использовать наподобие такого:

-(ashen@oasu3)-(~/work/pascal/DBNavigator)-> cat mainformunit.pas | grep 'PreSet' | grep '='
IBConnection:=TIBConnection(PreSetConnection(IBConnection));
MySQL40Connection:=TMySQL40Connection(PreSetConnection(MySQL40Connection));
MySQL41Connection:=TMySQL41Connection(PreSetConnection(MySQL41Connection));
MySQL50Connection:=TMySQL50Connection(PreSetConnection(MySQL50Connection));
OracleConnection:=TOracleConnection(PreSetConnection(OracleConnection));
PQConnection:=TPQConnection(PreSetConnection(PQConnection));
-(ashen@oasu3)-(~/work/pascal/DBNavigator)->
Аватара пользователя
AShen
постоялец
 
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Сообщение alexs » 14.04.2008 16:15:53

А если я не люблю использовать универсальные компоненты доступа? (функционала у них мало)
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение AShen » 14.04.2008 16:49:41

Я всего лишь привёл пример. Мне такое нужно было лишь для того, что бы в мою процедуру передать объект с имеющий общие свойства с другими подобными классами, да бы там просто выставить что надо, а дальше у же работаю с учётом особенностей соответствующих СУБД.
Аватара пользователя
AShen
постоялец
 
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Сообщение Vadim » 15.04.2008 05:25:40

alexs
А если я не люблю использовать универсальные компоненты доступа? (функционала у них мало)

Так ведь универсальным будет только класс-предок, а класс-наследник будет иметь тот функционал, который специфичен для конкретной БД.
Или ты другое имел в виду?
Давайте тогда обсудим, чего остро не хватает TSQLConnection без привязки к конкретному серверу БД.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение AShen » 15.04.2008 09:05:03

Vadim писал(а):Так ведь универсальным будет только класс-предок, а класс-наследник будет иметь тот функционал, который специфичен для конкретной БД.

О чём я и говорил и привёл пример, может быть и не лучший, но хорошо иллюстрирующий это.
Аватара пользователя
AShen
постоялец
 
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 6

Рейтинг@Mail.ru