Bug 14515

Summary: Lazarus не содержит встроенный менеджер баз данных
Product: Sisyphus Reporter: Andrey Cherepanov <cas>
Component: lazarusAssignee: ruslandh <ruslandh>
Status: RESOLVED LATER QA Contact: Mikhail Gusarov <dottedmag>
Severity: normal    
Priority: P2 CC: cas
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 15075    

Description Andrey Cherepanov 2008-02-18 19:07:41 MSK
Lazarus не содержит встроенный менеджер баз данных для администрирования и 
разработки баз данных, включая выполнение SQL-запросов
Comment 1 ruslandh 2008-03-19 19:10:44 MSK
Проверю :)
Comment 2 ashen 2008-04-01 18:25:38 MSD
Компоненты для работы с БД есть в лазаре, а вот менеджера БД я не видел. Ткни 
пальцем в него, может я не туда все эти годы смотрел?
Comment 3 Andrey Cherepanov 2008-04-01 19:35:58 MSD
Это требование конкурсной документации. Компоненты Lazarus позволяют выбрать 
БД и таблицу из списка (то есть существуют ли средства получения данных и их 
изменения на существующей БД)?
Comment 4 ashen 2008-04-03 13:30:35 MSD
Да существуют компоненты для работы с БД:
http://wiki.lazarus.freepascal.org/Lazarus_DB_Faq
Вопрос в другом: как эти компоненты сделать предустановленными в пакете. В
данный момент над этим работаю.
На счёт менеджера БД это отдельная тема и к lazarus отсносится поскольку,
постольку. В Delphi для этого существует DBEAdministrator и DBDesktop, которые
являются самостоятельными продуктами. Да они поставлялись в составе Delphi, но
так же они шли и отдельно.  
Я смотрел на DBDesigner - это было бы не плохим дополнением к fpc/lazarus, но он
написан на Delphi/Kylix и перенести его на fpc/lazarus не так то просто.
Как я понял dottedmag@ имел ввиду систему, аналогичную
BDEAdministrator/DBDesktop или подобную DBDesigner. В данном случае надо
смотреть, что есть для такого у нас, не зависимо от fpc/lazarus и что есть в
инете под GPL.
Comment 5 Andrey Cherepanov 2008-04-03 15:00:31 MSD
Фишка в том, что для соответствия конкурсной документации по НП-18 (Школьный 
Линукс) для ПО для объектно-ориентированного программирования на языке Pascal:
"Средство разработки должно обеспечивать возможность соединения и работы с 
реляционными базами данных. Должно включать в себя встроенный менеджер баз 
данных для администрирования и разработки баз данных, включая выполнение 
SQL-запросов."

Собственно мы предложили Lazarus, но возникла проблема с указанной 
функциональностью. Другой софт не подходит, нужен менеджер в рамках Lazarus. 
Может, написать расширение для выполнения SQL-запросов?
Comment 6 ashen 2008-04-07 10:22:39 MSD
Пакет компонентов SQLDBLaz. 
http://wiki.lazarus.freepascal.org/Lazarus_Database_Tutorial
Подерживаются: mysql,postgresql, sqlite, MSSQL, Interbase/Firebird.
Та же есть компоненты для соединения с Oracle и БД через ODBC.Есть компоненты 
для выполнения SQL-запросов и SQL-транзакций.

