Простая задачка с MySQL

ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
APS
Новичок
Сообщения: 8
Зарегистрирован: 10 Октябрь 2005, 6:04
Откуда: Украина, Красилов
Контактная информация:

Простая задачка с MySQL

Сообщение APS »

Привет!
Обстановка: есть таблица с данными на хостинге
Задача: из прилады на локальном компе забрать оттуда данные и показать оператору
Вопрос: кто-нить знает как сделать? толкните в нужном направлении: типа: драйвер, библиотеки, шаблоны, а также грабли и подводные камни. М.б. есть что-нить приблизительно готовое. Ну, все как обычно для ламера в этом вопросе. :)
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Re: Простая задачка с MySQL

Сообщение kreator »

С MySQL не работал, но принцип такой. Ставишь ODBC драйвер на локальную машину. Прописываешь в нем путь к базе (нужно знать имя сервера БД, его ip адрес, номер порта, который он слушает). Заходишь в словарь и импортируешь таблицы в него, выбирая тип ODBC. Какие грабли? IP хоста не определить. Порт не известен, в принципе можно узнать. Доступ по этому порту запрещен, может как твоим proxy, так и на хосте. Но все это решаемо, ведь нужно же как-то администрировать БД. Да еще нужен логин и пароль на доступ к БД.
We are hard at work… for you. :)
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Простая задачка с MySQL

Сообщение Алексей- Софт-Центр »

Проблем никаких.
Работаем с MySql достаточно долго. Никаких "подводных" камней нет!
Все правильно - через ODBC. Пользуем драйвер 3 (5 - не идет, т.к. не нашли, где вставить Init строку для русского алфавита)
В АРР - все как и для обычного драйвера:броузеры, формы и.т.д. Только еще добавляется сервис по хранимым процедурам и фильтра броузеров
VickNick
Прохожий
Сообщения: 1
Зарегистрирован: 20 Сентябрь 2007, 15:54
Откуда: Севастополь - город-герой

Re: Простая задачка с MySQL

Сообщение VickNick »

Действительно проблем никаких. Только ИМХО лучше использовать драйвер ODBC v.5.1 (версия 5.01.06). Там в закладке Misc options есть выбор кодовой страницы.
Я использую связку Clarion & ODBC & MySQL для выгрузки данных в магазин на сайте и работы с заказами. Причем, база основной проги работает в кодировке win1251, а на сайте таблицы MySQL - в кодовой странице UTF8. Драйвер перекодирует на лету, никаких вопросов нет.
Ал
✯ Ветеран ✯
Сообщения: 1011
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия

Re: Простая задачка с MySQL

Сообщение Ал »

Может кому поможет. У меня опыт c SQL и MySQL небольшой - не требовались как-то приложения с такими базами, но однажды ... выдернуть данные таблиц MySQL... Баловался на локальной машине - поставил Денвер (+скрипт магазина + кусок реальной базы с данными), скачал сайта производителя дрова ODBC MySQL, поставил, посмотрел и настроил соединение с базой (Панель управления-Администрирование-Источники данных (ODBC)-Пользовательский|Файловый DSN... Как писали выше, при настройке все "адреса, явки, пароли" знал :D В словаре Клариона импортировал таблицу (помнится при этом Connector ODBC спросил пароль). Попытался посмотреть содержимое прямо в словаре - получил отлуп. Убрал в свойствах таблицы из OwnerName то что прописалось автоматом, в Full Pathname имя таблицы без "кавычек" - могут быть осень длинные имена - длиннее 8 буковок. Просмотрел - норма. Сделал простенький конвертор (из MySQL в TPS) для одной таблички - работает, но постоянно просит пароль на подключение. Добавил в текст конвертора строковую переменную, указал ее в OwnerName таблицы, после code записал в нею строку подключения - формат есть в постах на форуме, параметры конкретно для Вашего случая можно посмотреть в Connector ODBC (если забыли). Сварил - норма, ничего не просит, данные молча перегоняет. А потом в APP сделал тоже переменную (например ConnectString) и в нее в программе перед доступом к таблице (скопировал из конвертора или заполнял при необходимости...) - параметры подключения. Естественно в словаре у таблицы MySQL в OwnerName поставил !ConnectString.
Если в процессе возникали вопросы - читал хелп - F1 или http://forum.clarionlife.net/
Как-то так все было, но если не прав - спецы поправят :D
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Re: Простая задачка с MySQL

Сообщение StillZero »

:)все круто, не понятно только зачем в tps перегонять
Все сайты закрыты...
Ал
✯ Ветеран ✯
Сообщения: 1011
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия

Re: Простая задачка с MySQL

Сообщение Ал »

StillZero писал(а)::)все круто, не понятно только зачем в tps перегонять
:lol:
Привет! Насчет TPS не помню точно, почему так получилось, я ж баловался, наверно "на автомате" копию таблицы сделал и тип TPS поставил (по привычке - по работе были нужны небольшие программки на локальные компы, ну и как-то так и шло с 1994г. DBF/DAT, потом в основном TPS; когда была возможность - с сетевыми баловался, но практически было не нужно - и реально в задачах не ставилось, максимум - слить на дискету/забрать дискеты :( ). Просто написал про те свои первые "камешки" при работе с MySQL, которые вспомнил и что при этом делал, давненько дело было - тонкие нюансы мог подзабыть - может был затык с написанием строки подключения (помню смотрел http://forum.clarionlife.net http://www.clarionlife.net и http://mysql.ru),

Код: Выделить всё

ConnectionStr = 'Driver={{MySQL ODBC 3.51 Driver}; Server=127.0.0.1; Database=experiment; UID=usertest; PWD=test123; Option=3; PORT=3306' 
!{MySQL ODBC 3.51 Driver}; Server=servername; Database=dbname; UID=username; PWD=password; Option=3 
а конвертор варится быстро и легко ручками править в коде, да и "копи-паст" и будет TPS->MySQL. Да, еще вроде бы смотрел попутно нюансы с полями типа дата-время, которые были в таблицах MySQL

Код: Выделить всё

DATE_ADDED                  STRING(8),NAME('`date_added`')
DATE_ADDED_GROUP            GROUP,OVER(DATE_ADDED)
DATE_ADDED_DATE               DATE
DATE_ADDED_TIME               TIME
  END
, как будет выглядеть в бровзах, формах и тп., вот и гонял MySQL->TPS/TPS->MySQL.

ps
на англ. http://www.icetips.com/downloads.php?dl ... QL%20Stuff
там и про MySQL "азбука с картинками" - http://www.icetips.com/downloadfile.php?FileID=34
Последний раз редактировалось Ал 16 Февраль 2011, 19:30, всего редактировалось 1 раз.
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Простая задачка с MySQL

Сообщение Admin »

APS писал(а):Задача: из прилады на локальном компе забрать оттуда данные и показать оператору
Самому нужно было такое. В принципе как уже сказали, все пишется без проблем.
У основной массы "нормальных" хостеров нужно прописывать IP клиентской машины. Только для него будет доступ.
Прописал и вперед. Можно несколько адресов вносить.
При отсутcтвии постоянного IP можно внести "свой домен" с DynDNS ...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Smith
Старожил
Сообщения: 213
Зарегистрирован: 05 Сентябрь 2005, 19:21
Откуда: Пермь
Благодарил (а): 1 раз

Re: Простая задачка с MySQL

Сообщение Smith »

была у меня база на MySQL у 1gb.ru
ну запустил ( делал еще на МАV) все гуд народ преццо :-))) Потом админ попытался зайти на сайт - а он лежит горемычный. Следом письмо оттеля дескать вы там чего то поламали нах :-))) Я конечно удивился - но пришлось делать свой хост :-))))
Ответить