DBDesigner & Lazarus

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

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

Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

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

Сообщение Brainenjii »

а почему нельзя сделать класс-обёртку, который будет вызывать специфические компоненты...
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

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

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

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

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

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

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

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

Сообщение Padre_Mortius »

А для добавления нового типа сервера нужно будет менеджер компилиривать?
Можно попробовать сделать их подгружаемыми плагинами (как это сделано например в ТС или Far)
Последний раз редактировалось Padre_Mortius 11.04.2008 21:54:21, всего редактировалось 1 раз.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

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


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

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

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

Сообщение Padre_Mortius »

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


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

Сообщение Attid »

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


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

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

Сообщение Padre_Mortius »

Ну и как быть если у меня например живут FireBird, Oracle и MySQL одновременно? Ставить три проги сразу? И постоянно путаться в какой из них я в данный момент нахожусь )
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

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

Сообщение Attid »

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


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

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

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

Сообщение AShen »

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)->
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

А если я не люблю использовать универсальные компоненты доступа? (функционала у них мало)
Аватара пользователя
AShen
постоялец
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Сообщение AShen »

Я всего лишь привёл пример. Мне такое нужно было лишь для того, что бы в мою процедуру передать объект с имеющий общие свойства с другими подобными классами, да бы там просто выставить что надо, а дальше у же работаю с учётом особенностей соответствующих СУБД.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

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

Так ведь универсальным будет только класс-предок, а класс-наследник будет иметь тот функционал, который специфичен для конкретной БД.
Или ты другое имел в виду?
Давайте тогда обсудим, чего остро не хватает TSQLConnection без привязки к конкретному серверу БД.
Аватара пользователя
AShen
постоялец
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Сообщение AShen »

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

О чём я и говорил и привёл пример, может быть и не лучший, но хорошо иллюстрирующий это.
Ответить