HOT SOFT: ИНСТРУМЕНТАРИЙ ДЛЯ РАЗРАБОТЧИКОВ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

НОВОСТИ 

ПРОДУКТЫ

ЦЕНЫ

ПОДДЕРЖКА

FAQ

ДЕМО-ВЕРСИИ

КОНТАКТ

horizontal rule

Advantage CA-Clipper RDD

Advantage CA-Clipper RDD предназначен для разработчиков, которые хотят создавать новые или модифицировать существующие CA-Clipper приложения для работы с Advantage Database Server

Advantage CA-Clipper RDD состоит из CA-Clipper Replaceable Database Drivers (RDDs) и коммуникационных библиотек. Коммуникационные библиотеки прилинковываются к приложению CA-Clipper для осуществления доступа к Advantage Database Server. Дополнительные команды и функции Advantage и оптимизированные фильтры предназначены для перехода с языка CA-Clipper и позволяют разработчикам создавать приложения, наиболее удачно использующие выгодные стороны Advantage и технологии Клиент/Сервер.

Advantage CA-Clipper RDD

Advantage CA-Clipper Replaceable Database Drivers (замещаемые драйвера баз данных) используются в CA-Clipper приложениях для хранения и обработки информации, а так же для связи с Advantage Database Server. Они являются интерфейсом, контролирующим  доступ приложений к файлам  в сетевой среде.

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

Для того, чтобы внедрить Advantage в CA-Clipper приложение, библиотека Advantage RDD и коммуникационная библиотека Advantage должны быть прилинкованы к CA-Clipper приложению, тогда клиент получит доступ к серверу.

С помощью Advantage RDD большая часть обработки производится на сервере с помощью Advantage Database Server, а не у клиента. Это уменьшает сетевой трафик, увеличивает производительность и предотвращает повреждение индексных файлов, без необходимости переделывать существующие приложения. Путем простой перелинковки приложения с Advantage, CA-Clipper RDD может быть замещен на RDD. Тем самым, вы получите все преимущества технологии Клиент/Сервер без модификации исходного кода своих приложений.

Коммуникационные библиотеки Advantage

Коммуникационные библиотеки необходимы для осуществления связи между приложениями CA-Clipper и Advantage Database Server. Для различных линкеров - Blinker, CauseWay, ExoSpace существуют различные библиотеки.

Коммуникационные библиотеки позволяют по протоколу IPX осуществлять связь с Advantage Database Server для Netware и с Advantage Database Server для Windows NT. Существуют также коммуникационные библиотеки для протокола IP для связи только с Advantage Database Server для Windows NT.

Оптимизированные фильтры Advantage

Advantage Optimized Filters (AOF) - обеспечивают все великолепие искусства оптимизации запросов для приложений CA-Clipper. AOF ускоряют обработку запросов путем использования ключей индекса вместо записей файла базы данных. Если имеется индекс, построенный на указанном поле, то предпочтительнее использовать AOF, чем файл базы данных для обработки запросов. Производительность увеличивается за счет уменьшения объема данных, которые должны быть получены с диска.

Команда CA-Clipper SET FILTER и другие команды CA-Clipper, которые содержат FOR-условие, могут быть оптимизированы. FOR-условие задает критерий, которому должны соответствовать записи, которые будут участвовать в обработке. AOF также включают несколько функций низкого уровня, позволяющие разработчикам приложений CA-Clipper получить больше гибкости и контроля над процессом оптимизации фильтров.

AOF обеспечивают увеличение скорости обработки запросов до 1000 раз. Значительное увеличение скорости выполнения запросов достигается тогда, когда большой процент записей базы данных не соответствует условию наложенного фильтра. Значение условия в SET FILTER или FOR-условия , соответствующее маленькому значению диапазона записей, удовлетворяющих ему, даст большее увеличение скорости обработки.

Оптимизированные фильтры Advantage обеспечивают 100%-ную эквивалентность по функциональности с оптимизаторами запросов ClipMore фирмы Loadstone и MachSix фирмы SuccessWare. Оптимизированные фильтры Advantage поддерживаются только при использовании с Advantage CDX RDD, DBFCDXAX.

