Mysql стандартными шаблонами Clarion 10 ABC

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение gopstop2007 »

Есть свое приложение (С10 ABC на MAV ODBC, база Mysql), которое необходимо перевести не используя сторонние шаблоны для работы с Mysql через ODBC. Примеры которые есть в интернете очень старые. Интересуют настройки в dct, например необходимость в этих строках

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

/BINDCOLORDER=2 /BUSYHANDLING=2 /JOINTYPE=DB2 /VERIFYVIASELECT=TRUE
связи 1*many, автоинкремент, создание таблицы, создание триггеров и прочее. Появилось ли в С10, что то новое кроме известного sqlfile{PROP:SQL} с предварительно созданным в dct, для работы с запросами для Mysql через ODBC? Если есть примеры работы, шаблоны без блэкбокс, буду рад, можно в личку. :cat:
Последний раз редактировалось gopstop2007 11 Декабрь 2016, 18:15, всего редактировалось 1 раз.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение Дед Пахом »

Мы плотно работаем с MySQL, ничего подобного "/BINDCOLORDER=2 /BUSYHANDLING=2 /JOINTYPE=DB2 /VERIFYVIASELECT=TRUE" не прописываем. Для запросов юзаем свою надстройку над Dynamic driver.
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение kreator »

gopstop2007 писал(а):Появилось ли в С10, что то новое кроме известного sqlfile{PROP:SQL} с предварительно созданным в dct, для работы с запросами для Mysql через ODBC?
Мы запросы обрабатываем так. Создали в БД файл с одним полем типа Varchar (говорю о Firebird), в dct прописали этот файл, но уже 100 полей. И в программе к нему делаем prop:SQL. Чтобы каждый раз вьюхи кларионовские не строить. А что ещё нового ждать от SV?
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение Yufil »

Я на этом форуме описывал процедуру LoadQueueFromSQL, можно найти описание.
Она, правда, делалась для MS SQL, но и для MySQL адаптируется без труда. Там для извлечения данных с сервера вообще нужна ровно одна строка.

LoadQueueFromSQL('Select Name From $Person Where id=' & Loc:ID ,, Loc:Name)
LoadQueueFromSQL('Select Birthdate, Name From $Person Where id=' & Loc:ID ,, Loc:Birthdate, Loc:Name )
....

NameQ Queue
Id Long
Name Cstring(100)
End

LoadQueueFromSQL('Select Id, Name From $Person Where ....', NameQ, NameQ.Id, NameQ.Name)

Ну и так далее...
Силы и время экономит по-страшному :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение gopstop2007 »

Дед Пахом писал(а): Мы плотно работаем с MySQL, ничего подобного "/BINDCOLORDER=2 /BUSYHANDLING=2 /JOINTYPE=DB2 /VERIFYVIASELECT=TRUE" не прописываем. Для запросов юзаем свою надстройку над Dynamic driver.
мда, зря изголялся :) А как Join справочники с накладными (связь один*много) выводите в таблице, реляция между таблицами(отношения) в dct как для TPS создаете? У меня в Mysql INNODB используется.
kreator писал(а): Мы запросы обрабатываем так. Создали в БД файл с одним полем типа Varchar (говорю о Firebird), в dct прописали этот файл, но уже 100 полей. И в программе к нему делаем prop:SQL. Чтобы каждый раз вьюхи кларионовские/не строить. А что ещё нового ждать от SV?
не большое отличие от sqlfile{PROP:SQL} :)
Yufil писал(а): Я на этом форуме описывал процедуру LoadQueueFromSQL, можно найти описание. ...
Силы и время экономит по-страшному :)
Спасибо Yufil, попробую. :cat:
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение kreator »

gopstop2007 писал(а):мда, зря изголялся :) А как Join справочники с накладными (связь один*много) выводите в таблице, реляция между таблицами(отношения) в dct как для TPS создаете? У меня в Mysql INNODB используется.
А что не так? Clarion абсолютно правильно создаёт запросы по связям в словаре. Если нужна оперативная работа с таблицами, то достаточно связей в словаре, шаблоны, классы всё сделают как надо. А sqlfile{PROP:SQL} мы используем для каких-то аналитических запросов. Мы работаем с Firebird'ом, а он своеобразен. И, чтобы получить приемлемый результат по скорости, приходится изгаляться через "select from select" или использовать Derived Tables. В общем, в обычный броуз по-простому конструкцию не загнать.
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение Дед Пахом »

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

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение kreator »

Дед Пахом писал(а):На самом деле с JOIN иногда глючит, если в VIEW описано 3 таблицы и больше.
А что глючит? Не нарывался. Сижу плотно на десятке.
Дед Пахом писал(а):Мы для более-менее сложных случаев отказались от стандартных Browse - и из-за этого, и тормозные они.
То же самое. В чём тормоза? Мы делаем загрузку (Loading Method) типа "File". Все встроенные подзапросы стараемся пихать через вкладку "SQL Advanced". Единственное, согласен, идёт вызов методов и, кажется, не единственный раз (по логике не понятно зачем). Но несколько раз данные по сети не гоняет (Есть такое мнение у народа). Опять же, может быть, потому что десятка.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение kreator »

Для примера, броуз по нескольким таблицам.
1.jpg
И это ещё не все нужные таблицы. Некоторые значения из не подвязанных таблиц вытаскиваются через подзапросы.
We are hard at work… for you. :)
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение RaFaeL »

kreator писал(а): Мы делаем загрузку (Loading Method) типа "File"
Т.е. если у вас в справочнике допустим 10000 контрагентов то грузите сразу 10000? И не тормозит?
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение kreator »

RaFaeL писал(а):Т.е. если у вас в справочнике допустим 10000 контрагентов то грузите сразу 10000? И не тормозит?
В любом случае нужно думать головой прежде чем отображать всех. Но 10000 не тормозит, незаметно даже. Есть у нас таблица ~130000 записей. Вот это дело вываливается секунд за 4-5. Это да. Но тут ещё пересылка по сети таких объёмов даёт знать. И хочу отметить Firebird, который очень странно кэширует данные. Нет у него опции "засунь всё в оперативку". И, надо заметить, что при таких списках есть проблема у контрола List, в частности неправильно работает ползунок.
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение Дед Пахом »

kreator писал(а): А что глючит? Не нарывался. Сижу плотно на десятке.
Насколько помню, {prop:SqlFilter} начинает путать таблицы. Вроде бы это лечилось ключом /JOINTYPE, но осадок остался. Так что отказались от VIEW ещё в 8-ке, теперь практически всё в связке DynaDrv+EasyListView.
Стандартный Browse тормозит не по-детски, к примеру, при закрытии формы.
С уважением, ДП
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение Yufil »

Предпочитаю данные подкачивать по SetQueueRecord, включая во View только основные поля (предельный случай - только идентификатор записи), а остальные подгружая по мере необходимости (описанной выше LoadQueueFromSQL). Если действительно загружается много записей, а смотрится, наоборот, немного - оптимальный вариант. Ну, можно ещё покэшировать кодификаторы....
PavelNK
Старожил
Сообщения: 262
Зарегистрирован: 15 Март 2011, 8:02

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение PavelNK »

Все гораздо проще и лучше. Работайте через ADO, чрезвычайно удобно и быстро. Позволяет реализовать все, что делается в других языках и средах. Пример я выкладывал. И его даже несколько раз выкладывали повторно.
PavelNK
Старожил
Сообщения: 262
Зарегистрирован: 15 Март 2011, 8:02

Mysql стандартными шаблонами Clarion 10 ABC

Сообщение PavelNK »

Позволяет без проблем работать с любыми SQL-серверами. Пробовал лично Oracle, FireBird, MySQL, MSSQL, проблем нет!
Ответить