|
Вопрос # 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 (этот компонент кэширует сделанные Вами изменения и, потом, отправляет их на сервер, обеспечивая работу как с локальной СУБД) автоинкрепент поля не заполняются новыми значениями.
Поэтому нужно быть внимательным и досконально тестировать программу перед выпуском.
Мини-форум вопроса
Всего сообщений: 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.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|