Создание приложения для БД в Lasarus

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

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

Создание приложения для БД в Lasarus

Сообщение Olga » 14.11.2010 22:24:08

Здравствуйте! Мне необходимо написать приложение в Lazarus для БД, написанной в OpenOffice Base. Подскажите какие компоненты использовать для связи с БД? И какие свойства в них менять?
Заранее спасибо!
Olga
незнакомец
 
Сообщения: 3
Зарегистрирован: 14.11.2010 22:07:53

Re: Создание приложения для БД в Lasarus

Сообщение Odyssey » 15.11.2010 01:34:27

Насколько я знаю, готовых компонентов для доступа к БД OO Base нет. Могу предложить выгрузить базу из Base во что-нибудь более вменяемое -- например SQLite или хотя бы DBF (это если из локальных), и писать приложение для работы с базой уже в новом формате. Единственный способ экспорта, который удалось сходу нагуглить -- это Base в CSV через SQL-запрос. Ну а уж из CSV дальше -- дело техники, и зависит от сложности данных.

Кстати, не спешите менять инструмент (FPC и Lazarus). Судя по этому посту OO Base вообще не очень дружелюбный формат для доступа извне. Проще поменять именно движок БД. Можно написать приложение для работы с удобной вам СУБД, и сделать в нём импорт из CSV, через который загрузить данные, полученные из OO Base.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Создание приложения для БД в Lasarus

Сообщение Olga » 16.11.2010 23:28:06

Спасибо большое. Вы - мой спаситель! Я уже и не надеялась, что кто-то поможет.Я создала файл .CSV. Но у меня возник ряд вопросов:
1. У меня семь таблиц в БД и между ними установлены связи. Получается для каждой таблицы нужно создать свой файл .CSV? А как же связи между таблицами? А может быть я неправильно что-то поняла?
2. А как потом использовать эти .CSV файлы в приложении?
Olga
незнакомец
 
Сообщения: 3
Зарегистрирован: 14.11.2010 22:07:53

Re: Создание приложения для БД в Lasarus

Сообщение Vadim » 17.11.2010 10:10:20

Olga
1. В CSV можно выгрузить только данные. Связи к данным уже не относятся. Придётся их потом восстанавливать самостоятельно.
2. Не стоит файл CSV использовать как рабочее хранилище данных. :) Лучше создать потом какую-нибудь широко распространённую БД и загрузить данные из файлов CSV туда.
Но, в принципе, можно работать и с CSV. Для этого есть компоненты в Lazarus под названием TSDFDataSet и TFixedFormatDataSet. Если у Вас файлы CSV содержат данные, которые отделены друг от друга каким-то символом-разделителем (например запятой), то нужно использовать TSDFDataSet, указав в свойстве Delimiter этот самый символ-разделитель.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Создание приложения для БД в Lasarus

Сообщение Ism » 17.11.2010 18:39:09

Импортируйте данные в базу firebird http://www.firebirdsql.org/ или sqlite, установите связи между таблицами например этим инструментом http://www.sqlmanager.net/ru/products/i ... r/download (он есть в виде бесплатной версии) Правда надо разбираться в SQL и знать , что такое внешний ключ.

В Lazarus есть компоненты доступа к серверу баз данных firebird. Напишите простой интерфейс и радуйтесь кросс платформенной базе данных :)
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Создание приложения для БД в Lasarus

Сообщение Odyssey » 17.11.2010 21:53:16

Olga писал(а):1. У меня семь таблиц в БД и между ними установлены связи. Получается для каждой таблицы нужно создать свой файл .CSV? А как же связи между таблицами?

Vadim прав, связи придётся пересоздавать руками уже в новом формате. Наверное, проще всего будет это сделать через программу администрирования конкретной СУБД. Например, список программ для администрирования баз SQLite есть тут, для Firebird -- тут. Как именно в них задаются связи¸что можно, что нельзя -- тут я пас, вам придётся пробовать. Я бы начал проверку списков с программ под лицензиями GNU GPL и BSD.
Olga писал(а):2. А как потом использовать эти .CSV файлы в приложении?

Если между таблицами есть связи, я бы отказался от постоянного хранения базы в DBF и CSV, т.е. выбирал бы из SQLite и Firebird. Поэтому полученные CSV файлы нужно каким-то образом импортировать в новую базу SQLite или Firebird. Сначала нужно проверить программы администрирования, указанные выше. Если какая-нибудь из них поддерживает импорт из CSV -- замечательно, тогда можно создать в этой программе новую базу и импортировать туда ваши данные. Если это не получится -- придётся написать свою программку по преобразованию формата.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Создание приложения для БД в Lasarus

Сообщение Olga » 24.11.2010 13:07:48

А если я CSV файлы буду импортировать в MySQL?
Olga
незнакомец
 
Сообщения: 3
Зарегистрирован: 14.11.2010 22:07:53

Re: Создание приложения для БД в Lasarus

Сообщение Nik » 24.11.2010 14:42:41

Olga писал(а):А если я CSV файлы буду импортировать в MySQL?

Можно и в MySQL, но тогда придётся заморачиваться с сервером MySQL (запуск, подключение и т.п.). Если программа работает локально, лучше взять SQLite - базовый синтаксис практически такой же, а использовать гораздо удобнее.
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Создание приложения для БД в Lasarus

Сообщение Odyssey » 24.11.2010 21:44:05

Полностью согласен с Nik по поводу SQLite. Тем не менее, если возникнет необходимость именно в MySQL -- данные из CSV в базу можно загрузить через phpMyAdmin:
http://vegdave.wordpress.com/2007/05/19 ... hpmyadmin/
http://stackoverflow.com/questions/571500
http://123techtalk.blogspot.com/2008/08 ... admin.html
http://forum.php-myadmin.ru/viewtopic.php?id=93
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Создание приложения для БД в Lasarus

Сообщение GAMER » 24.11.2010 22:19:23

Но для этого должен быть установлен phpMyAdmin.
А вот если продумать красиво запрос, то можно обойтись и простым клиентом mysql.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Создание приложения для БД в Lasarus

Сообщение Nik » 24.11.2010 22:26:22

GAMER писал(а):Но для этого должен быть установлен phpMyAdmin.

Если данные нужно экспортировать лишь один раз, можно поставить Denwer и сделать через phpMyAdmin. Но если нужен регулярный импорт на клиентских машинах - лучше придумать более автоматический способ (честно говоря, не представляю, как это сделать SQL-запросом).
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Создание приложения для БД в Lasarus

Сообщение GAMER » 24.11.2010 22:30:38

Я делаю так:
Код: Выделить всё
set names cp1251;

load data local infile
'form.txt'
replace into table
form
character set cp1251 fields terminated by '\t' lines terminated by '\n';

Разделители полей и строк можно поставить свои.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина


Вернуться в Lazarus

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

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

Рейтинг@Mail.ru