А теперь объясните, что имеется ввиду под:
"Должно включать в себя встроенный менеджер баз 
данных для администрирования и разработки баз данных, включая выполнение 
SQL-запросов." ?
В Delphi это делается с помощью: BDEAdministartor - управление БД - создание, 
удаление,параметры соеденения. DBDesktop - непосредственно работа по созданию 
таблиц БД, изменения структуры таблиц БД, индексов. Редактирование содержимого 
таблицы БД. То же самое можно делать и из программного кода.
В каком виде должен быть этот "встроенный менеджер БД"?
Comment 7 ashen 2008-04-07 13:43:09 MSD
Смотрю сейчас на http://sourceforge.net/projects/dbdesigner-fork
вроде подходит к нам, но надо делать в таком случае порт с delphi/kylix. 
Попробую сделать. Но сроки хоть какого то результата да же не скажу.
Comment 8 Andrey Cherepanov 2008-04-07 20:44:08 MSD
(In reply to comment #7)
> Смотрю сейчас на http://sourceforge.net/projects/dbdesigner-fork
> вроде подходит к нам, но надо делать в таком случае порт с delphi/kylix. 
> Попробую сделать. Но сроки хоть какого то результата да же не скажу.
Смотрите по трудозатратам. Может, лучше сделать пример, указанный на 
http://wiki.lazarus.freepascal.org/MySQLDatabases в виде шаблона проекта.
Чтобы его можно было увидеть в 
Файл - Создать... - Project - Database Manager
Это самый быстрый по доступу вариант. Есть вариант с созданием dbmanager.lpi, 
но его надо найти, чтобы открыть. Что думаете?
Comment 9 ashen 2008-04-08 10:25:39 MSD
>Смотрите по трудозатратам. 
Слишком много kylix-специфичного

>Может, лучше сделать пример, указанный на 
>http://wiki.lazarus.freepascal.org/MySQLDatabases в виде шаблона проекта.
>Чтобы его можно было увидеть в 
>Файл - Создать... - Project - Database Manager
>Это самый быстрый по доступу вариант. Есть вариант с созданием dbmanager.lpi, 
>но его надо найти, чтобы открыть. Что думаете?

Думаю проще писать с нуля. Начать с подобия SQLExplorer'а из Delphi для MySQL'а.
Ну а дальше развивать, если будет интересен кому-либо.

Здесь три вещи:
1) компоненты, типы данных и подпрограммы для работы с БД: имеется в fpc/lazarus;
2) система визуального построения БД: openoffice.base, kexi;
3) система администрирования БД: pgadmin, phpMySQL и т.п.

Надо определится, что мы хотим. Встроенный в lazarus менеджер БД ни о чём не
говорит. Надо чёткая и ясная конкретика: по возможностям, функционалу, типам
поддерживаемых БД.
Comment 10 Andrey Cherepanov 2008-04-08 15:31:09 MSD
(In reply to comment #9)
> Надо определится, что мы хотим. Встроенный в lazarus менеджер БД ни о чём не
> говорит. Надо чёткая и ясная конкретика: по возможностям, функционалу, типам
> поддерживаемых БД.
Нам нужен примитивный, но работающий менеджер баз данных в Lazarus. Именно в 
Lazarus. Это должен быть проект, прописываемый в шаблоны проектов.
Состоит из одной формы.
Менеджер баз данных PostgreSQL для Lazarus
Сервер [localhost] Имя пользователя [root  ] Пароль [     ]
Запрос:
__________________ <Выполнить>
__________________
Результат:
__________________
__________________
__________________

Поддерживаемая БД:  posgresql. Форма должна возвращать результаты выполнения 
SQL-запросов на указанный сервер.
Comment 11 ashen 2008-04-09 18:32:03 MSD
Черновой набросок отправил на cas@. Проверил на своём MySQL5 - работает.
Comment 12 Andrey Cherepanov 2008-04-10 17:10:33 MSD
Перевешиваю на конкретный пакет
Comment 13 ashen 2008-04-10 17:14:09 MSD
На какой?
Comment 14 ashen 2008-04-11 15:56:59 MSD
Что то я это дело проглядел :(
В общем ответ на этот баг есть в лазаре и у нас он имеется:
[root@oasu3 /]# rpm -ql lazarus-tools | grep 'lazdatadesktop.lpr'
Comment 15 ashen 2008-04-11 15:59:46 MSD
[root@oasu3 /]# rpm -ql lazarus-tools | grep 'lazdatadesktop.lpr'
/usr/lib/lazarus/tools/lazdatadesktop/lazdatadesktop.lpr
[root@oasu3 /]#
Comment 16 Andrey Cherepanov 2008-04-11 18:28:39 MSD
Не нашёл, как задействовать его из интерфейса.
Comment 17 ashen 2008-04-11 18:47:53 MSD
Через инструменты. Но это должен быть исполняемый файл. В следующей сборке
задействую его компиляцию и изменю описание пакеты lazarus-tools на расширенное
и понятное.
Надо ещё там посмотреть как прикрутить работу с mysql4.1, mysql5.