Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 571

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Подскажите, с какой стороны подойти к решению следующей задачи:
Необходимо реализовать программу, которая бы работала в фоне и висела в трее, ее задача - информирование пользователя о текущем балансе на его счету, который находится на сервере провайдера в базе данных mysql.
Для получения информации должна быть авторизация по логину и паролю + через определенные промежутки времени информация должна обновлятся.
ИНтересует в основном процесс соединения с базой данных, передача пароля в шифрованном виде, выдача запрошенной информации.

Бурко Александр Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Бурко Александр (статус: Посетитель)
Вопрос отправлен: 12 мая 2007, 19:19
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Бурко!
Итак, попорядку. Скорее всего, ни формат базы, ни пароли к ней вам неизвестны. Да к тому же обычно к серверам MySQL можно подключаться только с локалхоста, тоесть сервер и приложение должно находиться на одной машине. В вашем случае вы наверное заходите на страничку в на сайте провайдера, вводите имя/пароль и получаете в ответ страницу, на которой находяться данные о вашем счёте. Я это страничку не видел, поэтому не могу привести точного кода. Но можу предположить, что имя/пароль пересылается в post запросе.
Если вам это интересно - стучитесь в асю. Она в профиле, разберёмся

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 13 мая 2007, 00:30
Оценка за ответ: 3

Ответ #2. Отвечает эксперт: Матвеев Игорь Владимирович

Здравствуйте, Бурко!
MySQL спокойно может находиться на другом сервере, подключиться к MySQL серверу можно с помощю технологии dbExpress, далее говорю для сельмой версии Delphi.

TSQLConnection - подключение к SQL серверу, нужно указать ConnectionName = MySQLConnection; DriverName = MySQL; А в свойстве Params: HostName - хост, где расположен сервер MySQL, Database - имя базы данных, User_Name - имя пользователя (у пользователя должны быть соответствующие права), Password - пароль.

Получить данные можно с помощью TSQLQuery, SQL запрос в свойстве SQL, аналогично можно и изменить данные.

Единственное, для работы программы в ее каталог нужно кинуть библиотеку libmysql.dll, которая лежит в каталоге \bin MySQL, эта библиотека непосредственно общается с сервером. Однако из-за некоторых отличий в версиях этой библиотеки и MySQL сервера возникают ошибки, например когда нужно в SELECT запросе сформировать вывод из более 6 разных таблиц, или при добавлении новой записи, при использовании TSimpleDataSet (этот компонент кэширует сделанные Вами изменения и, потом, отправляет их на сервер, обеспечивая работу как с локальной СУБД) автоинкрепент поля не заполняются новыми значениями.

Поэтому нужно быть внимательным и досконально тестировать программу перед выпуском.

Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 13 мая 2007, 03:31
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 17 мая 2007, 06:05; участников в обсуждении: 2.
Бурко Александр

Бурко Александр (статус: Посетитель), 16 мая 2007, 05:51 [#1]:

Спасибо за ответы. Теперь знаю с чего начать и куда двигаться.
По порядку. В качестве теста, установил на локальную машину mysql,добавил туда базу и создал в ней таблицу, в которую добавил несколько записей.
Необходимо создать форму, в которой была бы кнопка Запрос и поле для ввода параметра запроса.
База состоит из трех полей, id, login, passw. Скажем так, ввожу логин, программа выдает пароль. Я создаю форму, вставляю компонент TSQLConnection, в его параметрах прописываю имя хоста, имя пользователя и пароль. Выдает что коннект успешен. По нажати на кнопку формирую запрос SQLConnection1.Execute(...) и дальше разобраться пока не могу. Как правильно сделать запрос и выдать результат?
Матвеев Игорь Владимирович

Матвеев Игорь Владимирович (статус: Студент), 17 мая 2007, 05:41 [#2]:

Учите SQL, например Джеймс Р. Грофф, Пол Н. Вайнберг - "SQL - Полное руководство" или Кевин Клайн - "SQL Справочник", все можно найти в интернете.

В Вашем случае:
SELECT *
FROM <имя таблицы>
WHERE login = '<искомый логин>';

Результатом работы этого SQL запроса будет набор записей (из всех столбцов таблицы), где поле login равно значению <искомый логин>. Учтите, что в результате может быть и несколько записей, а может и вообще не быть.
Бурко Александр

Бурко Александр (статус: Посетитель), 17 мая 2007, 05:59 [#3]:

Запрос как формируется я знаю. Так как знаком с PHP. Меня интересует именно процесс создания подключения, формирования запроса и вывод результата на Делфи.
Бурко Александр

Бурко Александр (статус: Посетитель), 17 мая 2007, 06:05 [#4]:

Вы можете мне показать пример листинга программы, реализующую данную задачу. Думаю, то что я спрашиваю это элементарно для Вас. Я перерыл интернет, но ничего подходящего не нашел, а то что нашел не работает у меня и достаточно скупые комментарии. У меня стоит Делфи 2006.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:56
Выполнено за 0.02 сек.