Часто Задаваемые Вопросы по Advantage CA-Clipper RDD

Что такое RDD?

RDD (Replaceable Database Driver) - заменяемый драйвер базы данных. CA-Clipper версии 5.01 и выше поддерживает RDDs. RDDs позволяют вам заменить драйвер базы данных CA-Clipper (DBFNTX) другим драйвером, что позволяет получить доступ к DBF данным через RDD 3-их фирм (типа Advantage RDD) и к не-DBF данным через другие RDD 3-их фирм.

Зачем нужен Advantage CA-Clipper RDD?  Возможна ли работа ADS без него?

Advantage CA-Clipper RDD - это библиотека с которой необходимо пересобрать Clipper-приложение, чтобы оно смогло работать под управлением Advantage Database Server. Если пользователь использует программное обеспечение, уже собранное разработчиком с использованием CA-Clipper RDD, то естественно, CA-Clipper RDD ему не нужен. CA-Clipper RDD необходим для создания приложения, в момент работы приложения он не требуется.

Сколько стоит Advantage CA-Clipper RDD и где его можно приобрести?

Advantage CA-Clipper RDD, как и все другие клиенты Advantage, распространяется свободно (бесплатно) - вы можете скачать его здесь.

Как работает Advantage RDD?

Advantage RDD переправляет для выполнения все операции по работе с базой данных на сервер, на котором установлен Advantage Database Server. Переправляемые операции включают dbUseArea, dbSkip, dbSeek, ordCreate, dbGoTop, dbAppend и т.д. Так как операции по работе с базой данных выполняются на сервере, где и хранятся данные, понижается сетевой трафик, повышается производительность и исключается разрушение индексов. Существует два Advantage RDD. Один - для поддержки CA-Clipper-совместимых DBF/NTX/DBT (DBFNTXAX), а другой - для поддержки FoxPro-совместимых DBF/CDX/FPT (DBFCDXAX).

Что включено в Advantage CA-Clipper RDD?

Advantage CA-Clipper RDD включает RDD библиотеки для CA-Clipper 5.2 и CA-Clipper 5.3, коммуникационные библиотеки Advantage для поддержки IP и IPX протоколов, файлы включения для использования расширенных возможностей Advantage, OBJ файлы для того, чтобы установить Advantage используемым по умолчанию RDD, коммуникационные библиотеки для интеграции с FiveWin и Clip-4-Win, утилиту ADSDOSIP.EXE и DLLs, документацию в формате Norton Guide, пример сценария для линкера и текстовые файлы с информацией.

Какие файлы включения Advantage мне нужно использовать?

Для использования расширенных команд с DBFCDXAX RDD, используйте DBFCDXAX.CH. Для использования расширенных команд с DBFNTXAX RDD, используйте DBFNTXAX.CH. При использовании CA-Clipper 5.2, DBFCDXAX и COMIX RDDs, используйте AXCDXCMX.CH. При использовании CA-Clipper 5.2, DBFCDXAX и SIXCDX RDDs, используйте  AXCDXSIX.CH.

Какие форматы файлов поддерживает Advantage CA-Clipper RDD? Поддерживает ли он Advantage ADT таблицы?

Advantage CA-Clipper RDD поддерживает CA-Clipper-совместимые типы файлов (DBF, NTX, DBT) и FoxPro-совместимые типы файлов (DBF, CDX, IDX, FPT). Advantage xBase форматы файлов полностью совместимы с не-Advantage драйверами баз данных, которые поддерживают CA-Clipper- и FoxPro-совместимые форматы.

Advantage CA-Clipper RDD не поддерживает Advantage ADT таблицы. Поддержка Advantage ADT таблиц доступна только через Advantage клиентов для Windows, основанных на Advantage Client Engine.

Какие сетевые протоколы поддерживает Advantage CA-Clipper RDD?

