1 (edited by k245 2017-11-16 07:01:33)

Topic: Создание дистрибутива приложения, работающего с MySQL

Как с помощью скрипта:

1) определить, что нужная база отсутствует на сервере
2) создать нужную базу
3) создать структуру таблиц, нужных для работы приложения
4) загрузить в таблицы данные (этот пункт, в принципе, понятен, внесён для полноты картины)

Или как отобразить это окошко, в котором реализованы пункты 1-3 и которое есть в среде разработки:

http://f3.s.qip.ru/SwgAVREo.jpg

Всё это очень нужно для настройки приложения у конечного пользователя, который не купил среду разработки и исходники программы.


Конечная цель - создание дистрибутива пользовательского приложения. Хотелось бы обойтись только средствами MyVisualDatabase и пока бесплатной Inno Setup, как описано здесь: http://myvisualdatabase.com/forum/viewt … 249#p19249

Визуальное программирование: блог и телеграм-канал.

Re: Создание дистрибутива приложения, работающего с MySQL

В вашем случае необходимо подключиться к MySQL с помощью скрипта, таким образом вы сможете сделать свой диалог подключения к БД, а также выполнить необходимые SQL запросы, чтобы проверить наличие БД на сервере и при необходимости создать ее.


пример

procedure Form1_OnShow (Sender: string; Action: string);
begin
     frmWait.Show;
     Application.ProcessMessages;

     {$MySQL disable_connectdialog}
     Form1.MySQLConnection.Server := '127.0.0.1';
     Form1.MySQLConnection.Port := 3306;
     Form1.MySQLConnection.Username := 'root';
     Form1.MySQLConnection.Password := '';

     //Form1.MySQLConnection.Database := 'mvd';

     try
         Form1.MySQLConnection.Connect;
     except
         frmWait.Close;
         ShowMessage('Can''t connect to database.');
         Form1.Close;
     end;

     if Form1.MySQLConnection.Connected then
     begin

         SQLExecute('CREATE DATABASE IF NOT EXISTS `DBName`;');
         SQLExecute('USE `DBName`;');

         //UpdateDatabase(''); // to fill ComboBoxes
         //Form1.GridEmployees.dbUpdate; // if you have TableGrid on first form with option "Enable auto execution", you should call method dbUpdate manually
     end;
     frmWait.Close;
end;

Проект с данным примером прикреплен к сообщению.


Но данный вариант не много удобен, т.к. без My Visual Database не предусмотрена возможность создания таблиц и полей в БД. Если необходимо, могу попробовать добавить функцию в скрипт, которая бы создавала структуру без необходимости использовать SQL.

Dmitry.

3 (edited by k245 2017-11-16 07:00:58)

Re: Создание дистрибутива приложения, работающего с MySQL

DriveSoft wrote:

В вашем случае необходимо подключиться к MySQL с помощью скрипта, таким образом вы сможете сделать свой диалог подключения к БД, а также выполнить необходимые SQL запросы, чтобы проверить наличие БД на сервере и при необходимости создать ее...

Я подключаюсь к БД с помощью скрипта. Однако, не хотелось бы дублировать информацию о структуре базы в скриптах - это действительно неудобно, так как при изменении структуры нужно будет каждый раз править эти самые скрипты.

Либо мне придётся "изобретать велосипед"  - свой скрипт, который из tables.ini будет создавать аналогичную структуру в базе MySQL. Но мне хочется использовать проверенное, рабочее решение.

DriveSoft wrote:
SQLExecute('CREATE DATABASE IF NOT EXISTS `DBName`;');

Этот скрипт создаёт базу в случае её отсутствия. Но мне нужно только определить её наличие или отсутствие. Ушёл читать описание команд SQL для управления БД...

DriveSoft wrote:

...могу попробовать добавить функцию в скрипт, которая бы создавала структуру без необходимости использовать SQL.

Да, это было бы самым простым (для разработчика прикладной системы) решением smile 


P.S.
Уважаемые разработчики приложений платформы MyVisualDatabase!
А как вы создаёте дистрибутивы приложений для MySQL?

Визуальное программирование: блог и телеграм-канал.