(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
FastReport.Net Basic обновление до WinForms Team
Photoshop Elements 14 Windows Russian AOO License TLP Commercial Licenses
Q 1.0 for Windows Single User
dbForge Studio for MySQL Standard license
DAEMON Tools Ultra 3, 1 ПК
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
CubeX
MakerBot Replicator 5th GEN
3D сканер SENSE
CubeX Duo
PrintBox3D One
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Новые материалы
Программирование на Microsoft Access
Delphi - проблемы и решения
eManual - электронные книги и техническая документация
Безопасность компьютерных сетей и защита информации
 
Рассылки Maillist.ru
Новости ITShop.ru - ПО, книги, документация, курсы обучения
eManual - электронные книги и техническая документация
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Нужен авторегер аккаунтов (1)
Нужна программа аторегистрации аккаунтов с одного сайта, есть четкое ТЗ но я сразу хочу спросить...
 
Программы Delphi на заказ (190)
Пишу программы в среде Delphi на заказ http://bddelphi.ucoz.ru/
 
Пишу программы на заказ профессионально (1733)
Пишу программы на заказ на языках Pascal (численные методы, списки, деревья, прерывания) под...
 
Пишу программы на заказ для студентов (77)
Пишу для студентов на с, с++, паскаль в средах ms visual studio, qt, builder, borland c, delphi....
 
Помощь по MS Access (312)
Доброе время суток. Случайно оказался на этом сайте, искал статьи по OLAP. Вижу, что...
 
 
 



    
rambler's top100 Rambler's Top100