Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Delphi и MySQL через ADO  [new]
Angara
Member

Откуда:
Сообщений: 10
Добрый день! Создала приложение Дельфи с использование БД MySQL 5.2. Соединялась через My SQL ODBC 5.1 драйвер посредством компонента ADOConnection. Теперь нужно показать разработанное приложение преподавателю. Знаю, что просто скопировав папку с проектом на компьютер преподавателя, база не откроется. Какие файлы нужно таскать с собой, либо что настроить на компе препода, чтобы база работала и у него. SQL сервер и ODBC драйвер у препода тот же, что и у меня.
28 сен 17, 13:20    [20828915]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
JaDi
Member

Откуда: JayDi из Сызрани
Сообщений: 3018
Надо чтобы и база была общая (чтобы к ней был доступ как из дома, так от преподавателя). Иначе придется делать бекап базы, а потом через что-нибудь восстанавливать.

ADOConnection содержит строку для подключения (connection string). Надо ее сохранить к себе в код, а вместо адреса базы, логина и пароля поставить символ %s... А потом заполнять в коде типа:
connectionString := Format('строка', [server, login, password, database]);

в свою очередь эти переменные с сервером и доступом хранить в текстовом файле рядом с программой и при старте их считывать... Если лень это делать, то можно тупо эти текстовые поля в самой программе сделать и кнопку подключения.
28 сен 17, 17:03    [20829683]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
Gator
Member

Откуда: Москва
Сообщений: 13809
https://www.connectionstrings.com/mysql/
28 сен 17, 18:34    [20829985]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
Angara
Member

Откуда:
Сообщений: 10
JaDi, Если скопировать папку с созданной БД в папку MySQL\MySQL Server 5.2\data на компе препода и настроить параметры ODBC драйвера через Панель управления -> Администрирование, а в самом коде при подключении к БД прописать код, который вы предлагаете, то БД успешно запустится?
29 сен 17, 12:55    [20831483]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
JaDi
Member

Откуда: JayDi из Сызрани
Сообщений: 3018
Angara
JaDi, Если скопировать папку с созданной БД в папку MySQL\MySQL Server 5.2\data на компе препода и настроить параметры ODBC драйвера через Панель управления -> Администрирование, а в самом коде при подключении к БД прописать код, который вы предлагаете, то БД успешно запустится?

Для ConnectionString ничего настраивать в панели администрирования не надо -- можно напрямую писать доступ к базе. А вот то, что сам драйвер должен быть установлен -- это тонкий момент. Если у препода он стоит -- хорошо. А если нет? Конечно, можно и в источники данных добавить базу -- тогда верно -- настроек не потребуется. Но мне легче прямо в программы сделать нужные поля для подключения и вставлять их в Connection String.

Кроме того замена файлов в папке дата -- это довольно авантюрное решение. Вдруг версия базы не та, вдруг данные препода затрутся, вдруг еще что-то случится. Самый надежный способ -- это дамп базы данных в виде SQL-файла. Его можно будет импортировать любым удобным способом (выполнить скрипт по созданию и заполнению базы) -- хоть через сторонний софт, хоть через командную строку.
29 сен 17, 17:25    [20832361]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
Angara
Member

Откуда:
Сообщений: 10
JaDi, я скачала, установила zeusdb. Настроила свойства компонентов ZConnection1 и ZQuery. В папку с проектом поместила файл libmySQL.dll (на всякий случай, вдруг нужен). Не подскажете, что еще нужно сделать? или этого достаточно чтобы открыть БД на компьютере преподавателя?
29 сен 17, 20:30    [20832538]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
JaDi
Member

Откуда: JayDi из Сызрани
Сообщений: 3018
Angara,

этого достаточно... теперь главное, чтобы в самом приложении не было активных подключение -- connecte - false, а датасеты с active - false...

И тогда при запуска можно откуда-то грузить данные о подключении для вставки в зеус-соединение.
29 сен 17, 20:36    [20832544]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
Angara
Member

Откуда:
Сообщений: 10
JaDi, а как быть с БД? Должен ли быть на компьютере преподавателя установлен ODBC - драйвер? Нужно ли дамп-файл базы данных скидывать ему на комп, если да, то в какую папку? нужно ли дамп-файл держать в папке проекта?
Извините за такие глупые вопросы, просто я новичок в mysql
30 сен 17, 04:14    [20833012]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
Angara
Member

Откуда:
Сообщений: 10
JaDi, с вопросом про ODBC это я перегнула. Нам ведь теперь он не нужен, т.к. мы используем совсем иной способ подключения.
(Если я в чем-то ошибаюсь, прошу поправить).

Расскажу по порядку как я настраивала компоненты zeos.
//Для компонента ZConnection1
ZConnection1.HostName := localhost (возможно нужно указать ip - адрес моего компьютера. Нет?);
ZConnection1.Database := servis_cent;
ZConnection1.User := root;
ZConnection1.Password := 00112299;
ZConnection1.Port := 3306;
ZConnection1.Protocol := mysql;
ZConnection1.Connected:=false;

//Для компонента ZQuery1:
ZQuery1.Connection:=ZConnection1;
ZQuery1.SQL:='SELECT * from zayavki';
ZQuery1.Active:=false;

