DBDesigner & Lazarus
Модератор: Модераторы
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Выложил исходники своего FBManager-а на Шаманграде - http://shamangrad.net/project.php?act=view&prj=FBManager
Желающие поучаствовать - присоединяйтесь.
Padre_Mortius
Пока нет аналога в fpc bpl - очень проблемно реализовать.
Я тоже к этому скланаюсь.
Реализовать абстрактный класс - который будет предостовлять функционал по работе с БД (получить метаданные, выполнить запросы и т.д.) - а потом уже сделать колекцию наследников, которые будут работать через уже необходимый/понравившийся движок с любимым вами SQL.
Это также позволит реализовать настраиваемую сборку - т.е. не предпологается использовать какието сервера - ну и не включаем в исходник требуемый класс.
Желающие поучаствовать - присоединяйтесь.
Padre_Mortius
Padre_Mortius писал(а):Оптимальным вариантом будут подгружаемые модули
Пока нет аналога в fpc bpl - очень проблемно реализовать.
Brainenjii писал(а):а почему нельзя сделать класс-обёртку, который будет вызывать специфические компоненты...
Я тоже к этому скланаюсь.
Реализовать абстрактный класс - который будет предостовлять функционал по работе с БД (получить метаданные, выполнить запросы и т.д.) - а потом уже сделать колекцию наследников, которые будут работать через уже необходимый/понравившийся движок с любимым вами SQL.
Это также позволит реализовать настраиваемую сборку - т.е. не предпологается использовать какието сервера - ну и не включаем в исходник требуемый класс.
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
А для добавления нового типа сервера нужно будет менеджер компилиривать?
Можно попробовать сделать их подгружаемыми плагинами (как это сделано например в ТС или Far)
Можно попробовать сделать их подгружаемыми плагинами (как это сделано например в ТС или 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
- Контактная информация:
alexs писал(а):Выложил исходники своего FBManager-а
нет ридми какие пакеты и откуда ставить
так же думаю там надо часть файлов почистить, например какталог libs для меня загадка так как его внутрености есть и выше.
alexs писал(а):Желающие поучаствовать - присоединяйтесь.
только если не будешь гнать коней не svn версиях
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
alexs писал(а):Моё мнение - не надо делать одну универсальную программу. Лучше сделать несколько прогриамм, основанных на одной кодовой базе и имеющих похожий функционал - но заточенных каждая под свой сервер.
Примерно так же как постороена LCL от лазаря - прослойка под каждый из серверов своя.
пример EMS SQL Management Studio у них проги под разные БД разные , но все как две капли похожи =)
а уже внутри каждой проги выбор по версии бд как у эксперта.
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
Padre_Mortius писал(а):Ну и как быть если у меня например живут FireBird, Oracle и MySQL одновременно? Ставить три проги сразу? И постоянно путаться в какой из них я в данный момент нахожусь )
1, одновременно работать в нескольких невозможно.
2, даже если они будут в обной проге у каждой бд свой синтаксис создания того же тригера, значит окошки редактора будут выглядеть по разному, значит путаницы больше.
3, еще минус одиночной проги это ее размер так как на каждую бд своя форма создания\редактирования всех сущностей ! их будет крайне трудно обьединить в единое целое.
минимальный пример инкрементальное поле в мускуле и генератор в firebird.
длл тут не подойдет так как очень много всего внутри держать нужно будет и это будет великим тормазом.
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
Так ведь универсальным будет только класс-предок, а класс-наследник будет иметь тот функционал, который специфичен для конкретной БД.
Или ты другое имел в виду?
Давайте тогда обсудим, чего остро не хватает TSQLConnection без привязки к конкретному серверу БД.
А если я не люблю использовать универсальные компоненты доступа? (функционала у них мало)
Так ведь универсальным будет только класс-предок, а класс-наследник будет иметь тот функционал, который специфичен для конкретной БД.
Или ты другое имел в виду?
Давайте тогда обсудим, чего остро не хватает TSQLConnection без привязки к конкретному серверу БД.
