DBDesigner & Lazarus
Модератор: Модераторы
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
это конечно уже офтоп но
первое от второго отличается как небо и земля =)
хотя для галочки пойдет, только не стоит потом удивляться отзывам школьных учителей "поставили тут линукс, как учеников учить не понятно"
Фишка в том, что для соответствия конкурсной документации по НП-18 (Школьный
Линукс) для ПО для объектно-ориентированного программирования на языке Pascal:
"Средство разработки должно обеспечивать возможность соединения и работы с
реляционными базами данных. Должно включать в себя встроенный менеджер баз
данных для администрирования и разработки баз данных, включая выполнение
SQL-запросов."
Нам нужен примитивный, но работающий менеджер баз данных в Lazarus. Именно в
Lazarus. Это должен быть проект, прописываемый в шаблоны проектов.
Состоит из одной формы.
Менеджер баз данных PostgreSQL для Lazarus
Сервер [localhost] Имя пользователя [root ] Пароль [ ]
Запрос:
__________________ <Выполнить>
__________________
Результат:
__________________
__________________
__________________
Поддерживаемая БД: posgresql. Форма должна возвращать результаты выполнения
SQL-запросов на указанный сервер.
первое от второго отличается как небо и земля =)
хотя для галочки пойдет, только не стоит потом удивляться отзывам школьных учителей "поставили тут линукс, как учеников учить не понятно"
В том то и дело. Всё, что нужно для работы с БД есть в лазаре. Нету, или я не нашёл, утилит аналогичных DBEAdministrator, SQLExplorer, DBDesktop, DBDesigner. Я в там, в bugzilla, отписал, что это принципиально разные вещи, но в ТЗ всё свалили в одну кучу.
Для начала решил просто сделать что то вроде DBNavigator'а по образу и подобию http://wiki.lazarus.freepascal.org/MySQLDatabases
Но с возможностью работы с несколькими типами СУБД. В лазаре в принципе всё для этого есть. Но я давно не работал с InterBase/Firebird и не помню что там и как. Совсем не работаю с PostgreSQL (точнее у меня он используется как СУБД для 1С под линуксом), Oracle. По сему и не знаю аналогов запросов для MySQL:
show databases;
show tables;
show columns from <имя_таблицы>;
Кто знает, подскажите ...
Сам то разберусь, но это время.
Для начала решил просто сделать что то вроде DBNavigator'а по образу и подобию http://wiki.lazarus.freepascal.org/MySQLDatabases
Но с возможностью работы с несколькими типами СУБД. В лазаре в принципе всё для этого есть. Но я давно не работал с InterBase/Firebird и не помню что там и как. Совсем не работаю с PostgreSQL (точнее у меня он используется как СУБД для 1С под линуксом), Oracle. По сему и не знаю аналогов запросов для MySQL:
show databases;
show tables;
show columns from <имя_таблицы>;
Кто знает, подскажите ...
Сам то разберусь, но это время.
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
про птичку скажу , про слоника это деби1234 надо спросить
нету. у птички нельзя узнать какие есть базы на сервере, для секуретности типа.
show databases;
нету. у птички нельзя узнать какие есть базы на сервере, для секуретности типа.
show tables;
Код: Выделить всё
dsTables.SQLSelect.Text:=' select rdb$Relation_Name '+
' from rdb$relations '+
' where (rdb$system_flag <> 1 or Rdb$System_Flag is null) and Rdb$View_BLR is null '+
' and rdb$Relation_Name not in (''REPLIC'') '+
' order by rdb$relation_name ';
show columns from <имя_таблицы>;
Код: Выделить всё
dsf.SQLSelect.Text:=' Select R.Rdb$Field_Name, '#13+
' coalesce(r.rdb$null_flag,f.rdb$null_flag,0) null_flag, '#13+
' case F.Rdb$field_type '#13+
' when 12 then 1 /*date*/ '#13+
' when 13 then 1 /*time*/ '#13+
' when 14 then 1 /*char*/ '#13+
' when 35 then 1 /*timestamp*/ '#13+
' when 37 then 1 /*varchar*/ '#13+
' else 0 '#13+
' end as uq, '#13+
' F.Rdb$field_type '#13+
' from rdb$Relation_Fields R, RDB$FIELDS F '#13+
' where '#13+
' R.Rdb$Relation_Name = :NAME and '#13+
' F.rdb$field_name=R.Rdb$field_source and '#13+
' f.rdb$computed_blr is null '#13+
' order by R.rdb$field_position, R.rdb$field_name '#13;
Кстати, alexs в свое время начинал делать менеджер БД(Firebird) на Lazarus тут
Не плохо у него получилось, но это узкоспециализированный. А надо ещё и для MySQL/PostgreSQL.
И так же как и FenixSQL не развивается. Но как пример и на что равняться буду смотреть ...
Единственное, что плохо, а вот это надо у alexs нету ни слова про лицензию. А вот это важно. Должно быть GPL/GPL2/LGPL. "Школьный линукс" должен быть лицензионно чист.
И так же как и FenixSQL не развивается. Но как пример и на что равняться буду смотреть ...
Единственное, что плохо, а вот это надо у alexs нету ни слова про лицензию. А вот это важно. Должно быть GPL/GPL2/LGPL. "Школьный линукс" должен быть лицензионно чист.
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Сам менеджер под GPL
FBDataSet под LGPL
так устроит?
я кстати его на сайте давно не обновлял - а кое что подделал
могу перезалить.
Там по хорошему можно сделать подержку нескольких платформ серверов. Просто вынести привязанную к конретному серверу логику в отдельные модули и сделать слой совместимости.
Так что если есть желание - я исходникы выложу на sf или ещё куда либо.
P.S.
Если с DBDesigner дело выгорит - то я его тоже в свой менеджер хочу включить.
FBDataSet под LGPL
так устроит?
я кстати его на сайте давно не обновлял - а кое что подделал
могу перезалить.
Там по хорошему можно сделать подержку нескольких платформ серверов. Просто вынести привязанную к конретному серверу логику в отдельные модули и сделать слой совместимости.
Так что если есть желание - я исходникы выложу на sf или ещё куда либо.
P.S.
Если с DBDesigner дело выгорит - то я его тоже в свой менеджер хочу включить.
alexs писал(а):Сам менеджер под GPL
FBDataSet под LGPL
так устроит?
Нет. Должен быть файл license, где сказано под какой лицензией. Если сотавляющая А под лицензией Л1, а Б под лицензией Л2, то об этом должно быть указано.
я кстати его на сайте давно не обновлял - а кое что подделал
могу перезалить.
Если можешь, то сделай. И с обязательным указанием лицензии. То же самое с RxFPC. И не большая просьба: а можно документацию в UTF8? Можно и рядом с cp1251. И просьба ещё что бы в пакетах шли makefile.fpc. Просто так на много удобней для машинной сборки пакетов из командной строки. Так то я их и сам с помощью лазаря делаю, да в пакет укладываю.
Там по хорошему можно сделать подержку нескольких платформ серверов. Просто вынести привязанную к конретному серверу логику в отдельные модули и сделать слой совместимости.
Надо.
Так что если есть желание - я исходникы выложу на sf или ещё куда либо.
Выкладывай и ссылку укажи. Заранее благодарен.
P.S.
Если с DBDesigner дело выгорит - то я его тоже в свой менеджер хочу включить.
Начал делать порт: да посмотрел и решил, что лучше с нуля написать, через чур много kylix спецефично. C Padre_Mortius уже обсуждали эту тему. Сначала менеджер DB PostgreSQL/MySQL/IB/FB , а потом уже и сам дизайнер. Можно и отдельными прогами. Вот сейчас думаю отталкиваться от твоего FBManager.
http://alexs75.narod.ru/fpc/fbdataset/index.htm
http://www.progdigy.com/modules.php?name=UIB
Патч для UIB 2.0
Я, честно говоря, до сих пор использую именно UIB 2.
http://www.progdigy.com/modules.php?name=UIB
Патч для UIB 2.0
Я, честно говоря, до сих пор использую именно UIB 2.
- Сергей Смирнов
- энтузиаст
- Сообщения: 595
- Зарегистрирован: 28.04.2005 13:23:25
- Откуда: Москва
- Контактная информация:
Плиииз, не надо этот БД-Менеджер в лазаря втыкать - он и так уже несколько секунд грузится. Если нужна простая SQL-запускалка, её и надо сварганить. Кстати, сделать её разнобазовой не сложно, потому как родной SQLDB под это дело как раз и заточен. Засунуть потом можно будет куда-нибудь в меню "Инструменты".
