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?
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.