Вы не авторизированы! Логин:  Пароль:  Запомнить:    Зарегистрироваться
Забыл пароль
 
 
 

MySQL и Delphi: с чего начать?

SVD programming - Программирование Delphi, HTML, PHP, CGI. Обзоры софта, ReactOS и многое другое...
 
Главная - Новости - Публикации - Файлы - Ссылки - Форум Обратная связь
 


Друзья сайта ::

Сайтом управляют ::

Друзья сайта ::
Delphi » MySQL и Delphi: с чего начать?
Автор: Admin / Дата: 13:48 10.02.2006
Комментарии: Комментарии (12)
MySQL и Delphi - Delphi и MySQL | delphi mysql
Рейтинг статьи: 8.00
MySQL и Delphi: с чего начать?

Что здесь используется:
Delphi 7
Direct Mysql Objects v.1.1 for Delphi 1, 2, 3, 4, 5, 6 & 7

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

Библиотека доступна по этому адресу: http://svdpro.info/go.php?a=http://prdownloads.sourceforge.net/directsql/DirectMysqlObjects.zip?download
или демо версия:
http://svdpro.info/go.php?a=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!

Источник: http://webclass.ru
Автор : Admin
Комментарии: Комментарии (12)

Внимание!

Друзья сайта
Голосование ::
Случайные статьи ::
Добавления в форуме ::
Новые комментарии ::
Пользователи on-line ::
0 пользователь, 50 гостей
 
Страница создана за 0.011 секунд

SQL общее время: 0.004 секунд
SQL запросов всего: 15
Администрация сайта не несет ответственности за содержание рекламных материалов, а так же за информацию размещаемой посетителями. При использовании материалов сайта ссылка на svdpro.info обязательна.

Powered by LDU 802

Рейтинг@Mail.ru
Copyright © 2005 - 2011 «SVD Programming»
Версия сайта для коммуникаторов
Обратная связь - Карта сайта