Страница 1 из 3

Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 14 Апрель 2011, 11:42
NewUser
Прошу всех здравствовать!

Есть следующий концептуальный вопрос. Как дешево и сердито подружить кларион–программу (желательно на CW) с БД MySQL на web-сервере?

Или немного по-другому. Какими средствами оптимальнее всего организовать распределенную вычислительную сеть, реализованную кларион-десктоп-приложениями, с координацией со стороны web-сервера?

Иными словами (и упрощено говоря):
1. Web-сервер получает заказы на расчет
2. Clarion-приложение обращается на сервер и получает свою порцию заказов, отмечая (сам или заставляя сервер) эти заказы флагом «в обработке»
3. После завершения вычислений приложение выгружает результаты своей работы обратно на сервер (файлы в определенную папку), при этом меняя флаги в соответствующих заказах на «выполнено».

Одно из основных требований – простота разветывания приложений (одним кликом) на стороне клиента.
Еще одно (но не столь основное) – наличие необходимого дополнительного инструментария в привате.

Готов предоставить любую дополнительно-уточняющую информация для прояснения сути дела.

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 14 Апрель 2011, 12:46
Admin
Если не сильно большие объемы и посещаемость проще все делать на одном MySQL сервере. К серверу Клара по ODBC подключается. Соответствующие ODBC дрова в инете есть. Web с мускулем напрямую работает через Perl & PHP & и.т.

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 14 Апрель 2011, 15:00
NewUser
Здравствуйте, Admin!
Ранее я никогда не занимался подобными вещами, поэтому опыт нулевой.
Посему вопросы:
Что значит делать на одном MySQL сервере (по подробнее, пожалуйста)?
Не значит ли это, что прийдеться разворачивать у клиентов этот самый сервер?
Можно будет совместить в рамках одного приложения таблицы tps и ODBC?

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 14 Апрель 2011, 15:15
Дед Пахом
Я, наверно, чего-то недопонял, поэтому мне всё кажется предельно простым - обычная программа с доступом к БД через ODBC. Строка подключения формируется примерно так:

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

         strConnect = 'DRIVER={{MySQL ODBC 5.1 Driver}'         |
                    & ';SERVER='& clip(vServer)                 |
                    & ';PORT='& clip(vPort)                     |
                    & ';DATABASE='& clip(vDBName)               |
                    & ';USER='& clip(vUser)                     |
                    & ';PWD='& clip(vPwd)
vServer может быть ip-адрес или myserver.com

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 14 Апрель 2011, 15:40
NewUser
Правильно ли я понял ниже (согласно настроек данного форума) указанное:
1. В клиенской программе (в словаре) я создаю таблицу (с драйвером ODBC) аналогичную (в таком же формате) соответствующей MySQL таблице на сервере.
2. Подключаю эту таблицу посредством подключения драйвера ODBC кодом, который Вы любезно предоставили.
3. Работаю напрямую из приложения с таблицей на сервере.

Это так?

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 14 Апрель 2011, 17:04
Дед Пахом
NewUser писал(а):Правильно ли я понял ниже (согласно настроек данного форума) указанное:
1. В клиенской программе (в словаре) я создаю таблицу (с драйвером ODBC) аналогичную (в таком же формате) соответствующей MySQL таблице на сервере.
2. Подключаю эту таблицу посредством подключения драйвера ODBC кодом, который Вы любезно предоставили.
3. Работаю напрямую из приложения с таблицей на сервере.

Это так?
Ну да. Таблицу (-цы) можно прямо импортировать в словарь с сервера. Только должен предупредить вот об чём: MySQL на Linux и на Windows ведёт себя, сволочь, по разному - на Linux имена таблиц регистрочувствительны, а на Win нет. Поэтому называйте таблицы в точности так, как они названиы в БД, да и sql-запросы пишите соответственно: "select * from mYCAsesEnsiTIvETablE"

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 14 Апрель 2011, 17:21
NewUser
Все сделал, как написано. Но так и не разобрался куда (где) прописать переменную strConnect.

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 14 Апрель 2011, 17:33
NewUser
На этой стадии может быть актуально:

CW 6.3 9059 ABC

Я правильно понимаю, что драйвер ODBC идет со стандартной версией Клариона?

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 14 Апрель 2011, 18:22
Дед Пахом
NewUser писал(а):Все сделал, как написано. Но так и не разобрался куда (где) прописать переменную strConnect.
Эта переменная должна быть в атрибуте OWNER всех таблиц этой БД в словаре (Словарь > Свойства файла > Owner > !strConnect). Само собой, вычислить её значение надо до открытия файлов.

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 14 Апрель 2011, 18:23
Дед Пахом
NewUser писал(а):Я правильно понимаю, что драйвер ODBC идет со стандартной версией Клариона?
Нет, ODBC-драйвер это не тот драйвер, это MySQL-драйвер, надо качать с mysql.ru.

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 15 Апрель 2011, 0:13
Admin
NewUser писал(а):Ранее я никогда не занимался подобными вещами, поэтому опыт нулевой.
Читать, пробовать и опять читать. Всего всеравно не объяснишь...
NewUser писал(а):Что значит делать на одном MySQL сервере (по подробнее, пожалуйста)?
Не значит ли это, что прийдеться разворачивать у клиентов этот самый сервер?
Можно будет совместить в рамках одного приложения таблицы tps и ODBC?
У вас есть интернет магазин к примеру, крутится все на Linux сервере MySQL и Apache.
Сам магазин с MySQL работает нативно.
Программа менеджеров которые в офисе работают с заказами и т.д. подключается к MySQL на сервере.
Я бы посоветовал использовать библиотеку MAV для работы с SQL, но это еще время на обучение.
Наверное проще будет работать напрямую через ODBC. Как это делать на форуме по моему была информация.
Если не найдете, что нибудь придумаем...

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 15 Апрель 2011, 5:35
Admin
Все проверил, работает на ура... в общем...

1. Ставим MySQL сервер
2. Качаем mysql-connector-odbc-5.1.8-win32.msi с этого сайта
3. Устанавливаем ODBC connector
4. Какой либо утилей создаем таблицу в базе как на 000.png
5. Создаем пользовательский DSN как на рисунке 001.png и 002.png
6. Создаем словарь в Clarion и идем в импорт, импортируем из ODBC
7. Вводим данные как в введенном ранее DSN и выбираем нужную нам таблицу
8. Создаем стандартную апликаху с бровзом и процедурой редактирования записи
9. Компилируем - все работает.

Все

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 15 Апрель 2011, 21:47
NewUser
Огромнейшее спасибо Admin’у за столь подробный и обстоятельный тутариал!

Выполнил по нему все описанные 9 пунктов. А вот на десятом споткнулся.
В описанном в нем примере в свойстве таблицы Owner Name образуется строка: test,root, при котором мое приложение отлично видит локальную MySQL БД.
Для подключения к web-серверу я заменил содержимое Owner Name на глобальную переменную: !PATH: strConnect
в которую до открытия этой таблицы прописываю:
PATH:strConnect= 'Driver={{MySQL ODBC 5.1 Driver}; Server=178.235.177.71; PORT=3306;Database=brakbezb; UID(или USER)=brakbezb_User; PWD=*******'
При отркрытии окна с Browse’ом по данной таблице, получаю стандарное окно MySQL connector’а/ODBC.
Даже внося нужные данные в поля формы этого окна, получаю сообщение об ошибке соединения :(.

Полдня убил в попытках разобраться :evil: . Прошу опять помощи сообщества.

Готов выслать в личку реальные данные по БД, таблице, серверу.

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 15 Апрель 2011, 23:39
Дед Пахом
NewUser писал(а):Даже внося нужные данные в поля формы этого окна, получаю сообщение об ошибке соединения :(.
Ну значит что-то неправильно Вы вводите. Пока по кнопке "Test" не получите "Connection successful", вперёд не продвинетесь.

Re: Распределенная кларион-десктоп-сеть с web-координацией

Добавлено: 16 Апрель 2011, 1:02
Admin
Дед Пахом писал(а):
NewUser писал(а):Даже внося нужные данные в поля формы этого окна, получаю сообщение об ошибке соединения :(.
Ну значит что-то неправильно Вы вводите. Пока по кнопке "Test" не получите "Connection successful", вперёд не продвинетесь.
Вот вот. При редактировании DSN кнопку проверки жали?