В DataSource1 в свойстве DataSet указала ZQuery1.
Связь с DBGrid тоже установлена.

Теперь, насколько я поняла, надо чтобы при запуске программы, база данных считывала данные из ZConnection1. Для этого, видимо, надо прописать нечто подобное:

ZConnection1.HostName := localhost (возможно нужно указать ip - адрес моего компьютера. Нет?);
ZConnection1.Database := servis_cent;
ZConnection1.User := root;
ZConnection1.Password := 00112299;
ZConnection1.Port := 3306;
ZConnection1.Protocol := mysql;
ZConnection1.Connected:=true;
ZQuery1.Active:=true;


А вот куда это прописать, я тоже не знаю (на какой форме, или может это в файле проекта прописать, если да, то между какими строками). Объясните пожалуйста))))
30 сен 17, 05:52    [20833016]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
Angara
Member

Откуда:
Сообщений: 10
JaDi, разве можно подключиться к моей БД с другого компьютера (используя мой ip-адрес), если компьютеры не связаны по локальной сети? Возможно, мне стоит установить денвер или есть другой путь, полегче?
30 сен 17, 06:02    [20833019]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
Angara
Member

Откуда:
Сообщений: 10
JaDi, и если нужно в качестве имени хоста указывать ip-адрес, то какой именно (внешний или основной)?
30 сен 17, 09:54    [20833096]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
JaDi
Member

Откуда: JayDi из Сызрани
Сообщений: 3018
Angara,

localhost -- это адрес текущего компьютера, на котором запущено приложение. Если база преподавателя находится на нем же, то это имя можно так и ставить.

Angara
и если нужно в качестве имени хоста указывать ip-адрес, то какой именно (внешний или основной)?

Внешний. Тот, что показывается на яндексе при поиске "мой айпи", например. Там же в онлайн сервисах надо проверить, чтобы был открыт порт 3306.

Angara
разве можно подключиться к моей БД с другого компьютера (используя мой ip-адрес), если компьютеры не связаны по локальной сети? Возможно, мне стоит установить денвер или есть другой путь, полегче?

Если компьютеры не связаны по локальной сети, то подключиться нельзя. В крайнем случае можно использовать связь через интернет -- подключаться по ип-адресу. Но для этого должны быть некоторые условия (например, открытый порт 3306 на домашнем роутере/компьютере, разрешенный доступ к базе под учеткой root с внешних компьютеров -- эта галочка ставится при установке mysql, либо при создании нового пользователя). Кстати, самый простой способ подключиться через интернет к домашнему компьютеру для настроек или проверки/скачивания чего либо -- использовать TeamViewer.

Angara
как быть с БД? Должен ли быть на компьютере преподавателя установлен ODBC - драйвер? Нужно ли дамп-файл базы данных скидывать ему на комп, если да, то в какую папку? нужно ли дамп-файл держать в папке проекта?
Извините за такие глупые вопросы, просто я новичок в mysql

Odbc уже не нужен. А вот с дампом базы -- хороший вопрос. Лучше узнать у преподавателя, какой софт или инструменты для работы с базой у него доступны. Возможно, у него уже что-то есть там (сторонний софт для работы типа dbforge for mysql -- бесплатный кстати на русском языке; либо phpmyadmin). И уже от него отталкиваться. В крайнем случае можно будет принести с собой утилиту mysqldump, которая есть в основной поставке и скриптом восстанавливать через нее. Если совсем туго -- то могу скинуть на почту свою утилиту, где визуально можно подключиться к базе, создать пользователя или поставить дамп базы.
30 сен 17, 10:30    [20833118]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 156
Можно использовать MyDAC от DevArt (платная библиотека), тогда не нужно ничего таскать вместе с приложением. Достаточно указать компоненту ip/порт и логин/пароль сервера с базой и вуаля, никаких дополнительных dll/exe/etc не потребуется.
Останется только решить вопрос с местоположением самой базы
30 сен 17, 15:42    [20833432]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
Angara
Member

Откуда:
Сообщений: 10
asutp2, мне не нужна общая БД. Есть способ просто перенести БД на другой компьютер и подключиться к ней, используя предложенный компонент?
1 окт 17, 10:21    [20834166]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
Angara
Member

Откуда:
Сообщений: 10
asutp2, не отвечайте. Получилось перенести БД на другой комп при помощи создания dump файла. А далее моя БД через ZEOS прекрасно к ней подключилась. Буду тестировать дальше. Надеюсь ошибок при работе с БД не возникнет
1 окт 17, 11:03    [20834208]     Ответить | Цитировать Сообщить модератору
 Re: Delphi и MySQL через ADO  [new]
Angara
Member

Откуда:
Сообщений: 10
JaDi, Спасибо вам большое!!!! Вы мне подкинули идею про dump-файл и библиотеку ZEOS. Я позже здесь распишу как мне удалось реализовать перенос приложения написанного в Delphi 7 + MySQL на другой компьютер, чтобы остальным не пришлось убивать на это две недели в поиске информации и чтении книг.
1 окт 17, 11:15    [20834225]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить