Что такое код localrealloc

LocalReAlloc

Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

This function changes the size or the attributes of a specified local memory object. The size can increase or decrease.

Parameters hMem [in] Handle to the local memory object to be reallocated. This handle is returned by either the LocalAllocor LocalReAlloc function. uBytes [in] New size, in bytes, of the memory block. If fuFlags specifies the LMEM_MODIFY flag, this parameter is ignored. fuFlags [in] Flag that specifies how to reallocate the local memory object. If the LMEM_MODIFY flag is specified, this parameter modifies the attributes of the memory object, and the uBytes parameter is ignored. Otherwise, this parameter controls the reallocation of the memory object.

The LMEM_MODIFY flag can be combined with the flag listed in the following table.

Value Description
LMEM_MOVEABLE You cannot combine LMEM_MOVEABLE with LMEM_MODIFY to change a fixed memory object into a movable one. If you do, the function returns an error.

If this parameter does not specify LMEM_MODIFY, this parameter can be any combination of the flags listed in the following table.

Value Description
LMEM_MOVEABLE Enables the memory allocation to move if it cannot be allocated in place.
LMEM_ZEROINIT Causes the additional memory contents to be initialized to zero if the memory object is growing in size.

A handle to the reallocated memory object indicates success. NULL indicates failure. To get extended error information, call GetLastError.

If LocalReAlloc fails, the original memory is not freed and the original handle and pointer are still valid.

If LocalReAlloc reallocates a movable object, the return value is a handle to the memory object.

If LocalReAlloc reallocates a fixed object, the value of the handle returned is the address of the first byte of the memory block. To access the memory, a process can simply cast the return value to a pointer.

Runs on Versions Defined in Include Link to
Windows CE OS 1.0 and later Winbase.h Lmem.lib

Note This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

LocalReAlloc

Описание

function LocalReAlloc(Mem: THandle; Bytes, Flags: Word): THandle;

Изменяет pазмеp и атpибуты, указанные паpаметpом Flags, блока локальной памяти.

Паpаметpы

  • Mem: Идентификатоp блока локальной памяти.
  • Bytes: Новый pазмеp блока Mem в байтах.
  • Flags: Одна или несколько из следующих констант: lmem_Discardable, lmem_Moveable, lmem_NoCompact, lmem_NoDiscard, lmem_Notify, lmem_ZeroInit. См. pаздел «Флаги локальной памяти, lmem_» в главе 1.

Возвpащаемое значение

В случае успешного завеpшения — идентификатоp блока локальной памяти; 0 — если ошибка.

Что такое код localrealloc

Changes the size or the attributes of a specified local memory object. The size can increase or decrease.

Syntax

Parameters

A handle to the local memory object to be reallocated. This handle is returned by either the LocalAlloc or LocalReAlloc function.

The new size of the memory block, in bytes. If uFlags specifies LMEM_MODIFY, this parameter is ignored.

The reallocation options. If LMEM_MODIFY is specified, the function modifies the attributes of the memory object only (the uBytes parameter is ignored.) Otherwise, the function reallocates the memory object.

You can optionally combine LMEM_MODIFY with the following value.

Allocates fixed or movable memory.

If the memory is a locked LMEM_MOVEABLE memory block or a LMEM_FIXED memory block and this flag is not specified, the memory can only be reallocated in place.

If this parameter does not specify LMEM_MODIFY, you can use the following value.

Value Meaning
LMEM_MOVEABLE 0x0002

Causes the additional memory contents to be initialized to zero if the memory object is growing in size.

Return value

If the function succeeds, the return value is a handle to the reallocated memory object.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Remarks

If LocalReAlloc fails, the original memory is not freed, and the original handle and pointer are still valid.

If LocalReAlloc reallocates a fixed object, the value of the handle returned is the address of the first byte of the memory block. To access the memory, a process can simply cast the return value to a pointer.

Requirements

Minimum supported client

Windows XP [desktop apps | UWP apps]

Minimum supported server

Windows Server 2003 [desktop apps | UWP apps]

Использование LocalAlloc и LocalRealloc

У меня есть приложение Visual Studio 2008 C ++ Windows Mobile 6, в котором я использую API-интерфейс FindFirst ()/FindNext() для получения коллекции элементов. Я не знаю, сколько предметов будет в списке раньше времени. Поэтому я хотел бы динамически выделять массив для этих элементов.

Normally, I would use a std::vector<> , but, for other reasons, that’s not an option for this application. So, I’m using LocalAlloc() and LocalReAlloc() .

То, что я не понимаю, — это то, что эта память должна быть маркирована фиксированной или подвижной. Приложение работает отлично в любом случае. Мне просто интересно, что правильно.

Изменить: ответчики (не необоснованно) получают зависание при использовании LocalAlloc() над другими лучшими параметрами. Поэтому я предоставил больше контекста.

Этот фрагмент кода выполняется из встроенной DLL-библиотеки RAPI. Таким образом, в этом контексте он выглядит более как это:

Приложение должно выделять память для параметра pInput с помощью функции LocalAlloc. Вызывающий абонент отвечает за освобождение pInput. Система выделяет память для параметра ppOutput. Когда приложение будет заполнено буфером, оно должно освободить память с помощью функции LocalFree.

Прочитайте онлайн СПРАВОЧНИК ПО WinAPI | LocalReAlloc

Описание: function LocalReAlloc(Mem: THandle; Bytes, Flags: Word): THandle;

Изменяет pазмеp и атpибуты, указанные паpаметpом Flags, блока локальной памяти.

Паpаметpы:

Mem: Идентификатоp блока локальной памяти.

Bytes: Новый pазмеp блока Mem в байтах.

Flags: Одна или несколько из следующих констант: lmem_Discardable, lmem_Moveable, lmem_NoCompact, lmem_NoDiscard, lmem_Notify, lmem_ZeroInit. См. pаздел «Флаги локальной памяти, lmem_» в главе 1.

Возвpащаемое значение:

В случае успешного завеpшения — идентификатоp блока локальной памяти; 0 — если ошибка. функция находится в файле kernel32.dll

Глава 18. Репликация баз данных.

Репликация баз данных

Что такое репликация? Это средство организации работы одного или нескольких пользователей с одним и тем же документом, базой данных или другими-файлами на разных компьютерах независимо, без одновременного доступа к файлам, но когда требуется поддерживать некоторую общую версию изменяемых файлов, содержащую в себе все последние исправления, сделанные независимо. Более конкретно, репликация — это процесс создания копий файлов, между которыми может осуществляться обмен обновляемыми данными или объектами. Такие копии называются репликами, а такой обмен — синхронизацией.

Когда нужна репликация? Microsoft приводит два примера необходимости в такой организации работы.

  • Вы — агент по продажам и совершаете поездки для посещения клиентов. Перед поездкой вам нужно просмотреть последние заказы и маркетинговые тенденции клиентов, которых вы собираетесь посетить. Эта информация хранится в базах данных о клиентах и заказах вашей компании. Вы загружаете данные о клиентах на свой переносной компьютер. Во время посещения клиента вы обновляете загруженную информацию о клиенте, например: номера телефонов, адреса E-mail и прочую персональную информацию о клиенте на вашем переносном компьютере, а также вносите туда информацию о новых заказах. Однако вам необходимо закончить работу с заказами как можно быстрее. В конце дня вы подключаетесь по Интернету к сети вашей компании через защищенное удаленное соединение и обновляете базы данных о клиентах и заказах. Конфликты данных автоматически разрешаются благодаря имеющимся бизнес-процедурам. После этого вы печатаете и отправляете клиенту по факсу отчет о принятии заказа или отправляете снимок отчета по E-mail, который клиент может просмотреть с помощью программы Просмотр снимков (Snapshot Viewer).
  • Вы — разработчик программного обеспечения и хотите закончить работу с приложением вашей компании, отслеживающим статистику об обнаружении и исправлении ошибок в проекте, дома, где нет необходимого или защищенного доступа к корпоративной сети. Вы забираете данные только о ваших ошибках, помещая их на свой переносной компьютер, и отключаете его от корпоративной сети. Затем приходите домой и работаете с имеющимися данными, изменяя поля статуса ошибки и прочие поля с информацией об ошибке. На следующий день* вы подключаете свой переносной компьютер к корпоративной сети и легко син-* хронизируете свои изменения с приложением вашей компании, отслеживающим; статистику ошибок в проекте.

Существует несколько средств репликации баз данных, проектов Access и других файлов.

  • Портфельная репликация — средство операционной системы Microsoft Windows. Оно позволяет осуществлять репликацию файлов многих типов, в том числе баз данных Access (файлов MDB), исключая проекты Access (файлы ADP).
  • Репликация баз данных и проектов средствами Access — встроенные средства Microsoft Access. Они предназначены для репликации баз данных и проектов Access.
  • Репликация с помощью Диспетчера репликации Microsoft — полнофункциональное средство управления репликами, планирования синхронизации и просмотра элементов набора реплик. Диспетчер репликации входит в комплект средств разработчика Microsoft Office 2002 Developer Edition. Описание Диспетчера репликации (Replication Manager) можно найти в документации этого комплекта.
  • Репликация файлов на сервере Web — средство сервера Web фирмы Microsoft. Оно позволяет работать с файлами, сохраненными на узле Web, в автономном режиме — без подключения к серверу.
  • Программная репликация с помощью интерфейсов DАО и JRO. Создание и управление репликами баз данных Access может осуществляться программно — в процедурах на VBA. Разработчики приложений Access могут обеспечить автоматическую синхронизацию реплик и прочие действия, связанные с репликацией, используя специальные свойства и методы объектов из библиотек VBA: Объекты репликации и Jet (JRO) для репликации баз данных Access 2000 и выше и Объекты доступа к данным (DАО) для репликации баз данных более ранних версий — Access 95 и 97.

Репликация включает следующие действия:

  • выбор средства репликации;
  • создание реплик;
  • синхронизация реплик;
  • управление репликами.

Способ выполнения перечисленных действий зависит от выбранного средства репликации. Мы рассмотрим основные вопросы, касающиеся использования перечисленных средств репликации, но не будем касаться темы программирования. Дополнительную информацию о репликации можно найти в справочной системе Access 2002.

Портфельная репликация является удобным способом поддержания файла базы данных в обновленном состоянии при работе с ним на разных компьютерах, которые лишь иногда соединяются посредством кабельного соединения (локальной сети или прямого кабельного соединения), или обмен данными между ними выполняется с помощью переносного диска. В этом случае файл базы данных можно поместить в Портфель, чтобы потом поместить его на переносной компьютер. При этом создается новая реплика, которая может быть синхронизирована с базой данных на стационарном компьютере.

Предположим, вы ведете на своем персональном компьютере список контактов с помощью базы данных «Контакты». Вас отправляют в командировку на несколько дней, но вам необходимо постоянно использовать эту информацию, сохраненную на вашем компьютере. В этом случае следует применить средства портфельной репликации.

Сначала создайте базу данных «Контакты». Для этого можно использовать Мастер создания базы данных Access:

  1. Выберите команду Файл, Создать (File, New). Появится панель Создание файла (New File). В разделе Создание с помощью шаблона (New from template) Щелкните по гиперссылке Общие шаблоны (General Templates).
  2. Раскройте вкладку Базы данных (Databases) (рис. 18.1).
  3. Дважды щелкните по ярлыку Контакты (Contact Management).
  4. Откроется окно, в котором следует выбрать папку для сохранения новой базы данных и имя файла. Выберите папку \Мои документы (\Му Documents) и введите имя файла Контакты.mdb. Нажмите кнопку Создать (New).
  5. Запустится Мастер создания базы данных по шаблону Контакты (Contact Management). Следуйте предлагаемым инструкциям.

Рис. 18.1. Вкладка Базы данных диалогового окна Шаблоны

После того как база данных будет создана и заполнена необходимой информацией, закройте ее. Чтобы иметь возможность работать с базой данных на портативном компьютере, создайте реплику с помощью средства портфельной репликации и поместите ее на портативный компьютер.

Чтобы создать реплику базы данных «Контакты»:

  1. Закройте Access и запустите Проводник. Раскройте папку \Мои документы, в которой хранится база данных Контакты.mdb. Нормализуйте окно Проводника, нажав кнопку Восстановить (Restore) в правом верхнем углу окна.
  2. Перетащите с помощью мыши базу данных «Контакты» на значок Портфель (Briefcase) на рабочем столе Windows.

В Windows 2000 значок Портфель (Briefcase) изначально не отображается на рабочем столе. Откройте Проводник, раскройте любую папку, в которой хотите создать новый Портфель, и выберите команду Файл, Создать, Портфель (File, New, Briefcase) или щелкните правой кнопкой по пустому месту в этой папке и выберите команду Создать, Портфель (New, Briefcase) в контекстном меню. В качестве такой папки можно выбрать и Рабочий стол (Desktop). Выполните шаг 2.

  1. Начнется процесс обновления Портфеля. Если Портфель используется впервые, появится диалоговое окно Создание Портфеля Windows (Welcome to the Windows Briefcase) (рис. 18.2).

Рис. 18.2. Диалоговое окно Создание Портфеля Windows

  1. Через некоторое время будет отображено сообщение, требующее подтвердить выполнение репликации (рис. 18.3). Нажмите кнопку Да (Yes).
  2. Будет отображено сообщение с предложением создать резервную копию (рис. 18.3). Нажмите кнопку Да (Yes).
  3. Будет отображено сообщение с вопросом о том, какую из двух реплик (реплику, полученную из исходной базы данных, или реплику, созданную в Портфеле) следует назначить основной репликой (рис. 18.4). Не забудьте, что основная реплика допускает правку структуры объектов и схемы данных, а обычная — нет.

Чтобы сделать основной реплику, полученную из исходной базы данных, оставьте выбранным переключатель Исходная копия (Source Copy). Иначе выберите переключатель Копия в портфель (Copy to Briefcase). Нажмите кнопку ОК.

Рис. 18.3. Создание резервной копии базы данных

Рис. 18.4. Выбор основной реплики 7. Нажмите кнопку Готово (Finish) в диалоговом окне Создание Портфеля Windows.

  1. Откройте Портфель. Для этого дважды щелкните по значку Портфель (Briefcase) на рабочем столе Windows. Появится окно со списком реплик в Портфеле.

Рис. 18.5. Состояние синхронизации реплики в Портфеле

Щелкните правой кнопкой мыши по элементу списка Контакты.mdb и выберите в контекстном меню команду Свойства (Properties), чтобы открыть окно свойств. Раскройте вкладку Обновление (Update Status) для вывода информации о состоянии синхронизации. Оригинал и реплика базы данных «Контакты» являются последними версиями, т. к. реплики не изменялись (рис. 18.5). Нажмите кнопку ОК.

Для просмотра содержимого реплики дважды щелкните по элементу Контакты.mdb списка реплик в Портфеле. Запустится Access и откроется реплика базы «Контакты». В заголовке окна базы данных появится надпись реплика (Replica), указывающая на то, что производится работа с репликой исходной базы данных.

Выберите команду Сервис, Параметры (Tools, Options) и раскройте вкладку Вид (View). Установите флажки скрытые объекты (Hidden objects) и системные объекты (System objects) и нажмите кнопку ОК. Обратите внимание на то, что для обеспечения репликации в базу данных «Контакты» было добавлено множество скрытых таблиц, например MSysRepIicas и MSysTombstone (рис. 18.6).

Рис. 18.6. Реплика базы данных «Контакты» с системными таблицами

Снова выберите команду Сервис, Параметры (Tools, Options) и сбросьте установленные на прошлом шаге флажки. Нажмите кнопку ОК и закройте реплику базы данных «Контакты».

Чтобы поместить реплику на портативный компьютер или отдать ее другому пользователю:

  1. Создайте копию Портфеля, содержащего реплику, путем копирования и вставки Портфеля на рабочий стол, а затем переименованием копии. Копии Портфеля используются для обновления реплик другими пользователями.
  2. Откройте Портфель и выберите команду Портфель, Обновить все (Briefcase, Update All). Основная реплика обновляется данными, содержащимися в репликах других Портфелей.
  3. Поместите копию Портфеля на рабочий стол портативного компьютера (или передайте ее на дискете другому пользователю).

Теперь можно работать с базой данных на портативном компьютере.

Синхронизировать реплику в Портфеле на портативном компьютере с репликой в Портфеле на основном компьютере и основной репликой можно несколькими способами.

  • Используя сетевое подключение. Связав портативный компьютер с Портфелем основного компьютера, можно обновлять реплику Портфеля непосредственно с помощью команды контекстного меню реплики Обновить (Update). Если реплика открыта в режиме разделения (по умолчанию), то допускается одновременное обновление реплики Портфеля несколькими пользователями. Однако пользова-телям в сети проще соединиться напрямую и обновить основной (исходный) файл MDB.
  • Используя прямое кабельное соединение. Для обеспечения доступа к Портфелю основного компьютера пользователями портативных компьютеров можно соединить последовательные (СОМ) порты основного и переносного компьютера с помощью кабеля последовательной связи (нуль-модемный кабель). Если компьютеры оборудованы параллельными портами, использующими протокол ЕСР (Расширенный протокол связи), то можно соединить параллельные порты основного и переносного компьютеров с помощью кабеля ЕСР. При параллельном соединении обновление проходит намного быстрее, чем при последовательном соединении. Для соединения различных типов параллельных портов имеется возможность использовать кабель UCM (Универсальный модуль кабеля).
  • Используя соединение с помощью модемов. Если установить на основном компьютере приложение «Телефон» (Phone Dialer), то можно будет связать портативный компьютер с Портфелем основного компьютера и обновить реплику в Портфеле.
  • С помощью дискет или переносного диска. Реплику в Портфеле основного компьютера можно перенести на портативный компьютер или компьютер другого пользователя с помощью дискеты или переносного диска. Для этого переместите Портфель на дискету (роль дискеты может выполнять и переносной диск), а затем перепишите его с дискеты на рабочий стол переносного компьютера или компьютера другого пользователя. После внесения изменений на портативном компьютере или на компьютере другого пользователя проведите обратный процесс: переместите Портфель переносного компьютера на дискету, а с дискеты — на рабочий стол основного компьютера. Затем выполните синхронизацию реплики в Портфеле с основной репликой, как рассказано далее. Многие пользователи применяют именно этот способ.

Перемещение Портфеля на дискету (или переносной диск) является важным этапом в осознании концепции Портфеля Windows. Реплики всех файлов хранятся в Портфеле на стационарном компьютере. Когда вы уходите, вы берете с собой Портфель. Один Портфель не может быть в двух местах одновременно. Более того, Портфель не является объектом рабочего стола Windows. По возвращении необходимо переместить Портфель с дискеты (или диска) на рабочий стол. Если Портфель разделяется в сети, то аналогией из реальной жизни является папка для входящих бумаг.

Если изменить данные или параметры либо в реплике Портфеля, либо в основной реплике, то статус файла изменится на Изменен (Modified). Если со времени последней синхронизации одна из реплик изменялась, можно обновить либо реплику в Портфеле, либо основную реплику. Чтобы синхронизировать реплики:

  1. Откройте Портфель. Щелкните правой кнопкой по базе данных «Контакты» и выберите в контекстном меню команду Свойства (Properties). В окне свойств реплики раскройте вкладку Обновление (Update Status). Статусом реплики в Портфеле является значение Изменен (Modified) (рис. 18.7), хотя данные не изменялись. Дело в том, что на состояние реплики повлияло изменение параметров базы данных в Access.
  2. Нажмите кнопку Обновить (Update) для обновления основной реплики.

Рис. 18.7. Статус Изменен для реплики в Портфеле

Аналогичным образом производится обновление реплики в Портфеле, когда изменения внесены в основную реплику.

Щелкнув правой кнопкой мыши по полю окна свойств реплики, в котором отображается статус обновления реплики, можно отобразить список для выбора направления записи изменений в двух синхронизируемых репликах.

Синхронизацию реплик в Портфеле можно проводить также с помощью команды Портфель, Обновить выделенные объекты (Briefcase, Update Selection) и команды

Портфель, Обновить все (Briefcase, Update All). Последняя команда очень удобна, когда требуется обновить реплики в нескольких копиях Портфеля на рабочем столе, которые принадлежат разным пользователям, обновляющим реплики в Портфеле с помощью дискет. В этом случае, выполнив команду обновления всего один раз, можно внести все произведенные каждым пользователем изменения.

Можно создать копию Портфеля так же, как копию обычной папки с файлами Windows. Чтобы создать совершенно новый Портфель, не копируя имеющийся, в Проводнике Windows выберите команду Файл, Создать, Портфель (File, New, Briefcase).

Репликация баз данных Access

В начале главы были приведены основные понятия репликации файлов. Если говорить именно о репликации баз данных средствами Access, то репликой в данном случае называется каждая копия реплицированной базы данных. Каждая реплика базы данных содержит общий (для всех реплик базы данных) набор таблиц, запросов, форм, отчетов, страниц доступа к данным, макросов и модулей. Изменения данных таблицы, сделанные в одной из реплик, передаются в другие реплики. Каждая реплика может также содержать локшьные объекты, которые существуют только в этой реплике.

Отдельная реплика является компонентом набора регьтк и допускает синхронизацию с другими репликами в наборе. В наборе реплик выделяется главная реплика, она называется основной. Основная реплика является главным компонентом набора реплик и используется для создания первой реплики в наборе. В основную реплику добавляются системные таблицы, системные поля и свойства репликации. Изменение структуры базы данных допускается только в основной реплике. Другие реплики в том же наборе также могут быть назначены основными репликами, но в каждый момент времени в наборе реплик должна быть только одна основная реплика. Основная реплика и все остальные реплики имеют общую структуру базы данных и уникальный идентификатор набора реплик.

Синхронизацией в данном случае называется процесс обновления двух компонентов набора реплик, при котором происходит взаимный обмен обновленными записями и объектами. После синхронизации двух компонентов набора реплик изменения из каждой реплики оказываются примененными в другой реплике.

Частичная реплика — база данных, содержащая подмножество записей полной реплики. С помощью частичной реплики пользователь имеет возможность устанавливать фильтры и задавать отношения, определяющие, какое подмножество записей полной реплики должно входить в базу данных.

Область видимости. Реплики по области видимости разделяются на три типа: глобальные, локальные и анонимные. Тип реплики определяет ряд важных характеристик реплики, например: типы реплик, которые могут создаваться по данной реплике, может ли данная реплика стать основной репликой в наборе реплик, а также, как в ней обрабатываются конфликты при синхронизации. Возможные типы, реплик описаны в табл. 18.1.

Приоритет реплики — это специальная характеристика реплики базы данных, определяющая относительный приоритет реплики в наборе реплик. Приоритет выражается целым положительным числом. Приоритет реплик учитывается при разрешении конфликтов, возникших в процессе синхронизации реплик. Подробнее о приоритетах рассказано в справочной системе Access 2002.

Таблица 18.1. Типы реплик по области видимости

Глобальная (global) реплика

Реплика, по которой можно создавать реплики всех остальных типов. При репликации базы данных первая создаваемая реплика (основная реплика) является глобальной репликой. Изменения, внесенные в глобальную реплику, отслеживаются полностью; возможен обмен этими изменениями с любой другой глобальной репликой в наборе. Глобальная реплика может также обмениваться изменениями с любой локальной или анонимной репликой, для которой она становится разветвителем. Раз-ветвителем называется глобальная реплика, с которой все реплики в наборе синхронизируют свои изменения

Value Meaning
LMEM_ZEROINIT 0x0040
Локальная (local) реплика Реплика, в которой выводятся только данные из этой реплики и не отображаются данные из других реплик в наборе, в том числе из основной реплики. Локальная реплика синхронизирует свои данные с разветвителем, который является глобальной репликой. Синхронизация локальных реплик с другими репликами в наборе не разрешена. Если изменения в локальной реплике конфликтуют с глобальной репликой-разветвителем, эти изменения автоматически теряются в любом процессе устранения конфликтов
Анонимная (anonymous) реплика Особый тип реплик в базах данных Microsoft Access, для которых не ведется отслеживание отдельных пользователей. Анонимные реплики особенно удобны при работе в Интернете, когда ожидается загрузка реплик многими пользователями

Выполнение действий, связанных с созданием, синхронизацией и управлением репликами в Access, осуществляется с помощью команд меню Сервис, Репликация (Tools, Replication).

Создание реплик базы данных

Основная и обычная реплики базы данных создаются в Access одинаковым способом: с помощью команды меню Сервис, Репликация, Создать реплику (Tools, Replication, Create Replica). Частичная реплика создается с помощью специального мастера. Об этом рассказано в разд. «Создание частичной реплики» этой главы. Новую реплику можно создать на основе любой существующей реплики. В любое время основной репликой можно назначить другую реплику в наборе. Основная реплика отличается от обычной. В основной реплике разрешено изменение структуры объектов базы данных и схемы данных, а в обычной и частичной репликах — только просмотр структуры объектов и схемы данных. Но вводить, удалять и изменять данные разрешено во всех репликах в наборе.

Чтобы создать реплику базы данных:

  1. Откройте базу данных, предназначенную для репликации, например базу данных «Борей» (Northwind). Если работа идет в многопользовательской среде, то следует убедиться в том, что все остальные пользователи закрыли эту базу данных. Если база данных защищена паролем, то его необходимо удалить. Чтобы создать новую реплику в наборе реплик, откройте созданную ранее основную или обычную реплику.
  2. Выберите команду Сервис, Репликация, Создать реплику (Tools, Replication, Create Replica).
  3. Появится диалоговое окно с требованием подтверждения закрытия базы данных. Нажмите кнопку Да (Yes).

Если команда Сервис, Репликация, Создать реплику используется для создания реплики еще нереплицированной базы данных, то в результате ее выполнения база данных будет преобразована в основную реплику, а затем для нее будет создана первая обычная реплика. В этом случае после требования о закрытии базы данных будет отображено сообщение с вопросом о создании резервной копии базы данных. Рекомендуем создать резервную копию базы данных перед ее репликацией. Для этого нажмите кнопку Да (Yes).

  1. Появится диалоговое окно Размещение новой реплики (Location of New Replica) (рис. 18.8). Укажите папку для размещения новой реплики. Если нужно, измените имя файла реплики, заданное по умолчанию.

Рис. 18.8. Диалоговое окно Размещение новой реплики

  1. Чтобы задать приоритет реплики, нажмите кнопку Приоритет (Priority). Появится диалоговое окно, представленное на рис. 18.9. Введите приоритет реплики и нажмите кнопку ОК.

Рис. 18.9. Диалоговое окно Приоритет

  1. Если требуется запретить пользователям удалять записи из таблиц в реплике, установите флажок Запретить удаление (Prevent delets).
  2. Чтобы задать область видимости реплики, выберите необходимый элемент в раскрывающемся списке Тип файла (Save as type).

Рис. 18.10. Основная реплика базы данных «Борей» с системными таблицами

  1. Нажмите кнопку ОК. Начнется процесс создания реплики. После его завершения, возможно, появится пояснительное сообщение с текстом «Изменения структуры базы данных допускаются только в основной реплике; изменения данных могут выполняться как в основной, так и в любой другой реплике набора». Нажмите кнопку ОК.
  2. Если база данных не была реплицированной, в результате работы Access она преобразуется в основную реплику и отобразится на экране (рис. 18.10). Кроме того, будет создана первая реплика с указанным именем (шаг 4). Если текущая база данных уже была репликой, в результате работы Access на ее основе будет создана новая реплика с указанным именем. В реплику добавляются системные таблицы и поля, специально предназначенные для поддержки реплики.

Создание частичной реплики

Частичная реплика (partial replica) — это реплика, содержащая лишь подмножество записей полной реплики (обычной реплики). Для создания частичной реплики требуется задать фильтр для выбора требуемых записей, которые будут синхронизироваться с соответствующими записями в полной реплике.

Частичные реплики позволяют ограничиться лишь необходимым для работы объемом данных. Синхронизация частичной реплики требует передачи меньшего количества данных, чем синхронизация полной реплики, что, конечно, уменьшает нагрузку на сеть.

Чтобы создать частичную реплику базы данных:

  1. Откройте реплику базы данных, на основе которой нужно создать частичную реплику. Например, откройте реплику базы данных «Борей», создание которой было описано в предыдущем разделе
  2. Выберите команду Сервис, Репликация, Мастер частичной репликации (Partial Replica Wizard). Появится первое диалоговое окно Мастера частичной репликации (рис. 18.11).

Рис. 18.11. Первое диалоговое окно Мастера частичной репликации

  1. Выберите переключатель создать частичную реплику (Create a new partial replica) и нажмите кнопку Далее (Next).
  2. Появится диалоговое окно, представленное на рис. 18.12. Введите путь и имя файла MDB для сохранения частичной реплики. Здесь же можно задать дополнительные свойства создаваемой реплики. Нажмите кнопку Далее.

Рис. 18.12. Второе диалоговое окно Мастера частичной репликации

Рис. 18.13. Третье диалоговое окно Мастера частичной репликации

  1. Появится диалоговое окно, позволяющее задать фильтр для отбора данных, которые следует сохранить в частичной реплике (рис. 18.13). Частичную реплику можно создать на основе только одной таблицы из базы данных, но из этой таблицы можно выбрать несколько полей.
  2. Выделите в списке Таблица для отбора (Table to filter) имя таблицы, из которой будут выбираться данные. Например, выделите таблицу «Заказы» (Orders). В списке Поля таблицы (Fileds in the table) отобразятся все поля выбранной таблицы.
  3. Теперь нужно составить выражение фильтра. Оно подобно выражению SQL WHERE, только не может содержать вызовов статистических и пользовательских функций и подчиненных запросов. Например, составим фильтр для выбора всех заказов, которые были размещены с 1 апреля 1998 года, стоимость доставки которых превышает 100 рублей.
  4. Выделите поле «ДатаРазмещения» (OrderDate) в списке Поля таблицы, выберите переключатель >= и нажмите кнопку Вставить (Paste). В поле Выражение фильтра (Filter expression) появится строка: [ДатаРазмещения] >= [Выражение].
  5. Вместо слова [Выражение] введите дату #4/1/1998#.
  6. Выделите в списке Поля таблицы поле «СтоимостьДоставки» (ShippedPrice), выберите переключатель > в группе переключателей отношений и переключатель И (AND) — в группе переключателей логических связок. Нажмите кнопку Вставить. В поле Выражение фильтра появится строка: [ДатаРазмещения] >= #4/1/1998# AND [СтоимостьДоставки] > [Выражение].
  7. Вместо слова [Выражение] введите число 100. Получится требуемое выражение фильтра: [ДатаРазмещения] >= #4/1/1998# AND [СтоимостьДоставки] > 100 (рис. 18.14). Нажмите кнопку Далее.
  8. Появится следующее диалоговое окно Мастера частичной репликации (рис. 18.15). В списке Список таблиц (List of Tables) отображаются все таблицы текущей реплики, за исключением той, на основе которой создан фильтр для отбора записей. Таблицы, связанные с таблицей, к которой применяется фильтр, выделены полужирным шрифтом. Установите флажок около имени таблицы, чтобы включить в частичную реплику все записи в этой таблице. Сбросьте флажок около имени таблицы, если нужно включить в частичную реплику только записи, связанные с отобранными фильтром записями. Нажмите кнопку Далее.
  9. Появится последнее диалоговое окно мастера (рис. 18.16), предлагающее создать отчет с описанием содержания частичной реплики. Оставьте выбранным переключатель Да (Yes) и нажмите кнопку Готово (Finish).
  10. После этого начнется процесс создания частичной реплики, который может занять несколько минут. После окончания работы мастера будет отображен отчет о создании частичной реплики. Сохраните его в формате снимка отчета, чтобы иметь информацию о данных, хранящихся в частичной реплике. Тогда этот отчет можно будет просмотреть в любое время с помощью программы Просмотр снимков (Snapshot Viewer) (рис. 18.17) (см. разд. «Снимки отчетов»гл. 6).

