(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
IBM Domino Enterprise Server Processor Value Unit (PVU) Annual SW Subscription & Support Renewal
C++Builder 10.1 Berlin Professional New User - Named ESD
PaintShop Pro 2018 ULTIMATE ESD ML Global. Электронный ключ.
SmartBear TestComplete Platform - Node-Locked License - (Includes 1 year Maintenance)
EMS Data Export for PostgreSQL (Business) + 1 Year Maintenance
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Новые материалы
Программирование на Microsoft Access
Краткие описания программ и ссылки на них
Corel DRAW - от идеи до реализации
Проект mic-hard - все об XP - новости, статьи, советы
 
Рассылки Maillist.ru
Новости ITShop.ru - ПО, книги, документация, курсы обучения
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Пишу программы на заказ профессионально (1995)
Пишу программы на заказ на языках Pascal (численные методы, списки, деревья, прерывания) под...
 
Пишу программы на заказ для студентов (102)
Пишу для студентов на с, с++, паскаль в средах ms visual studio, qt, builder, borland c, delphi....
 
Интересует продвижение сайта http://24tv.by (1)
Интересует продвижение сайта http://24tv.by/ по Минску и всей Беларуси. Сайт молодой, только что...
 
Как определить ОС из PL\SQL? (6)
Подскажите, есть ли в PL\SQL команда, определяющая операционную систему?
 
Удалённая работа программистом ASP.NET(C#) (89)
Знанию asp.net(C#) . Знаком с паттернами проектирования по книги M.Файлера.Знание HTML,...
 
 
 



    
rambler's top100 Rambler's Top100