Этот раздел посвящен М-технологиям и, в основном, СУБД Caché.
Список ссылок на различные ресурсы по М-технологиям,
Cache и другие.
Проект MiniM
Страница проекта М-системы моей разработки.
Вакансии для программистов Каше.
Для помещения объявления о вакансии пришлите текст объявления письмом на
ekarataev@mail.ru.
Callout - плагины для Cache
Шарымов Михаил, MUMPS и Объекты
Один из вариантов добавления к языку MUMPS объектов.
Модернизированный Makova Global Viewer для каше 5.0 и выше, который может
работать как с 8-битовой каше так и с юникодовой каше с русскими символами.
Download glview.zip
Если установлен оригинальный Makova Global Viewer, то нужно заменить
glview.exe на клиенте и zmrobjXXX на сервере.
История (Hardhats) «Каски»
Перевод Александра Концедалова истории создания программной системы
Hardhats.
Александр Концедалов, письма.
История началась.
MUMPS – Масачусетские утилиты
многопрограммной системы.
Появление MUMPS в СССР
ПЕРВАЯ КОНФЕРЕНЦИЯ ПОЛЬЗОВАТЕЛЕЙ MUMPS в СССР:
1985 год
Вторая конференция
пользователей MUMPS в Алма-Ате в 1986 г.
Ассоциация «Союз-ДИАМС»
Советский MUMPS: системы MIDUS и NTSM.
Встреча MUMPS-миров: американцы в Москве.
Интервью.
Интервью с Константином Аристовым
Интервью с Александром Дроздовым
Интервью с Алексеем Коломийцем
Заметки и другие материалы:
Пользовательский интерфейс для "горячего"
монтирования разных CACHE.DAT в один namespace.
Как позволить пользователям самим устанавливать старую базу (по сути файл
Cache.dat) в namespace предназначенный для просмотра архивных баз.
Автор Артем Рева.
Чем мне не нравится SQL.
Взгляд мампсера на SQL.
Cache + BCB: Датасет для SQL запросов.
Василенко Богдан. Мне захотелось иметь такой компонент который бы фетчил все
что угодно. Переписывать Борландовские компоненты и урезать в них некоторые типы
было бы глупо и трудоемко, я решил написать свой собственный на базе
CacheObject и TRxMemoryData.
Cache': Где наша переменная цикла?
С какой переменной работает команда циклов for в cache?
Вывод данных на веб страничке с помощью
ActiveX ListView (только IE)
Как используя Cache CSP и ActiveX вывести на html страничке
информацию из базы данных. Автор Артем Рева.
Cache': Как написать свою функцию агрегации
для group by?
В некоторых случаях при использовании выборки с группировкой
(group by) хотелось бы использовать свой алгоритм агрегации значений.
Как это сделать в Cache?
Cache': Как параметризовать select from in?
Как в cache sql передать через параметр несколько значений в выражение in?
Cache': Как сделать select from limit
В некоторых случаях при использовании sql нужно ограничить выборку числа
строк, указав, с какой строки выдать и сколько строк выдать. Как сделать то же
самое в Cache?
Cache': Как развернуть значение параметра в несколько
строк
В некоторых случаях при использовании хранимых процедур ну очень
хочется иметь механизм получения нескольких строк в select где значения строк
определяются содержанием параметра запроса. Как это сделать в Cache?
Cache': Как сделать select from dual
В некоторых случаях при использовании хранимых процедур ну
очень хочется иметь механизм аналогичный псевдотаблице
dual из Oracle. Как сделать то же самое в Cache?
М-программисты настолько суровы...
Насколько же суровы М-программисты?
MSM: Компиляция исходных текстов
Как скомпилировать в MSM программу, использующую директивы препроцессора.
Автор Александр Павлов.
Создатель инсталяций серверной
части для Intersystems Cache 5.
Программа позволяет установить в произвольную область на сервере
глобалы, классы и программы заранее выгруженные в соответствующие
файлы, стандартными средствами Cache.
Автор Василенко Богдан.
Cache': Дефект в косвенности аргумента
команд
При исследовании особенностей выполнения argument indirection в различных
реализациях MUMPS, я натолкнулся на дефект его реализации в cache и msm.
Cache': Пишем инсталлятор
программ для локальной Cache на InnoSetup
Как вставить в инсталлятор сделанный на InnoSetup импорт
и исполнение кода в каше не используя VisM и CacheObject.
Cache': Иконки Cache'-куба
Как сменить иконки каше-куба в трее, чтобы различить несколько
инсталляций каше. Автор infer_no.
Cache': Обращаемся к своему свойству.
В методе объекта обратиться к своему свойству можно 4-мя способами.
Когда какой предпочтительней и какая между ними разница?
Cache': О безопасности csp приложений.
Что я рекомендую сделать для повышения безопасности Cache' при
выставлении csp приложений в интернет.
Cache' Backdoors Guide
Какие меры надо принять после инсталляции Cache' чтобы повысить
безопасность инсталляции. Автор Антон Умников.
MUMPS: Очередность выполнения и вычисления
выражений.
В какой последовательности вычисляются выражения и выполняются
операции, нюансы mumps.
SMWrap: События, публикация и подписка.
Как можно использовать дополнительный механизм межпроцессного
взаимодействия в программах на SMWrap.
SMWrap: Как выполнить скрипт на клиенте.
Как в программе на SMWrap выполнить скрипт на языке VBScript или
JavaScript на клиентской стороне?
SMWrap: Как сделать имитатор гиперссылки.
Как в программе на SMWrap сделать гиперссылку, при клике по которой
работало бы http: или mailto: как в браузере?
Инсталляция ZMRPMD на Cache 5.2
Что нужно сделать если штатные средства инсталляции серверной части
Makova SMWrap или Makova Global Viewer на Cache 5.2 по каким-либо причинам не
подходят.
Cache': О непечатном
Как посмотреть что именно содержится в строке если команда write выводит
какие-то непонятные непечатные символы?
Cache': Где наши данные?
Как получить доступ к данным с нестандартным размещением через
объектный и sql интерфейсы?
Cache: Ищем в потоке или в сегментированных данных
Как найти подстроку в потоке или в данных, которые представлены
последовательностью строк?
Cache': Торможение при индексировании
Как можно улучшить временные характеристики при индексировании большого
количества данных.
Cache': Как в списке удалить или вставить элементы?
Если есть список полученный с помощью $listbuild(), то как в нем вставить
другие элементы в заданной позиции или удалить элементы из заданной позиции? Как
взять подсписок из списка?
SMWrap: Инсталляция вручную.
Как установить SMWrap вручную для случаев когда автоматические средства
штатного инсталлятора не подошли по каким-либо причинам.
Cache emergency mode
Что можно сделать если забыт пароль администратора инсталляции Каше 5.2.
Автор infer_no, по материалам InterSystems.
Cache': Удаляем русскую локализацию.
Краткий набор правил как удалить русскую локализацию Каше если она по
каким-либо причинам не устраивает или мешает. Автор infer_no.
Cache': zobj команды и $zobj функции.
Список документированных (в некоторых версиях) и недокументированных zobj
команд и $zobj функций. Список получен сборкой информации из различных
источников и конечно не претендует на полноту. Материал может быть интересен тем
кому требуется оперировать объектами на низком уровне.
Портал Управления Системой Cache' 5.1 и User
StartUp
Как преодолеть незапуск сервера при ошибке в startup. Автор infer_no.
Каждый может ошибиться, и нужно знать что делать чтобы ошибку исправить.
Доступ к MSSQL из Cache' на платформе Linux
Как можно организовать связь cache' на linux в качестве клиента и MSSQL
в качестве сервера. Перевод на английский
язык.
Заметка Алимова Игоря, перевод Тимура
Сафина.
Универсальный MUMPS-commander
Менеджер для работы с routines/globals в MUMPS системах.
Работает под следующими MUMPS системами: msm (4 версия и выше), cache,
m21, m3-Lite, gtm. Автор
Андрей Вологдин
Cache': Просмотр базы read-only
Вариант решения проблемы с просмотром глобалов в проводнике в базе
данных, смонтированной только на чтение.
Cache': Политика обработки ошибок в приложениях.
Данный документ представляет собой пример "политики по обработке ошибок".
Сформулированные здесь правила представляют собой свод проверенных на практике
приемов и решений по обработке ошибок в Cache приложениях. Вы можете
использовать ее в качестве примера для разработки правил обработки ошибок в
своем коллективе.
М-системы: нестандартный $tr
Оригинальные способы использования функции $tr для перестановок символов.
M-системы: проверка корректности синтаксиса
Как проверить синтаксическую корректность строки под Cache и MSM.
Cache': восстановление иконки в трее
Как восстановить иконку Каше Куба в системном трее если она
пропала по каким-то причинам.
Cache': перехват текущего устройства
Описание возможности организовать перехват операций ввода-вывода с
текущим устройством.
Комментарии в Cache.
Описание какие комментарии бывают в Cache и как ими можно пользоваться в
полезных целях.
Программа для прямого доступа к Cache.
Программа состоит из серверной части (mdapi), устанавливается в Cache и
запускается фоновым заданием, и набора библиотек для взаимодействия по
TCP/IP с сервером. Есть библиотеки для Delphi, Java, C++. Автор Максим
Мержвинский.
Cache': отладка callout-модуля
Приводится способ запуска cache.exe в качестве хост-программы для отладки
callout-модуля.
CacheObject: SetOutput в Delphi.
Приводится техника использования callback - функциональности CacheObject в
Delphi.
Смотрим план запроса
Краткая csp - утилита показа плана выполнения sql - запроса.
CSP: делаем отчет в pdf
Приводится вариант получения на сервере отчета в формате pdf с
использованием механизма csp и csp тегов.
Борьба с deadlock.
Приводится вариант решения проблемы deadlock используя разбиение блокировок
на упорядоченные группы.
Три трюка с макросами.
Приводятся трюки применения
макрокоманд и их возможностей для облегчения работы.
Использование плагина ekscr для чтения лога
сообщений
Описание схемы и пример применения скрипта на языке perl с
хранением тела скрипта в комментариях программы на COS.
Использование плагина ekscr для построения отчета на
сервере
Описание схемы и пример генерации на сервере отчета с использованиям средств
Microsoft Office.
Caché: профилируем программу
Небольшое описание использования утилиты ^%MONLBL для профилирования
выполнения программы.
Проверка строки на "списочность"
Функция на M проверки является ли строка потенциально корректным списком.
В некоторых случаях это важно.
SMWrap: Пример использования в отчетах секции
GroupHeader
Описывается техника использования в отчетах SMWrap банда типа GroupHeader.
Демонстрируется на простеньком примерчике.
ZMRPMD: Настройка алиасов на клиентских машинах
Описывается механизм хранения алиасов и их использование при
администрировании большой сети.
Как сделать двунаправленный запрос
Описание способа реализовать sql-запрос, который можно прокручивать
в обоих направлениях. Вариант опирается на предположение о внутреннем
поведении sql-движка Cache' и проверялся на версии 4.1.9.
Cache': Передача аргументов
Описание вариантов передачи аргументов функций на Cache Object
Script. Варианты передачи фактических и приема формальных.
Cache': перенос классов без исходников
Описание варианта переноса класса Cache' без раскрытия исходного
кода.
Cache': техника группировки
Описание методики группирования данных - виды, плюсы, минусы.
Caché: Прямой доступ через CacheObject
Описание методики получения прямого доступа через COM - библиотеку
CacheObject. Пример демонстрируется на Perl - клиенте.
Caché: Прямой доступ через ODBC
Описание несколько нестандартной методики получения прямого доступа
к СУБД Caché из ODBC - клиента. Описывается механизм прямого чтения,
записи,
косвенного выполнения выражения и получение результата работы выражения,
выводящего
данные в текущее устройство. В качестве проверочных примеров приводится
компиляция
класса из ODBC - клиента и просмотр контекста работы ODBC шлюза Caché
изнутри
процесса. Пример демонстрируется на Perl - клиенте.
Пишем генератор диалоговых окон для SMWrap
Описание визарда диалогового окна SMWrap, написанного на SMWrap.
Визард запрашивает параметры диалогового окна, создает необходимый класс,
компилирует
его и запускает полученное окно на выполнение, демонстрируя результат. Форма
генерируется
в формате, позволяющем ее последующее редактирование SMWrap Developer.
Рекомендации по написанию диалоговых окон.
Общие рекомендации, следование которым позволит в большинстве
случаев избежать досадных ошибок интерфейса. Рекомендации общего характера по
диалоговым
окнам в графическом пользовательском интерфейсе. Не все программы их
придерживаются,
а жаль.
Некоторые документы по работе с Caché
SQLStorage и Caché CustomStorage
Материалы опираются на устаревший
язык описания классов CDL. В современных версиях Каше компания ИНтерсистемс
рекомендует использовать XML описания.
Проектирование для иерархических баз данных
Приемы проектирования схемы данных для иерархических
баз данных. Применение индексов частного вида, приемы нормализации и
денормализации
схемы. Эволюция схемы данных.
Директивы препроцессора Cache
Неофициальное описание директив препроцессора Cache. Приведены для версии 3.2.2.
Большинство
из них должно работать и на других версиях. В официальной документации описание
препроцессора
недостаточно для полноценного использования, поэтому это описание может
оказаться весьма
полезным. Все приведенные директивы были проверены. Описания собраны по
отдельности
из различных источников и гарантии полноты списка дать не могу. Если будут
дополнения,
пришлите, добавлю в список.
Вырабатываем командный голос или zz-команды в
Cache
Краткое описание создания пользовательских zz-команд в Cache.
Вызываем Cache!
Набор рецептов по соединению с базой данных Cache и обращению к ее объектам
из клиентских программ, написанных на разных языках программирования.
Apache - CSP - Cache'
Описание для программистов способа настройки Apache и CSP. По шагам и понятно.
Создание пользовательских z-переменных и z-функций
в Cache'
Описание правил создания пользовательских z-переменных и z-функций. Просто и
понятно.
Вызываем метод базового класса на COS
Два способа вызвать переопределяемый метод базового класса на языке
CacheObjectScript.