Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Delphi+MySql+host


Автор: Frikazoid 18.11.2002, 08:05
Привет всем!
У меня такая проблема!
Есть у меня на хосте база mysql. Как мне от туда инфу забрать? Прочесть или записать?
Работать с MySql на PHP у меня не составляет труда, а вот с Delphi возникли траблы.

Автор: AntonSaburov 18.11.2002, 22:03
Поставить ODBC для MySQL - вообщем-то и нормально будет.

Автор: Frikazoid 19.11.2002, 07:18
Цитата(AntonSaburov @ 18.11.2002, 14:03)
Поставить ODBC для MySQL - вообщем-то и нормально будет.

С там же успехом можно было сказать: "Подучи Delphi и всё будет путём"

Автор: Vit 19.11.2002, 08:03
Я так понял что надо:
1) найти ODBC драйвер для MySQL (наверное где-то у них на сайте)
2) установить его на твою винду
3) Создать DSN на твою базу данных или обратиться через BDE через ODBC драйвер к MySQL

Если ты работал с базами данных на Дельфи то тебе должно быть ясно как работать с BDE драйвером, как создать Alias, а если нет, то вначале действительно надо подучить работу с базами данных в Дельфи - тут в 2х словах не объяснишь. Попробуй выполнить эти пункты и спрашивай, если что не получается.


PS. Если по какой-либо причине нет желания работать с ODBC драйвером через BDE, то можешь взять у меня с сайта пакет компонентов для работы с ODBC: http://delphi.nevzorov.net

Автор: Frikazoid 20.11.2002, 02:18
Да! Чуть не забыл!
Прога должна работать на любом компе без установки дополнительных драйверов!

Автор: AntonSaburov 20.11.2002, 02:26
Цитата(Frikazoid @ 19.11.2002, 18:18)
Да! Чуть не забыл!
Прога должна работать на любом компе без установки дополнительных драйверов!

На любом компутере это работать не может. И не будет.
А Delphi действительно хорошо бы учить. Вообще, что-то учить всегда хорошо.

Автор: Vit 20.11.2002, 02:46
Цитата(Frikazoid @ 19.11.2002, 09:18)
Да! Чуть не забыл!
Прога должна работать на любом компе без установки дополнительных драйверов!

А как по другому можно подсоединится к серверу баз данных? Извини, но эта штука, та которая общается с базой данных называется драйвером, твоя задача не разрешима теоретически вследствии внутреннего логического противоречия в постановке задачи. Можно конечно извратится и написать свой драйвер и включить его внутрь своего exe - тогда дерзайте, изучайте MySQL API (если его производители документировали их). Скажу сразу что для написания такой штуки для такого широко заезженного и известного формата как DBase или Paradox у меня лично ушло бы не менее 6 месяцев работы при ежедневной затрате не менее 10 часов времени... (Хотя не могу сказать точно про MySQL - может они предоставляют достаточно высокоуровневые API для возможности гораздо более быстрой разработки). В целом поставленная тобой задача очень смахивает на задачу типа "хочу написать программу которая бы работала без операционной системы..."

Автор: Medved 20.11.2002, 03:35
кесареву - Кесарю, а божье - Богу. Не стоит пытаться на дельфи делать то, что можно сделать при помощи других инструментов гораздо быстрее и проще.

Ну а если тебе нужен ехе-шник, то напиши его, чтобы он вызывал выполнение скриптов PHP (хотя это извращение).

Автор: AntonSaburov 20.11.2002, 03:40
Ну вообще-то у MySQL, насколько я помню, есть какая-то библиотека для связи с С++ - у меня коллега как-то развлекался, какую-то утилитку под Unix ваял.
Но каков вопрос, таков и ответ.
Можно в принципе через HTTP получить данные, распарсить их и использовать.

Автор: Vit 20.11.2002, 03:53
Цитата(Pegas @ 19.11.2002, 10:35)
кесареву - Кесарю, а божье - Богу.

Собственно вопрос наверное скорее не в этом, а в том что автор топика скорее всего не подоздевает, что Дельфийские компоненты типа TQuery или TTable вообще ничего с базой данных не делают - это только классы, предоставляющие удобный интерфейс для API подключённого драйвера. И если в TQuery написано 'Select * From MyTable', то это вовсе не означает что компонент TQuery берёт и выполняет этот запрос, непосредственно общаясь с базой данных, на самом деле TQuery инициализирует драйвер, передаёт ему запрос, полученный ответ предоставляет в форме удобной для работы из приложения. Таким образом выходов 3:

1) Использовать драйвер - самый простой, самый удобный способ, череватый наименьшим количеством ошибок. Установка + настройка драйвера + реализация доступа к базе - займёт несколько минут... Всё это можно автоматизировать внутри кода.

2) Использовать API MySQL (если такие имеются) - гораздо сложнее, скорее всего прийдётся либо забыть о всех стандартных компонентах Дельфи для работы с базами данных или потратить немалое время для написания дополнительного программного "Layer" - для состыковки с этими компонентами. Я работал немного с BDE и DAO API и могу заверить что эта работа требует довольно глубоких знаний и является довольно трудоёмким процессом

3) Писать свой драйвер - я уже говорил о трудоёмкости этого метода.

Автор: Medved 20.11.2002, 04:03
Цитата

Писать свой драйвер


Наверняка на просторах сети есть компоненты прямого доступа к базам MySQL. Я в этом практически уверен.... просто надо поискать......

Автор: MadGhost 20.11.2002, 16:23
Я так думаю библиотека ZeosDbo тебя спасет, устанавливаешь компоненты, кидаешь на форму и все работаешь как с обычными Table Query
для того чтобы не справшивала программа всяких драйверов , нужно просто вместе с программой записывать файлик libmysql.dll и все пучком, никаких ODBC не нужно, по моему мне кто то грил что это вчерашний день.э

Автор: Vit 20.11.2002, 17:17
Цитата(MadGhost @ 19.11.2002, 23:23)
нужно просто вместе с программой записывать файлик libmysql.dll

:D  :D  :D  :D

Как видишь и здесь без драйверов не обошлось :) - только используется одинокостоящий драйвер.


Цитата
никаких ODBC не нужно, по моему мне кто то грил что это вчерашний день.


Вчерашний конечно, но ADO драйверов я что-то не встречал для MySQL и вообще не слышал о их существовании...

Автор: Frikazoid 20.11.2002, 23:40
Цитата(Vit @ 19.11.2002, 18:46)
Цитата(Frikazoid @ 19.11.2002, 09:18)
Да! Чуть не забыл!
Прога должна работать на любом компе без установки дополнительных драйверов!

А как по другому можно подсоединится к серверу баз данных? Извини, но эта штука, та которая общается с базой данных называется драйвером, твоя задача не разрешима теоретически вследствии внутреннего логического противоречия в постановке задачи. Можно конечно извратится и написать свой драйвер и включить его внутрь своего exe - тогда дерзайте, изучайте MySQL API (если его производители документировали их). Скажу сразу что для написания такой штуки для такого широко заезженного и известного формата как DBase или Paradox у меня лично ушло бы не менее 6 месяцев работы при ежедневной затрате не менее 10 часов времени... (Хотя не могу сказать точно про MySQL - может они предоставляют достаточно высокоуровневые API для возможности гораздо более быстрой разработки). В целом поставленная тобой задача очень смахивает на задачу типа "хочу написать программу которая бы работала без операционной системы..."

Да нет! Эта задача вполне решаема и за меньшие сроки! Просто компоненты надо подискать! Я уже приметил однубиблиотеку на сях!

Автор: Frikazoid 20.11.2002, 23:41
Цитата(Pegas @ 19.11.2002, 19:35)
кесареву - Кесарю, а божье - Богу. Не стоит пытаться на дельфи делать то, что можно сделать при помощи других инструментов гораздо быстрее и проще.

Ну а если тебе нужен ехе-шник, то напиши его, чтобы он вызывал выполнение скриптов PHP (хотя это извращение).

Я об этом думал, но понял, что будет сильно тормозить!

Автор: Frikazoid 20.11.2002, 23:42
Цитата(AntonSaburov @ 19.11.2002, 19:40)
Ну вообще-то у MySQL, насколько я помню, есть какая-то библиотека для связи с С++ - у меня коллега как-то развлекался, какую-то утилитку под Unix ваял.
Но каков вопрос, таков и ответ.
Можно в принципе через HTTP получить данные, распарсить их и использовать.

Если бы кто-то мне сказал как по Http работать с MySql, то я был бы благодарен!

Автор: Frikazoid 20.11.2002, 23:44
Цитата(Vit @ 19.11.2002, 19:53)
Цитата(Pegas @ 19.11.2002, 10:35)
кесареву - Кесарю, а божье - Богу.

Собственно вопрос наверное скорее не в этом, а в том что автор топика скорее всего не подоздевает, что Дельфийские компоненты типа TQuery или TTable вообще ничего с базой данных не делают - это только классы, предоставляющие удобный интерфейс для API подключённого драйвера. И если в TQuery написано 'Select * From MyTable', то это вовсе не означает что компонент TQuery берёт и выполняет этот запрос, непосредственно общаясь с базой данных, на самом деле TQuery инициализирует драйвер, передаёт ему запрос, полученный ответ предоставляет в форме удобной для работы из приложения. Таким образом выходов 3:

1) Использовать драйвер - самый простой, самый удобный способ, череватый наименьшим количеством ошибок. Установка + настройка драйвера + реализация доступа к базе - займёт несколько минут... Всё это можно автоматизировать внутри кода.

2) Использовать API MySQL (если такие имеются) - гораздо сложнее, скорее всего прийдётся либо забыть о всех стандартных компонентах Дельфи для работы с базами данных или потратить немалое время для написания дополнительного программного "Layer" - для состыковки с этими компонентами. Я работал немного с BDE и DAO API и могу заверить что эта работа требует довольно глубоких знаний и является довольно трудоёмким процессом

3) Писать свой драйвер - я уже говорил о трудоёмкости этого метода.

Не будь так уверен, что я думаю о том или о сём!

Автор: Frikazoid 20.11.2002, 23:45
Цитата(Pegas @ 19.11.2002, 20:03)
Цитата

Писать свой драйвер


Наверняка на просторах сети есть компоненты прямого доступа к базам MySQL. Я в этом практически уверен.... просто надо поискать......

Грузи filesearch.ru и пиши запрос типа *sql*.zip и тебе выдаст кучу файлов! Я там нашол кое-чо!

Автор: Fantasist 21.11.2002, 09:46
dbExpress поддерживает MySQL.

Автор: Frikazoid 22.11.2002, 03:45
Цитата(Fantasist @ 21.11.2002, 01:46)
dbExpress поддерживает MySQL.

Спасибо! Я уже нашёл, что искал!
Это ZeosDbo! Отличный компонент!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)