(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Delphi и Mysql. C чего начать? (исходники)

Источник: IT World

Я полагаю, что у вас уже установлен Delphi и все работает замечательно. Чтобы база MySQL была доступна из Delphi, я рекомендую скачать и установить объекты, которые упростят работу с этой базой. На самом деле, в пакете Delphi 7 уже есть некоторые компоненты, в закладке Internet, но те, которые я использую - намного удобнее.

Библиотека доступна по этому адресу: http://prdownloads.sourceforge.net/directsql/DirectMysqlObjects.zip?download
или демо версия: http://prdownloads.sourceforge.net/directsql/DemoObjectsWin.zip?download

Чтобы установить эти компоненты, вам нужно будет разархивировать ZIP файл в директорию {$Delphi}/lib/.
Чтобы использовать эти компоненты, добавьте интерфейсные коды:

uMySqlVio, uMysqlCT, uMysqlClient, uMysqlHelpers

Вот и все, что нужно для установки.

Содинение с базой

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

Для начала запустите Delphi и создайте новое приложение. Подключите интерфейсы uMySqlVio, uMysqlCT, uMysqlClient, uMysqlHelpers и сохраните проект.
Нам нужно использовать объект доступа к MySQL, поэтому в общей области на главной форме добавим следующее:

Код:

MySQLClient: TMySQLClient;

Еще нам понадобится один объект для выполнения SQL запросов:

Код:

MySQLResult: TMysqlResult;

Пишем код для подключения к базе и выполнения запроса. Двойной клик на главной форме и в процедуре OnCreate пишем:

Код:

MySQLClient := TMySQLClient.Create;

В процедуру OnDestroy добавляем такой код:

Код:

MySQLClient.Free;
if MySQLResult <> nil then
MySQLResult.Free;

Поместите новую кнопку в любое место формы, подпишите её 'Connect' и назовите её ButtonConnect.
Чтобы соединиться с базой, нам нужно определить такие параметры как: хост, порт, пользователь, пароль, UNIX сокет и имя базы данных.
Есть два способа: считать параметры из элементов ввода на форме или указать их по ходу выполнения программы.
В этом уроке я покажу вам оба варианта.

Длинный и плохой способ:
Код:

MySQLClient.Host := Edit1.Text;
MySQLClient.port := StrToInt(Edit2.text);
MySQLClient.user := Edit3.text;
MySQLClient.password := Edit4.text;
MySQLClient.UnixSocket := Edit5.Text;
MySQLClient.Db := Edit6.Text;
MySQLClient.UseNamedPipe := CheckBox1.Checked;
MySQLClient.UseSSL := CheckBox4.Checked;
MySQLClient.Compress := CheckBox8.Checked;
MySQLClient.TrySockets := CheckBox3.Checked;

if MySQLClient.Connect then ShowMessage('connected ok!');

Мой любимый способ:

Код:

if FMysql.Connect(Edit1.Text, Edit3.Text, Edit4.Text, 'db', StrToInt(Edit2.text), '', false, 0) then ShowMessage('connected ok!');

Аргументы этой функции располагаются в таком порядке:

host, username, password, db, port, socket, try, sockets, client, flag

Сам запрос ничем не отличается от такого же, написанного на PhP.
Результат выполнения запроса присваивается переменной MySQLResult, а для выполнения используется объект MySQLClient. Функция выполнения запроса принимает три аргумента: сам SQL запрос, флаг - сохранять ли результат и переменную, куда будет записан флаг выполнения (true, false).

Код:

MySQLResult := MySQLClient.Query('SELECT * FROM admin_users WHERE username=''dummy_username'' and password=''dummy_pass''', True, OK);

Таким образом, строка кода, которую вы видите выше, присваивает результат выполнения запроса переменной MySQLResult. В запросе извлекается запись из таблицы admin_users. В логической переменной OK сохранен флаг выполнения, то есть, значение true свидетельствует об успешном выполнении, а false означает ошибку.

Теперь можно получить значение поля:

Код:

MySQLResult.FieldValueByName('username');

Как можно было догадаться, это скрипт проверки имени пользователя и пароля. Осталось только сделать проверку.

Я решил сделать это таким образом, что все проверяется в одном операторе IF, и конкретная причина не выдается:

Код:

if (MySQLResult.FieldValueByName('username') <> 'dummy_username') or (MySQLResult.FieldValueByName('password') <> 'dummy_pass') then

Здесь мы проверили жестко закодированное имя пользователя dummy_username с тем, которое возвратил запрос. Пароль проверяется таким же образом.

Это не лучший пример программирования, к тому же рекомендуется шифровать данные с помощью функции MD5. Кстати, для работы с ней, вам поможет ресурс www.torry.net. Это был всего лишь пример использования Delphi!



 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Micro Focus/Borland » [16]
Написать редактору 
 Рекомендовать » Дата публикации: 21.04.2007 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
ER/Studio Data Architect XE7, Single Platform Workstation License for Windows
DAEMON Tools Pro Standard 6, 1 ПК
Avira Internet Security Suite, 1 ПК, 1 год
Oracle Data Access Components (ODAC) Standard single license
IBM RATIONAL Quality Manager Quality Professional Authorized User Single Install License + Sw Subscription & Support 12 Months
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
MakerBot Replicator 2
MakerBot Replicator 2-head
PICASO 3D Designer (Желтый)
CubeX Trio
3D ручка Myriwell, голубая
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Новые материалы
Программирование на Microsoft Access
eManual - электронные книги и техническая документация
CASE-технологии
Один день системного администратора
 
Рассылки Maillist.ru
Новости ITShop.ru - ПО, книги, документация, курсы обучения
eManual - электронные книги и техническая документация
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Пишу программы на заказ профессионально (1801)
Пишу программы на заказ на языках Pascal (численные методы, списки, деревья, прерывания) под...
 
Интернет – магазин приглашает HTML-верстальщика, Москва (1)
Интернет – магазин приглашает HTML-верстальщика, Москва: kkosti1973@yandex.ru Обязанности: •...
 
Ad1Game.ru файловая и игровая партнёрка проверенная годами. (1)
Наш многолетний опыт на данном рынке делает нас партнёром достойным вашего доверия. Почему...
 
Команда опытных энергичных разработчиков ищет заказы (2)
Команда разработчиков, имеющая большой опыт разработки на C/C++, C#, Delphi, PHP с...
 
Программы Delphi на заказ (204)
Пишу программы в среде Delphi на заказ http://bddelphi.ucoz.ru/
 
 
 



    
rambler's top100 Rambler's Top100