Advantage поддерживает сетевые протоколы IP и IPX. Поддержка IPX осуществляется посредством прилинковки одной из трех IPX коммуникационных библиотек Advantage (в зависимости от используемого вами линкера). Поддержка IP осуществляется через утилиту ADSDOSIP.EXE, которая поддерживает связь между Advantage Database Server и DOS-приложением на CA-Clipper (пересылает IP пакеты). Использование IP протокола требует прилинковки одной из трех DOS-IP коммуникационных библиотек Advantage (в зависимости от используемого вами линкера), а также использования ADSDOSIP.EXE, Advantage 32-bit коммуникационной DLL (AXCWS32.DLL) и запуска приложения под 32-битной Windows ОС на клиентской машине.

Работает ли Advantage CA-Clipper RDD с Advantage Database Server и Advantage Local Server?

Advantage CA-Clipper RDD работает с Advantage Database Server, но не работает с Advantage Local Server. Если вам необходим локальный доступ к данным, существуют не-Advantage RDD, поддерживающие локальный доступ к файлам, такие как DBFNTX, DBFCDX, SIXCDX и COMIX, которые могут использоваться совместно с Advantage RDD.

Имеет ли Advantage функциональные возможности, эквивалентные Comix's ClipMore и SixDriver's MachSix оптимизаторам запросов?

Да. Клиентские оптимизированные фильтры Advantage обеспечивают 100% эквивалентную функциональность Comix ClipMore и SixDriver MachSix. Дополнительно, поддерживаются серверные оптимизированные фильтры Advantage, которые создаются и используются на сервере и обеспечивают высокоскоростную фильтрацию.

Могу я использовать FiveWin и Clip-4-Win с Advantage?

Да. Advantage может быть использован совместно с FiveWin и Clip-4-Win с помощью коммуникационных библиотек Windows DLL для связи FiveWin и Clip-4-Win приложений с Advantage Database Server. FiveWin или Clip-4-Win приложения поддерживают сетевые протоколы IP и IPX (ADSDOSIP.EXE не требуется для поддержки IP).

Могу ли я иметь одно приложение, которое может масштабироваться от локального доступа к файлу до Клиент/Сервер доступа?

Да. Advantage Database Server обеспечивает Клиент/Сервер доступ к данным, а некоторые RDD 3-их фирм (типа DBFNTX, DBFCDX, SIXCDX и COMIX) могут обеспечивать локальный доступ к данным. Используйте функцию AX_Loaded(), чтобы определить во время выполнения доступен ли Advantage Database Server на файловом сервере, и используйте Advantage RDD для открытия файлов в том случае, если Advantage Database Server доступен, а локальный RDD - нет.

Какие из особенностей Advantage Database Server доступны для CA-Clipper?

Почти все: обработка транзакций (BEGIN TRANSACTION, COMMIT TRANSACTION, ROLLBACK TRANSACTION), оптимизированные фильтры Advantage (AX_SetServerAOF), защита базы данных (SET RIGHTS CHECKING ON|OFF), установка совместимых блокировок (SET AXS LOCKING ON|OFF), кэширование записей (AX_CacheRecords), шифрование таблиц (SET PASSWORD TO), управление API (AX_UserNames, AX_LockOwner).

Можно ли использовать индексы CDX и IDX в приложениях, написанных на Clipper?

Да, для этого существует отдельный заменяемый драйвер DBFCDXAX. Главное отличие CDX индексов от NTX в том, что множество NTX файлов, относящихся к одному DBF-файлу, заменяет один CDX файл. Каждое индексное выражение (одного NTX файла) соответствует отдельному тегу в CDX файле. Разница в структуре индексов сказывается и на используемом синтаксисе. Так, CDX индексы могут открываться автоматически (не требуется явного предписания использовать индекс CDX с тем же именем, что и DBF).

Как влияет увеличение количества пользователей на производительность ADS (если сравнивать с Clipper-приложениями без ADS)?

При увеличении числа пользователей, время отклика Clipper-приложения без Advantage Database Server изменяется по закону

NK (где N - число клиентов),
а в случае с ADS - по закону N1/K (K - константа).

Таким образом, Clipper-приложение выигрывает по производительности уже при 2-5 пользователях, а при большем количестве пользователей  ADS намного опередит Clipper-приложение. Но в каждом конкретном случае на производительность могут влиять и другие параметры, такие как пропускная способность сети, производительность рабочей станции, сервера и др.

Как происходит конвертация CA-Clipper приложения для использования с Advantage?

bullet

Добавьте библиотеку Advantage RDD (DBFAXS.LIB) в сценарий линковки перед CLIPPER.LIB.

bullet

Добавьте одну из коммуникационных библиотек Advantage в сценарий линковки.

bullet

Добавьте один из Advantage OBJ файлов (DBFCDXAX.OBJ или DBFNTXAX.OBJ) в сценарий линковки, если вы хотите прилинковать код Advantage RDD к вашему приложению и/или установить Advantage RDD умалчиваемым RDD.

bullet

Включите файл включения Advantage в ваш исходный текст, если вы хотите использовать расширенные команды Advantage (такие как SET AXS LOCKING OFF или BEGIN TRANSACTION).

bullet

Используйте AX_Loaded для определения доступности Advantage Database Server на указанном сервере.

bullet

Если вы используете функции RDD 3-их фирм (например, начинающиеся на “cmx” или “SX_”), вам необходимо переименовать их в соответствующие функции Advantage (начинающиеся на “AX_”), или используйте AX_Driver для того, чтобы вызывать функцию Advantage или функцию RDD 3-их фирм.

Какие коммуникационные библиотеки Advantage мне нужно прилинковать?

Для DOS приложений, использующих IPX:

bullet

AXSCOMM.LIB для линковки в real режиме

bullet

AXSBCOMM.LIB для линковки в protected/dual режиме с использованием Blinker

bullet

AXSXCOMM.LIB для линковки в protected режиме с использованием ExoSpace и Causeway

Для DOS приложений, использующих  IP (через ADSDOSIP):

bullet

AXIPCOMM.LIB для линковки в real режиме

bullet

AXIPBCOM.LIB для линковки в protected/dual режиме с использованием Blinker

bullet

AXIPXCOM.LIB для линковки в protected режиме с использованием ExoSpace и Causeway

Для FiveWin и Clip-4-Win приложений прилинкуйте AXSC2WIN.LIB.

Как сделать Advantage RDD умалчиваемым RDD в приложении?

Это можно сделать одним из трех способов:
bullet

Включите один из OBJ файлов Advantage (DBFCDXAX.OBJ или DBFNTXAX.OBJ) в ваш сценарий линковки

bullet

Вызовите функцию RddSetDefault() с именем Advantage RDD

bullet

Вызовите функцию AX_SetRDD с именем Advantage RDD

Зачем нужны Advantage OBJ файлы?

Advantage OBJ файлы (DBFCDXAX.OBJ и DBFNTXAX.OBJ) предназначены для трех вещей:

bullet

Линковка Advantage RDD к приложению;

bullet

Установка Advantage RDD как умалчиваемого RDD в момент запуска приложения;

bullet

Не дают DBFNTX RDD автоматически линковаться к приложению.

DBFCDXAX.OBJ соответствует Advantage DBFCDXAX RDD, DBFNTXAX.OBJ соответствует Advantage DBFNTXAX RDD.

Какие файлы включения Advantage мне нужно использовать?

Для использования расширенных команд с DBFCDXAX RDD, используйте DBFCDXAX.CH. Для использования расширенных команд с DBFNTXAX RDD, используйте DBFNTXAX.CH. При использовании CA-Clipper 5.2, DBFCDXAX и COMIX RDDs, используйте AXCDXCMX.CH. При использовании CA-Clipper 5.2, DBFCDXAX и SIXCDX RDDs, используйте  AXCDXSIX.CH.

В чем разница между выполнением стандартных операций Clipper-ом без ADS и с ним. Как это влияет на производительность?

Clipper выполняет все операции после получения на рабочую станцию необходимой информации. Так при фильтрации записей приложение получит все строки таблицы, а обработает только те, которые попадут под условие фильтра. При использовании Advantage Database Server процесс фильтрации выполняет сервер. Он определяет, подходит строка под условие фильтра или нет, и отправляет на рабочую станцию только те строки, которые удовлетворяют условию. Тем самым снижается сетевой трафик, а кроме того, улучшается использование буферов, так как единожды прочитанная информация может быть предоставлена нескольким пользователям одновременно. Операции, выполняющие чтение всего объема информации, дадут незначительное повышение производительности. Аналогичная ситуация с добавлением данных (в версии 5.0 реализован механизм использования пространства удаленных строк для добавления новых, что может сказаться на производительности). Индексация выполняется на сервере и рабочая станция не получает никакой информации, необходимой для построения индекса, поэтому индексация бесспорно выполнится быстрее с ADS, чем без него.

Новый RDD, прилинкованный к моей Clipper-задаче, вызывает переполнение памяти. Что можно предпринять?

Если ваше приложение написано на Clipper, то оно может быть собрано для работы в защищенном режиме процессора. Это снимает ограничение 640 Кбайт памяти, в которой может располагаться исполняемый код. Для сборки в защищенный режим можно использовать Blinker. Не забывайте, что полностью воспользоваться преимуществами работы сборщика вы сможете, если будете пользоваться сценариями сборки, рекомендованными в ADS'овской документации для конкретного сборщика.

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

Для сборки в защищенный режим необходимы специальные версии библиотек. Если вы разрабатывали специальные функции на C/C++, то их придется перекомпилировать (и возможно скорректировать) для того, чтобы они могли работать в защищенном режиме. Если вы использовали CA-Clipper Tools, то придется воспользоваться специальными версиями библиотек для защищенного режима. Для Clipper 5.01 не существует библиотек защищенного режима из CA-Clipper Tools, поэтому придется обновить ваше Clipper 5.01 приложение до версии 5.2e – самой надежной из всех версий Clipper 5.2x.

Каков максимальный размер исполняемого модуля приложения на Clipper  для работы с ADS в реальном режиме?

Ограничением является не общий размер исполняемого файла, а размер статического сегмента в коде плюс общий размер максимального количества оверлеев, одновременно загруженных в память. Оценить этот объем довольно тяжело. Как правило, это ограничение начинает проявляться на программах объемом более 1 Мб, но это не напрямую зависит от абсолютного размера файла EXE и может проявится и на меньших или больших объемах исполняемого модуля. Только практическая апробация позволит узнать достигнут ли предел.

На новом быстром компьютере Clipper-программа начала зависать, хотя на старом работала нормально. Как с этим бороться?

К сожалению, современные быстрые процессоры (AMD, Pentium, Celeron) некорректно обрабатывают некоторые стандартные функции Clipper. Эта тема часто обсуждается в конференциях.

У нас есть программа, написанная на Clipper, но мы не имеем ее исходных текстов. Можем ли мы интегрировать ее с ADS и, если да, то как это сделать?

Для того, что бы Clipper приложение интегрировать с Advantage Database Server необходимо его перелинковать с новым RDD. Для линковки (сборки) нужны OBJ модули. Если потерян только код, а OBJ сохранились, то проблем нет. А вот если нет OBJ, то единственное, что можно сделать - попытаться программой типа DECLIP восстановить исходные коды или подменить драйвер. Эта утилита распространяется бесплатно, она есть на многих BBS и в Internet.

При использовании Advantage CA-Clipper RDD, функция UPPER() некорректно работает с русскими буквами. Как локализовать RDD?

Advantage CA-Clipper RDD локализовывать не нужно - RDD использует драйвера локализации Clipper. Скорее всего у вас не локализован Clipper. К вашей программе должны быть прилинкованы файлы MSGRUS.OBJ и NTXRUS.OBJ.

Список подразделов

bullet

Advantage Database Server: Обзор возможностей

bullet

Advantage Database Server: Спецификации

bullet

Advantage Database Server: Демо-версии

bullet

Advantage Database Server: Прайс-Лист

bullet

Advantage Database Server: Техподдержка

bullet

Advantage Database Server: FAQ

bullet

Advantage Database Server: Онлайн-документация

Advantage Developer Zone
bullet

Knowledge Base

bullet

Группы новостей

bullet

Дистрибутивы ПП

bullet

Сервисные обновления

bullet

Документация и примеры

 

horizontal rule