Открытое письмо: MAV Direct ODBC

Автор: Игорь Толмачев

Дата публикации: 06.07.2005 в рассылке ClaList

Редактор: Still Zero

Решил написать своё субъективное мнение о работе на симбиозе SQL & Clarion , извините, если будет слегка сумбурно, т.к. времени, как обычно, не хватает. ClaList даже не всегда читаю…
До 2000 года последовательно (иногда параллельно DOS-WINDOWS) работал (один или в команде) со всеми версиями Клариона на *.DAT и *.TPS. Тут появляется перспектива обработки больших массивов данных + много пользователей + другие разработчики чистые FoxPro-шники.

Рассказ охватывает 2000 — 2005 годы…

Логично у всех новых задачек создавать базы на SQL — выбран микрософтовский (основной аргумент — доступность литературы).
Где-то в это же время решил изучить ABC-шаблоны, т.к. Легашные дальше не развиваются, а эти будут лучше и лучше. Нырнул в доку — интересно, интересно, … тускло, кисло. Может дебаггер поможет? С Легаси помогал…
Попробовал — что-то надо выбросить или дебаггер или ABC. Столько наверчено, наверчено… Нет, работать на них можно, но зачем, если есть простой набор Легаси + поддержка ООП? Круто, конечно, использовать АБС — одно сплошное ООП, но использовать технологию ради технологии — бред (имхо).
На курсы в Арсис даже съездил — надежда была на две вещи:

1) всегда хорошо повторить то, что знаешь — открываются новые грани предмета (возможно)

2) всё-таки может ABC?

По первому вопросу — интересно + кларионисты — с разных мест России. А вот по ABC-шаблонам мнение не изменилось. Легаси лучше, чем ABC — не сковывает лишними поворотами-наворотами.
Знакомые предложили использовать ШВС — мол, русифицированные и вычищенные от известных ошибок стандартные Легаси + доп. возможности. Перешёл — не жалел. Кроме доступа к SQL. Доступ к SQL, что на ABC, что на Legacy (или ШВС) — кривенько: полный тормоз бровз (сравнение с Query Analizer) плюс извращения: при необходимости выборок ручками PROP:SQL, PROP:FILTER.
Далее история такая: звоню в Арсис, чтобы проконсультироваться по вопросу связанному с выборкой данных в SQL — в Интернете шли разговоры про драйвер ODBC, разработанный нашими соотечественниками, хотел узнать подробнее. Дозвонился — что-то рассказали, а потом переключил на Андрея Мялина, и он предложил использовать его библиотеку, а затем и набор шаблонов, слегка объяснив, какие будут плюсы при программировании, при использовании его библиотеки.
Попробовали поработать с MAVDirect. Классы понятные, методы и свойства логичные. А лёгкость ручной выборки данных хоть в переменные, хоть в очередь! Просто использование хранимых процедур как таковых для обработки данных на сервере, так и для загрузки данных в бровзу, т.е. параметризованный запрос онлайн! И не надо извращений через временные таблицы SQL для каждого пользователя! Да, ещё большой плюс: хотя можно все выборки оформлять вьюхами (но толще словарь), а при использовании его библиотеки добавляешь ключи к таблицам в словаре и связываешь как тебе надо и получаешь запрос легко и просто. Функция пользователя (UDF MS SQL2000) возвращает табличные данные — я объявил для нее в словаре таблицу навешал на неё четыре ключа (один а ля Primary и три для связки) — связал с тремя другими таблицами-справочниками — пожалуйста бровза за пять минут. Да, тут были ситуации, которые упираются в ограничения Клаши — но обходятся:

1) Связать надо таблицу со справочником видов валют два раза (в чём должны и чем платить): через объявление алиаса на справочник валюты и подвязки его к родительской таблице. Затем в Table shematic — и всё.

2) Связать через словарь вообще невозможно — т.к. для вытаскивания наименования из справочника надо использовать данные двух таблиц (например, из детали и шапки счёта) — тогда ручками в метод класса загрузки бровзы добавляется две строчки (условие ON для LEFT OUTER или INNER), а в табл схематик этот справочник добавляется в раздел OTHER, чтобы добавить в ?List.

Купили на фирму его набор, и не жалел никогда, даже когда глюки ловились в библиотеке, т.к. Андрей её развивает постоянно и новый функционал бывает не полностью рабочим, но на это существуют тестовые пользователи, которым выкладываешь обновлённые версии своего уже ПО. У меня тестовых юзеров человек 15 и они знают, что может у них проскочить глюк, которого у соседей и не будет, но никто не ругает, т.к. всё по человечески было объяснено (к пользователям надо искренно относиться — для них же работаем).
Поддержка по горячей линии у Андрея очень оперативная — буквально на следующий день можно получить исправления.
Год назад, когда общался с руководством, говорил, что мол даже, если Андрей больше не будет развивать шаблоны, уже можно не дёргаться с переходом на другое ПО разработки, т.к. надёжность работы Clarion 5.5g + Legacy + MAV (Direct ODBC + Template + E3DStyle + EasyListPrint) — факт. А того, что нет в шаблонах для быстрой разработки интерфейсов, потихоньку можно и самим наработать. Например, пришлось создать свой классик мультивыбора из бровз для перекрёстных таблиц с загрузкой и сохранением через методы класса. На сегодня его уже в новых интерфейсах не используем, т.к. в библиотеке А.Мялина такой класс появился (но, сохранение и загрузка выбранных записей — своя надстройка над его классом).
Недавно знакомые купили его набор библиотек и шаблонов — те же впечатления — уже можно работать, не требуя новенького от Андрея. Но всегда хочется большего…

Хотите одну таблицу (вьюху, UDF, хранимку) несколько раз в одном окне смотреть — пожалуйста. Хотите её смотреть, то в виде дерева, то плоской — не сумлевайтесь (RunTime переключение).
Большой плюс — общие настройки всех типов бровз — простая, дерево, дроплист. Всё всегда в одном месте.
Набор фильтров-шаблонов на бровзу… Добавление дочерних записей в очередь и запись в таблицу только после записи родителя. Практически везде есть EMBED-ы понятными названиями…
Полгода назад он добавил возможность включения в трассу библиотеки своих сообщений, так вообще можете проследить всё очень подробно, что за чем случилось. Намного удобнее стопиков (stop) и мессаг (message), т.к. всё в одном месте протоколируется: и запросы выборки данных и интерфейсные события.
Вообщем, красивая версия SQL-шаблонов 🙂

Сначала попробовать — согласен это важный вопрос… Версия с ограничениями может не показаться, а без ограничений… Вообщем, к разработчику.

По поводу Freeware — сыр и мышеловка в принципе.
Я считаю, что заплатить российским разработчикам программных средств — святое дело — надо напрягать руководство к оплате ПО, если оно, конечно, нужно для работы. Я даже платил свои личные деньги, хотя я их тоже не в кармане выращиваю. А клич Вадима видимо прошёл мимо меня (Примечание редактора: упоминается Вадим Синявский, автор бесплатных «Шаблонов Вадима Синявского ШВС», на которых по его словам в свое время работало 150 человек, он «очень давно» просил помочь в приобретении компьютера пользователей шаблонов, откликнулись 4 человека. Пользуясь случаем Вадиму Синявскому от меня respect).
Году 1991 я занял денег на свой личный компьютер, а не полученный от фирмы для работы. И четыре месяца практически без сна и отдыха программировал на CPD 2.x -страшно вспомнить, но отработал. Больше на такие авантюры не пускался, но для себя запомнил этот каторжный труд, который и привёл меня к тому, что на весь мир не хватит, а российским разработчикам помогать по возможности надо.
Сладкая каторга…
Народ привык, конечно, к бесплатности ШВС, но не думаю, что если Вадим выпустит платную версию в указанном ценовом диапазоне, что купит всего три-четыре человека.
И по поводу проблем платной версии: шаблоны-то отлажены давно (я на них работал в 2002 году — вроде бы глюков то и не было), может мелкие огрехи. Так это песок…
Да и можно вставить фразу, которую я вижу везде: используется как есть, никакие потери в данных и в оборудовании не могут быть отнесены к работе данного ПО…»