Рис. 18.14. Фильтр для отбора записей в таблице «Заказы»

Рис. 18.15. Четвертое диалоговое окно Мастера частичной репликации

Рис. 18.16. Последнее диалоговое окно Мастера частичной репликации

Рис. 18.17. Отчет о создании частичной реплики

В Microsoft Access, Диспетчере репликации Microsoft и Объектах репликации и Jet (JRO) можно выбрать один из трех различных методов синхронизации данных:


    Прямая синхронизация является прекрасным решением для случаев, когда реплики непосредственно подключены к локальной сети и находятся в общих сетевых папках. Прямая синхронизация не очень хорошо подходит для удаленной синхронизации с помощью сервера удаленного доступа (RAS) или соединения удаленного доступа. В этом случае следует использовать косвенную синхронизацию или синхронизацию по Интернету.

Если при попытке выполнить прямую синхронизацию с репликой, присутствующей в списке известных реплик, эта реплика не будет найдена, то она будет исключена из набора реплик.

Косвенная синхронизация полезна при работе в автономной среде, например: на переносном компьютере.

Косвенную синхронизацию можно настроить только с помощью Диспетчера репликации (Replication Manager), входящего в комплект средств разработчика Microsoft Office 2002 Developer. После того как косвенная синхронизация будет настроена в Диспетчере репликации, ее можно выполнять с помощью Microsoft Access, Диспетчера репликации или JRO.

  • Синхронизация по Интернету представляет собой удобный способ синхронизации реплик в тех автономных средах, которые имеют доступ к Интернету.
  • Для настройки синхронизации по Интернету нужно использовать Диспетчер репликации (Replication Manager), который входит в комплект средств разработчика Microsoft Office 2002 Developer.

    Чтобы синхронизировать реплику с другой репликой в наборе реплик базы данных:

    1. Откройте реплику, которую нужно синхронизировать. Это может быть основная, обычная или частичная реплика.
    2. Выберите команду Сервис, Репликация, Синхронизация (Tools, Replication, Synchronize Now). Появится диалоговое окно, представленное на рис. 18.18.

    Рис. 18.18. Диалоговое окно Синхронизация базы данных

    1. Введите путь и имя файла элемента набора реплик, который требуется синхронизировать с текущей репликой. Это может быть основная, обычная или частичная реплика.
    2. Если текущую реплику нужно сделать основной, установите флажок Сделать основной репликой » « (Make ‘ ‘ the Design Master). (Этот режим недоступен в том случае, когда одна или обе синхронизируемые реплики являются частичными репликами и когда обе синхронизируемые реплики являются обычными репликами — не основными).
    3. Нажмите кнопку ОК.
    4. Отобразится сообщение с требованием подтвердить закрытие базы данных для выполнения синхронизации. Чтобы выполнить синхронизацию, нажмите кнопку Да (Yes).

    В результате синхронизации могут возникать конфликты. Устранение конфликтов выполняется с помощью специальной программы Просмотр конфликтов (Conflict Viewer). Чтобы ее запустить, откройте базу данных, которую требуется проверить на наличие конфликтов, и нажмите кнопку Да (Yes) в окне с сообщением о наличии конфликтов и с предложением их устранить или выберите команду Сервис, Репликация, Устранить конфликты (Tools, Replication, Resolve Conflicts). Если конфликтов в реплике нет, программа Просмотр конфликтов не запускается, сообщение о наличии конфликтов при открытии реплики тоже не отображается. Сведения о причинах возникновения конфликтов и об использовании программы Просмотр конфликтов находятся в справочной системе Access 2002.

    Управление реплицированными базами данных включает:

    • Восстановление основной реплики. Если основная реплика в наборе реплик была повреждена, потеряна, переименована, удалена или перемещена, можно восстановить основную реплику. Для этого:

    1. Убедитесь, что в наборе отсутствует основная реплика.
    2. Выберите в наборе реплику, которую нужно сделать основной (для этого нельзя использовать частичную реплику).
    3. Синхронизируйте ее со всеми остальными репликами в наборе.
    4. Чтобы сделать текущую реплику основной, выберите команду Сервис, Репликация, Восстановить основную реплику (Tools, Replication, Recover Design Master).

    В наборе реплик не должно быть больше одной основной реплики. В противном случае могут происходить сбои синхронизации в наборе реплик.

    • Назначение реплики основной репликой. Чтобы одну из реплик в наборе назначить новой основной репликой:

    1. Убедитесь, что данная реплика и текущая основная реплика никем не используются.
    2. Откройте реплику, которую нужно сделать основной.
    3. Выберите команду Сервис, Репликация, Синхронизировать (Tools, Replication, Synchronize Now).
    4. Выберите в списке текущую основную реплику для синхронизации с открытой репликой.
    5. Установите флажок Сделать основной репликой » « (Make ‘ ОК.

    • Преобразование реплицированной базы данных в нереплицированную. После преобразования базы данных в основную реплику ее обратное преобразование в нереплицированную базу данных будет невозможно. Однако, если дальнейшее использование репликации не планируется и требуется уменьшить объем реплици-рованной базы данных, следует создать новую нереплицированную базу данных, содержащую все объекты и данные реплицированной базы данных, но не включающую в себя дополнительные системные поля, таблицы и свойства, добавляемые при репликации. Для этого требуется выполнить импорт из реплики в новую базу данных необходимых объектов всех типов, кроме таблиц. Для переноса таблиц в новую базу данных создайте в ней запросы, выбирающие все записи из исходных таблиц и создающие на их основе новые таблицы. Воссоздайте индексы и связи между таблицами. Подробные инструкции о выполнении этой процедуры можно найти в справочной системе Access 2002.
    • Защита репетированной базы данных. Для защиты реплики можно использовать систему защиты на уровне пользователей. Назначенные права доступа к объектам реплики для пользователей рабочей группы не влияют на синхронизацию этой реплики с другими репликами в наборе. Реплику нельзя защитить паролем. Нельзя также защищенную паролем базу данных преобразовать в реплицирован-ную базу данных. Для защиты файла реплики можно установить разрешения на общую папку, в которой хранится реплика (не назначайте доступ только для чтения, иначе не будет выполняться синхронизация с остальными элементами набора реплик), или поместить ее в папку, недоступную в сети, и использовать косвенную синхронизацию через Диспетчер репликации Microsoft.
    • Удаление реплики из набора реплик. Удалите файл реплики, выделив его в Проводнике Windows и нажав клавишу . Выполните синхронизацию любой реплики из набора с удаленной репликой. Access автоматически определит, что заданная реплика отсутствует и удалит ее из набора реплик. Не удаляйте основную реплику из набора реплик, если только она не повреждена. Если в наборе реплик отсутствует основная реплика, невозможно изменить структуру базы данных.
    • Создание резервной копии реципированной базы данных Microsoft Access. Создание реплики предоставляет возможность создать резервную копию базы данных. Создавать резервные копии полезно, однако пользоваться ими следует лишь в исключительных ситуациях. Любая копия с резервной копии базы данных или любая реплика созданная из преобразованной резервной копии, не может быть синхронизирована с существующими элементами набора реплик.

    Репликация проектов Access

    Репликация проектов Access отличается от репликации баз данных. В проектах реп-лицируются только данные. Формы, отчеты и прочие объекты, содержащиеся в проекте, не реплицируются.

    В отличие от баз данных для репликации проектов Microsoft Access предоставляет средства создания не реплик, а публикаций (publication) и подписок (subscription).

    • В проекте Microsoft Access публикация может содержать одну или несколько статей с таблицами или хранимыми процедурами из одной базы данных пользователя. Создание публикации выполняется с помощью мастера, который запускается с помощью команды Сервис, Репликация, Создать публикацию. Каждая пользовательская база данных может иметь несколько публикаций.
    • Статьей в публикации называют сгруппированные данные, которые реплицируются как целое. Статьей может быть целая таблица либо некоторые строки и столбцы, определяемые фильтром. Публикация может содержать несколько статей. Подписчики подписываются на публикацию, а не на отдельные статьи в публикации.
    • Подпиской называется база данных, получающая реплицированные таблицы и данные из базы данных издателя в проекте Microsoft Access. Создать подписку можно с помощью мастера, который запускается с помощью команды Сервис, Репликация, Запросить подписку.

    Синхронизация реплицированных проектов Access может быть трех типов: прямая, косвенная и через Интернет. Синхронизация реплицированных проектов осуществляется аналогично синхронизации реплицированных баз данных с помощью команды Сервис, Репликация, Сихронизация.

    Подробная информация о репликации проектов Access содержится в документации Microsoft SQL Server.

    Репликация файлов на сервере Web

    Есть еще одно средство работы с базой данных в той ситуации, когда требуется синхронизация данных — это работа с данными в Web в автономном режиме (off-line), когда нет постоянного подключения к источнику данных.

    Репликация файлов на сервере Web позволяет работать с файлами, используя программу просмотра Microsoft Internet Explorer 5 (и выше) или приложение из пакета Microsoft Office 2002 (а также предыдущей версии Office 2000), даже после отключения от сервера. На локальном компьютере сохраняются копии файлов, хранящихся на сервере, отображаемых в Проводнике в папках Web. Локальные копии могут быть просмотрены и изменены даже при работе в автономном режиме. При подключении к серверу Web копии файлов на локальном компьютере могут быть синхронизированы с исходными файлами, хранящимися на сервере Web.

    На сервере Web, который будет использоваться для сохранения синхронизируемых файлов, должны быть установлены серверные расширения FrontPage.

    Репликация файлов в Internet Explorer и Windows

    Описание процедур репликации и синхронизации файлов на сервере Web, использования Менеджера синхронизации Windows (Synchronization Manager), так называемых подписок (subscription), и папки Избранное (Favorites) можно найти в справочной системе Windows и Internet Explorer.

    Репликация страниц доступа к данным в Access 2002

    Когда нет постоянного подключения к базе данных, чтобы удобно было использовать и изменять данные, можно воспользоваться средством работы со страницами доступа к данным проектов Access 2002 в автономном режиме (без подключения).

    Для такой работы потребуется следующее программное обеспечение:

    • Microsoft Access 2002, установленный на клиентском компьютере, например на переносном компьютере или домашнем компьютере;
    • Microsoft SQL Server 2000 Desktop Edition (MSDE), установленное и работающее на клиентском компьютере;
    • Microsoft SQL Server 2000, установленное и работающее на удаленном сервере;
    • Microsoft Internet Explorer 5.0, установленный на клиентском компьютере и на удаленном сервере.

    Инструкции по использованию синхронизируемых страниц доступа к данным для проектов Access 2002 можно найти в справочной системе Access 2002.

    Эта глава посвящена репликации баз данных и проектов Access 2002 с помощью различных инструментов. Средства портфельной репликации Windows позволяют работать с базой данных на переносном компьютере во время поездки и синхронизировать ее позже с базой данных на компьютере, находящемся в офисе. Средства Microsoft Access 2002 репликации баз данных и проектов дают возможность организовать совместную работу нескольких пользователей с базой данных или проектом путем создания реплик — копий базы данных или проекта, изменения в которых могут быть синхронизированы. Средство репликации сервера Web предоставляет возможность удаленным пользователям работать с базой данных, хранящейся на сервере Web, даже в автономном режиме, после отключения от Интернета.

    Задание размера поля

    С помощью свойства «Размер поля» у числовых полей в таблицах Access можно регулировать объем, занимаемый записями в базе данных. Размер можно менять и у текстовых полей, хотя эффект этого с точки зрения экономии пространства не так заметен.

    Примечание: Функции, описанные в этой статье, не относятся к веб-приложениям и веб-базам данных Access.

    В этой статье

    Результат изменения размера поля

    Можно менять размер как пустого поля, так и поля, которое уже содержит данные. Результат изменения размера поля зависит от того, содержит ли оно данные.

    Если поле не содержит данных При изменении размера поля устанавливается предельный размер новых значений в этом поле. Для числовых полей размер точно определяет объем дискового пространства, используемого приложением Access для хранения каждого значения соответствующего поля. Для текстовых полей размер поля определяет максимальный объем дискового пространства, который Access может выделить для каждого значения этого поле.

    Если поле содержит данные При изменении размера поля Access обрезает все значения в поле, которые превышают заданный размер, а также ограничивает размер новых значений данных в поле, как описано выше.

    Изменение размера числового поля

    Совет: Если поле, размер которого необходимо изменить, уже содержит данные, перед продолжением рекомендуется создать резервную копию базы.

    В области навигации щелкните правой кнопкой мыши таблицу, содержащую поле, которое нужно изменить, и выберите команду Конструктор.

    В сетке конструктора таблицы выберите поле, размер которого необходимо изменить.

    В области Свойства поля на вкладке Общие укажите новый размер поля в качестве значения свойства Размер поля. Можно выбрать одно из значений, перечисленных ниже.

    Байт — для целых чисел от 0 до 255. Для хранения требуется 1 байт.

    Целое число — для целых чисел от -32 768 до +32 767. Для хранения требуется 2 байта.

    Длинное целое — для целых чисел от -2 147 483 648 до +2 147 483 647. Для хранения требуется 4 байта.

    Совет: Тип данных «Длинное целое» следует использовать при создании внешнего ключа для связывания поля с полем первичного ключа другой таблицы, которое имеет тип данных «Счетчик».

    Одинарное с плавающей точкой — для чисел с плавающей точкой от -3,4 x 1038 до +3,4 x 1038, которые имеют до 7 значимых разрядов. Для хранения требуется 4 байта.

    Двойное с плавающей точкой — для чисел с плавающей точкой от -1,797 x 10308 до +1,797 x 10308, которые имеют до 15 значимых разрядов. Для хранения требуется 8 байтов.

    Код репликации — для идентификатора GUID, необходимого для репликации.

    Примечание: Репликация не поддерживается для файлов формата ACCDB.

    Действительное число — для числовых значений от -9,999. x 1027 до +9,999. x 1027. Для хранения требуется 12 байтов.

    Изменение размера текстового поля

    Совет: Если поле, размер которого необходимо изменить, уже содержит данные, перед продолжением рекомендуется создать резервную копию базы.

    В области навигации щелкните правой кнопкой мыши таблицу, содержащую поле, которое нужно изменить, и выберите команду Конструктор.

    В сетке конструктора таблицы выберите поле, размер которого необходимо изменить.

    В области Свойства поля на вкладке Общие укажите новый размер поля в качестве значения свойства Размер поля. Введите значение от 1 до 255. Это число определяет максимальное количество символов, содержащихся в каждом из значений. Для больших полей используйте тип данных Memo (в Access 2020 — «Длинный текст»).

    Примечание: Для данных в текстовых полях (в Access 2020 — «Краткий текст») Access не резервирует больше места, чем необходимо для хранения фактических значений. Свойство Размер поля определяет размер максимального значения поля.

    Что такое low-code/no-code платформа и CRM, CRM+, ERP

    Суть low-code/no-code (далее просто low-code) в том, чтобы снизить порог создания/изменения информационной системы до уровня бизнес аналитика или даже продвинутого пользователя. Это когда вендор не просто создаёт платформу со встроенным языком и его сотрудники заявляют о том, что сделают для клиента «всё или почти всё» — low-code платформа, это когда бизнес-аналитики или выделенные ответственные на стороне клиента (его сотрудники) могут это «почти всё» сделать сами.

    Что входит в понятие на платформе можно «почти всё»?

    1. Формат данных, пользовательские данные
    2. Вычисления
    3. Интерфейсы десктоп/web
    4. Отчеты, дашборды, аналитика
    5. Шаблоны документов, рассылок, нотификаций
    6. Управление процессами
    7. Управление доступом и логированием
    8. Управление личным кабинетом клиентов и данными на сайте

    Возможности low-code существенно сокращают путь к результату с цепочки «Задача пользователя – бюджет разработки – бизнес-аналитик – ТЗ – исполнитель – согласование результата – внесение изменений – приёмка» до «Задача пользователя –Бизнес-аналитик – приёмка».

    Ключевые сотрудники – это «носители/владельцы знаний о процессах компании». Именно предоставление в их руки инструмента, позволяющего! полностью! создавать/изменять информационную систему предприятия, приводит к:

    • бОльшей гибкости и прозрачности бизнеса
    • снижению затрат на ИТ
    • увеличению скорости разработки корпоративной информационной системы
    • снижению рисков и сроков ожидания реализации внутренних задач в корпоративной системе

    и более «приземлённо»:

    • возможность руководителям разных уровней оперативно пробовать новые модели управления
    • самостоятельная адаптация интерфейса и визуализации к потребностям пользователей
    • быстрое создание новых отчетов, форм, бланков
    • оперативное внесение изменений в управление процессами
    • + много другое

    Ниже взгляд на то, как может быть построена система low-code. Один из вариантов. С объяснением ключевых моментов.

    1. Формат данных, пользовательские данные

    Платформа должна иметь средства конфигурирования данных. Причем без программирования. И конфигурированию должны быть доступны не только «пользовательские данные», но и справочники и реестры, представляющие основу конфигурации + системные – к примеру, контрагенты, физ. лица и пр. Или наоборот: есть вендоры, которые дают возможность конфигурирования ограниченного количества видов данных + создавать свои справочники – это неправильно. Ограничения — это компромисс за деньги клиента.

    Все данные должны иметь, условно говоря, равные права, отображаться в виде дерева (потому что есть дочерние реестры/справочники) и бизнес-аналитик покупателя платформы должен иметь возможность без ограничений этими данными управлять.

    В текущий момент развития рынка ИТ в РФ много компаний – поставщиков CRM научились добавлять свои справочники. Просто добавления с компромиссом недостаточно, чтобы называться полноценной платформой.

    Основные моменты

    a) Визуализация данных перед конечным пользователем.

    Работая с фильтрами, отчетами, шаблонами и пр. пользователь должен видеть данные в удобном виде, с названиями, которые ему понятны. Данные должны быть видны не только по таблице запроса, но и по связанным таблицам (прямым и обратным ссылкам). Пользователь должен иметь возможность при фильтрации, выборке, построении отчетов, запросов условно говоря «проваливаться» вглубь связанных данных на любой уровень.

    При этом система должна сама брать на себя функции преобразования конечного запроса в SQL. Система должна быть построена таким образом, что пользователь может «дотянуться» до всех данных, включая системные и «экзотические», как, например логи. Это позволяет получать отчетность по всей интересующей информации и в визуализированном виде это легко и удобно.

    2. Вычисления

    Платформа, которая позволяет внедренцу (бизнес-аналитику) управлять нагрузкой на сервер базы данных должна делить вычисления на разные виды по нагрузке.

    • Динамические вычисления (выполняются каждый запрос к таблице)
    • Вычисления по событиям (выполняются только, когда создается запись в контрольном реестре или происходит изменение контрольного атрибута)
    • Вычисления по расписаниям (происходят, к примеру, ночью или вообще раз в неделю/месяц)

    a) Составление алгоритмов вычислений

    В low-code платформе бизнес-аналитик должен иметь функционал, который позволяет ему используя, как пример, приведенное выше дерево атрибутов, составить алгоритм вычисления на понятном доступном языке и понятных и доступных названиях атрибутов, реестров и пр.

    b) При этом, здесь же допускается код на T-SQL.

    Код на T-SQL снимает ограничения по сложности вычислений, делая платформу более широкой, чем «для бизнес-аналитика». По сути это снова «отсутствие ограничений». Low-code платформа не должна быть средством только для бизнес-аналитиков – она должна закрывать потребности разработки на платформе готового решения, включая код на встренном языке и, к примеру, T-SQL. Но бизнес-аналитик на low-code платформе должен иметь возможность закрыть бОльшую часть типовых задач.

    c) «Учет – это итоги»

    Система должна позволять бизнес-аналитику создавать расчет итогов и ключевых показателей, необходимых для формирования дашбордов, информирования пользователей о количестве задач (пример) и пр. Т.е. формировать общекорпоративные, не привязанные к конкретным записям вычисления. Также важно (ниже будет рассмотрено) эти итоговые показатели отображать в интерфейсе (в визуализации) в виде индикаторов, крупных цифр и пр.

    По сути «представления» – это некий «табличный конструктор». Его доступность бизнес-аналитикам или продвинутым пользователям позволяет собирать таблицы из нескольких таблиц, т.е. создавать представления, которые не хранятся в БД. Представления и их разработка очень важны в анализе и сопоставлении данных, в т.ч. маркетологами. В концепции low-code это означает, что сложные конструкции, которые обычно длительный срок собираются программистами, теперь бизнес-аналитиками могут создаваться «мышкой» в короткие сроки, к тому же и быстро меняться.

    e) Агрегаты (регистры)

    Существует большое количество вычислений по расписанию (ночью), а также подготовка итогов и расчетов для сложных отчетных форм, также требующих большой нагрузки сервера и которые имеет смысл также проводить ночью. Отчеты этого типа не требуют on-line актуализации данных. С точки зрения пользователя агрегирование – это подготовка готовых отчетов с уже готовыми результатами, чтобы запрос такого отчета не приводил к вычислениям, а выдавал уже готовую форму с результатами в течение 1 – 2 сек.

    Промежуточный вывод: low-code проектирование готовой конфигурации с точки зрения данных – это закрытие без программирования силами бизнес-аналитика всех вопросов формата БД для бизнеса любого размера и сложности + обязательная при этом скорость разработки, которая получается очень высокой.

    3. Интерфейсы десктоп/web

    a) Доступность для дизайна

    Одним из главных в дизайне интерфейса является принципиальная доступность этой функции бизнес-аналитику, причем, конечно, без программирования. Это значит, что есть компонентный состав (о нём ниже) и есть «мышка», которой можно расставить на форме всё, как требуется, а свойства, функции и пр. задать, к примеру, в инспекторе объектов или в карточках объектов. Сложность форм в low-code платформе не должна быть ничем ограничена.

    Применительно к современным CRM и ERP системам дизайнер интерфейсов должен быть, как для десктопа (если система поставляется в десктопном варианте), так и для web.

    b) Нарисовал и оно работает

    Работа того, что только что было отрисовано – очень важный аспект. Зачастую, в платформах для того, чтобы отрисованный интерфейс работал, код необходим. Пусть и не большой. Это не low-code платформы, даже, если вендор так пытается её представить.

    Система в своих свойствах и сообщениях пользователю о критических событиях должна подразумевать настройку формы в таком виде, что при задании необходимых свойств и связей объектов на ней – всё сразу начинает показывать данные и работать. Никак иначе. Никакого, пусть даже минимального кода.

    c) Компонентный состав

    Компонентный состав дизайнера интерфейсов должен покрывать все современные задачи визуализации и работу с данными. Кроме стандартного, должно быть:

    • Пивот
    • Органайзер
    • Индикаторы
    • Итоги
    • Геовизуализация
    • другое

    Бизнес-аналитик должен иметь все возможности создать дашборд или рабочее место любой сложности. Современный бизнес диктует к интерфейсу требования не только красоты, но и предоставления на одном экране всего большого количества необходимой для принятия решения информации. Зачастую в проектах создаются крайне сложные интерфейсы, которые полностью устраивают пользователей, при этом полностью отрицаются все теории простоты, легкости и красоты интерфейсов – работа главное.

    d) Карточки записей

    Каждое подразделение может иметь свои взгляды и требования к карточкам записей. Менеджерам по продажам необходимо видеть карточку клиента по-своему, бухгалтерии по-своему, руководству также по-своему.

    В low-code платформах для реализации этой возможности должны быть настройки с копированием карточки из одной группы пользователей в другую, при этом, с созданием в каждой их них уникального внешнего вида. Это должно производиться БЕЗ применения встроенного языка.

    e) Выход на встроенный язык

    При всём сказанном, встроенный язык лишним не будет. Но это дополнение к возможностям low-code:

    Там, где необходимы особенно сложные сценарии и где настроек по какой-то причине не хватает или надо управлять свойствами компонентов, расчетов и пр. в зависимости от действий пользователей и это не может быть положено на графическую карту процессов – пожалуйста, может быть доступен и хорошо, когда доступен встроенный язык, как средство глубокой кастомизации.

    4. Отчеты, дашборды, аналитика

    5. Шаблоны документов, рассылок, нотификаций

    Собственно, как и в дизайнере отчетов, так и в подготовке шаблонов документов на основе MS Word и MS Excel необходима доступная всем и пользователям в т.ч. визуализация данных, описанная выше. Пользователь в платформе low-code не должен знать названия таблиц в БД, полей и пр. Ему должен быть доступен исчерпывающий визуальный инструментарий доступа ко всем данным, без знания SQL.

    Здесь же следует отметить, что правильным является предоставление бизнес-аналитику возможности оперировать, как прямыми ссылками на таблицы, так и обратными. Это позволяет вставлять в шаблоны MS Word – к примеру, в договора таблицы спецификации.

    6. Управление процессами

    На рынке много систем, заявляющих о наличии инструментов управления процессами. Часто под этим понимают, к примеру, последовательную раздачу задач, или ветвление только одного типа (да/нет, что по сути условный переход).

    Платформы low-code должны обладать мощными, доступными без программирования графическими редакторами карт процессов, где бизнес-аналитик должен иметь возможности моделирования:

    1. Событий в БД и от этого:

    • настройку межгруппового взаимодействия пользователей
    • создание и изменение записей и их атрибутов
    • нотификацию в чат и ленту новостей
    • запуск обработчиков
    • рассылку почтовых сообщений в т.ч. с динамическими вложениями

    2. Планировщик

    • o обработка времени «до» и «после» контрольных и/или ключевых значений атрибутов записей
    • o создание действий, описанных выше на регулярной (расписание) основе

    Важным моментом возможностей графической карты процессов является доступ из карты к объектам интерфейса и их свойствам, а также реакция на действия пользователей. Однако, это сложная тема и будет рассмотрена в другой статье.

    7. Управление доступом и логированием

    Осуществление наполнением системы штатными интерфейсами и условно «новыми» может и должно быть доступно без программирования. Включая настройки иконок и загрузку их коллекций.

    Аналогично доступ и его ограничения.

    • До любых, в т.ч. пользовательских данных и справочников
    • До атрибутов данных
    • Доступ на основе вычислений и логики

    Отдельно для каждой группы пользователей

    8. Управление личным кабинетом клиентов и данными на сайте

    Аналогично и управление журналом аудита (логирование)

    Ввиду роста грамотности пользователей. Ввиду того, что тем, кто программировал на Фортране, скоро на пенсию. Уверен, что именно за системами управления корпоративными сложными системами типа «платформа low-code» будущее.

    Речь НЕ идёт о том, что произойдёт отказ от программирования. Как показано выше – везде может и должен быть шлюз/доступ/другой уровень для того, чтобы определенные вопросы реализовывались на встроенных языках и SQL.

    Речь о том, что компаниям платформы low-code выгодны по объективным причинам и тренд на, собственно, говоря более простым языком: автоматизацию работы внедренцев/бизнес-аналитиков – на упрощение и ускорение их работы, очевиден.

    Имея средства управления форматом данных, вычислениями без программирования, распределения нагрузки на сервер через планирование вычислениями; имея возможности визуализации данных, как с точки зрения рабочего места той или иной группы пользователей + визуализации и аналитичности данных для лиц, принимающих решения; имея возможность настраивать процессы в графическом движке с элементами документообота и раздачей задач – бизнес-аналитик может закрыть собой очень большой объём внедрения информационной системы высокого уровня сложности.

    LocalAlloc

    Описание: function LocalAlloc(Flags, Bytes: Word): THandle;

    Выделяет из локальной кучи память под блок локальной памяти. Фактический pазмеp может быть больше, чем указанный.

    Паpаметpы:

    Flags: Одна или несколько из следующих констант: lmem_Discardable, lmem_Fixed, lmem_Modify, lmem_Moveable, lmem_NoCompact, lmem_NoDiscard и lmem_ZeroInit. См. pаздел «Флаги локальной памяти, lmem_» в главе 1.

    Bytes: Размеp выделяемого блока в байтах.

    Возвpащаемое значение:

    Идентификатоp выделенного блока локальной памяти; 0 — если ошибка. функция находится в файле kernel32.dll

    Что такое код localrealloc

    Создание программ на языках Pascal, Delphi и Lazarus.

    [администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

    Лучшие эксперты в этом разделе

    Gluck
    Статус: 7-й класс
    Рейтинг: 860
    Зенченко Константин Николаевич
    Статус: Старший модератор
    Рейтинг: 458
    puporev
    Статус: Профессионал
    Рейтинг: 269
    Перейти к консультации №:

    Добрый день, эксперты. У меня такой вопрос: что такое код репликации в базах MS Access? Доступ к ним в Delphi осуществляется по ADO компонентам. Я так понимаю, что это уникальный код, может быть счетчиком. Но почему он не присваивается сразу при создании записи в Delphi? Из-за этого, при попытке изменения только что созданной записи появляются ошибки, дескать не могу найти строку для обновления. Если создавать запись непосредственно из MS Access, то записи сразу же присваивается какой-то код репликации, а в Delphi базу почему-то нужно закрыть и открыть заново.

    Состояние: Консультация закрыта

    Здравствуйте, ArcXeno!
    Код репликации в Access — это размер поля, а не его тип. Имеет размер в 16 байт. Туда вставляется значение GUID, которое надо генерировать.
    Если честно, никогда не работал с этой штукой, поэтому ничего более толкового сказать не могу. :)

    Отправлять сообщения
    модераторам могут
    только участники портала.
    ВОЙТИ НА ПОРТАЛ »
    регистрация »

    Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
    Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

    Илон Маск рекомендует:  Функция обработки bb - кодов
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL