Демо-версия Alaska Xbase++ имеет ограничение по
времени работы - 30 дней с момента
инсталляции. Любой вызов компилятора,
линкера и созданного выполняемого
модуля сопровождается отображением
сообщения о том, что это демо-версия/сделано
с помощью демо-версии. По функциональным
возможностям демо-версия Alaska
Xbase++ от полного продукта не отличается.
Доступна
русскоязычная документация к
Alaska Xbase++ v.1.9 в формате MS Word.
Alaska
Xbase++ практически полностью поддерживает
Clipper. Основные отличия Alaska Xbase++ от Clipper вы
можете найти здесь. Для
перехода в терминальный (консольный)
режим Windows с помощью Alaska Xbase++, вам
достаточно просто перекомпилировать
свои Clipper-программы, ПРАКТИЧЕСКИ не
меняя исходного текста. Переход в GUI (графический
режим) значительно сложнее - придется
переделывать диалог с пользователем.
Посмотрите два примера в
папке Migrate и ознакомьтесь с документом 'Alaska
Xbase++: Быстрый Старт', в котором для
примера описывается перевод под Alaska Xbase++
популярной Clipper-утилиты DBU.
Существует
несколько отличий между Clipper и Alaska Xbase++,
которые вы можете найти здесь.
Из-за них, некоторые приложения могут
быть перекомпилированы без единого
изменения, а в некоторые все-таки
придется внести небольшие изменения.
Все зависит от вашего стиля
программирования.
Нет.
Alaska
Xbase++ поддерживает 3 режима: терминальный
(консольный), гибридный и GUI.
Терминальный является режимом по
умолчанию, он выглядит как DOS. Clipper-приложение,
перекомпилированное с использованием Alaska
Xbase++, будет работать именно в этом режиме.
Другие режимы достигаются
программированием. Гибридный режим тоже
эмулирует консольное окно, но при этом
позволяет вставку GUI-компонентов, таких
как меню, поля списка, поля
редактирования.
Насколько
набор функций, синтаксис и структура
языка равнозначны Clipper, т.е. если взять
уже готовые программы на Clipper 5 (без каких-либо
библиотек) и перекомпилировать, то
сколько ошибок "вылезет" из-за
отсутствия в Xbase++ той или иной
функции или процедуры?
В
Alaska Xbase++ отсутствуют следующие функции:
AltD() FkLabel() FkMax() NoSnow() ReadKey() Word(). Существуют
отличия и в синтаксисе языка, например,
головной модуль должен называться Main, а
Parameters надо ставить после Local и Static. Иначе
работают и макроподстановки в кодовых
блоках. Насколько серьезны отличия -
решать вам, все зависит от вашего уровня
программирования.
Более
подробную информацию об отличиях Alaska
Xbase++ и Clipper вы можете найти здесь.
Да. Библиотека
Alaska XbToolsIII компании Alaska
Software совместима с CA-Clipper Tools. К сожалению,
демо-версии Alaska XbToolsIII не
существует, разработчики ее выпуск не
планируют.
Лицензия
Alaska XbToolsIII распространяется в составе лицензионных
подписок на Xbase++. Приобретая любую из
лицензионных подписок, вы получаете
лицензию Alaska XbToolsIII текущей версии с возможностью получения
3 последующих обновленных версий продукта.
Механизм
управления базами данных Alaska
ADS-DBE компании Alaska Software обеспечивает
доступ Alaska Xbase++ приложений к Advantage
Database Server. К сожалению, демо-версии Alaska ADS-DBE не существует, разработчики ее выпуск не
планируют.
Существует
также SQL
класс для Xbase++, специально разработанный
фирмой СофтПро для доступа к
Advantage
Database Server и Advantage Local Server
со
StreamlineSQL через Advantage Client Engine
(ACE32.DLL).
Нет!
Приобретая профессиональную
лицензионную подписку, вместе с
другими ее компонентами вы получаете
лицензию Alaska ADS-DBE текущей версии с возможностью получения обновленных версий продукта
в течение 12 месяцев с момента его
регистрации в Alaska Software.
Вам
необходим следующий комплект ПО:
Если
для создания ваших Clipper-приложений вы
использовали CA-Clipper Tools, вам также
потребуется Alaska XbToolsIII. Для
работы с ADS одновременно и из Clipper-программ
и из Alaska Xbase++ программ, что может
потребоваться при постепенном переходе
с Clipper под Alaska Xbase++ (имеется ввиду перевод
в Alaska Xbase++ не всех приложений сразу), вам
необходим Advantage CA-Clipper RDD. При
использовании же Alaska Xbase++ с ADS, Advantage
CA-Clipper RDD не требуется.
Алгоритм
работы Alaska Xbase++ с базами данных ничем не
отличается от алгоритма Clipper. Alaska Xbase++ не
является Клиент/Сервер решением и
работает по технологии Файл/Сервер.
Комплект из Advantage Database Server и Alaska ADS-DBE
позволяет организовать работу по
технологии Клиент/Сервер и полностью
устранить проблему разрушения индексов.
Для
быстрого перевода существующих Clipper-приложений
под Alaska Xbase++ с минимумом изменений мы
рекомендуем использовать библиотеку eXPress++.
Что касается
ПОЛНОГО перевода Clipper приложения в Windows
GUI с использованием Alaska Xbase++, мы не можем
дать конкретные рекомендации, не зная
ваших задач. Существует множество
утилит для Alaska Xbase++ различного
назначения, все зависит от того, какие
конкретно цели вы преследуете. Перечень
распространяемых нами утилит для Alaska
Xbase++ вы можете найти здесь.
В Alaska Xbase++ включена
среда визуальной разработки - Дизайнер
Форм. Вы можете разрабатывать формы с
помощью нее, а затем генерировать
программный код этих форм. Эта среда
облегчает нелегкий труд разработчика,
но сравнивать ее по возможностям с IDE
Delphi, конечно, нельзя.
Alaska
Software объявила о грядущем выпуске Visual
Xbase++. Visual
Xbase++ - среда быстрой разработки
приложений для Alaska Xbase++ языка, включающая
менеджер проектов, редактор исходных
текстов, визуальный отладчик,
визуальный дизайнер, средство создания
модели базы данных и другие инструменты,
значительно упрощающие разработку
приложений.
Да.
Разработчики Alaska Xbase++ рекомендуют
использовать генератор отчетов List & Label.
В
Alaska Xbase++ не используется парадигма
замещаемого драйвера баз данных (RDD), как
это было в Clipper, в нем применяется
концепция механизмов управления базами
данных (DBE или DatabaseEngine), которые могут
заменяться в зависимости от выбранного
типа базы данных. Поэтому библиотеки и
RDD, написанные для Clipper, не являются
пригодными для использования в Alaska Xbase++.
Alaska Xbase++ совместим с базами данных SixDriver
и поддерживает CDX-индексы, но не
поддерживает набор функций SixDriver. При
использовании Alaska Xbase++ совместно с Alaska
ADS-DBE ОСНОВНЫЕ функции SixDriver
поддерживаются.
С
помощью Alaska ODBC-DBE
компании
Alaska Software вы получите доступ к электронным
таблицам MS Excel, базам данных MS Access, MS SQL
Server, Oracle или к любой другой SQL СУБД.
Единственным требованием является
наличие установленного ODBC драйвера.
(информация
любезно предоставлена Константином Лебедевым,
фирма "ПЛАТАН Компонентс")
Необходимо вызвать AdsSetServerType(7) из ACE.DLL и иметь в доступном месте:
ADSLOC32.DLL, ACE.DLL, AXCWS32.DLL, ADSLOCAL.CFG, ANSI.CHR, EXTEND.CHR. Потом обычным образом создается DAC-объект отдельно для локального соединения.
Для корректной работы Xbase++ и Advantage Local Server с русскими
буквами, необходимо чтобы:
1. В файле adslocal.cfg были строчки:
ANSI_CHAR_SET=RUSSIAN
OEM_CHAR_SET=RUSSIAN
2. В Xbase++ программе присутствовала строчка:
SET COLLATION TO SYSTEM
Эта
библиотека компании Alaska Software включает функции и классы
для поддержки основных Internet-протоколов:
TCP/IP, POP3, SMTP, HTTP, FTP. Вы можете
передавать файлы через Internet,
обмениваться сообщениями по e-mail или
создавать свои собственные WWW-сервера.
Лицензия Alaska ASINET распространяется
ТОЛЬКО в составе профессиональной
лицензионной подписки на Xbase++.
Приобретая эту лицензионную подписку,
вместе с другими ее компонентами вы
получаете лицензию Alaska ASINET текущей версии с возможностью получения обновленных версий продукта
в течение 12 месяцев с момента его
регистрации в Alaska Software.
По
заявлению разработчика, Alaska Xbase++ создает
некую оптимизированную смесь
исполнимого кода и P-кода.
При
использовании VFS вы получаете C код, из
которого с помощью компилятора C вы
получаете EXE. Если вы хорошо знаете C, вам,
может быть, больше понравится VFS. Alaska
Xbase++ имеет синтаксис Clipper ООП, все те же
типы данных (включая блоки кода и
встроенный макротранслятор), мощный
механизм работы с графикой, драйвера для
работы с базами данных, которые можно
подгрузить/выгрузить и много-много
другого! Таким образом, если вам
нравится Clipper, ответ однозначен - Alaska
Xbase++.
Все
замеченные нами проблемы с Xbase++ и
русским языком, а также варианты их
решения описаны в этом документе - эти
проблемы достаточно
легко решаются. Количество проблем с
русским языком значительно уменьшится
при использовании Xbase++ в связке с
сервером баз данных Advantage
Database Server или со свободно (бесплатно)
распространяемым механизмом управления
Advantage Local Server.
"Русские"
данные в базах данных и индексах
хранятся без проблем (для построения
индексов, аналогичных Clipper, укажите SET
COLLATION TO ASCII).
Весьма
просто: отображение информации зависит
от выбранного вами шрифта (если, конечно,
ваше приложение работает в GUI режиме).
Данные в базе данных по умолчанию
хранятся в OEM (DOS) кодировке. Правила
сортировки (индексации) надо задавать
ASCII. Драйвер клавиатуры лучше взять
стандартный от Windows.
С
хранением в базе данных проблем нет, т.к.
русские символы - это всего лишь символы,
только из второй половины кодовой
таблицы. С сортировкой в индексах
проблем пока не замечено. Отображение на
экране: если вы создаете консольное 32-ух
битное приложение, которое внешне
выглядит также, как в DOS, оно так же и
будет выглядеть, если вы используете GUI -
то для отображения вы используете
стандартные шрифты, существующие для
данной платформы. Если у вас есть
русские шрифты - проблем нет.
Информацию
о том, что такое "лицензионные
подписки на Xbase++", какие продукты включены в
их состав, а также ответы на часто
задаваемые вопросы по подпискам вы
можете найти здесь.
PDR
- это отчет-описание проблемы или ошибки.
Для каждой замеченной пользователем
проблемы или ошибки, о которой
пользователь сообщил в Alaska Software или их
региональному дистрибьютору, "открывается"
новый PDR с уникальным ID. Этот PDR ID
сообщается пользователю, заметившему
проблему или ошибку. Как только выходит
новая версия продукта, в которой
устранена проблема или исправлена
ошибка, PDR "закрывается", а
пользователю высылается
соответствующее уведомление о закрытии
этого PDR'а. Вы
можете отслеживать статусы
интересующих вас PDR'ов на web-сайте Alaska
Software в разделе WebKB.
Для
поиска PDR'a по номеру, выберите ссылку Click
here to access the WebKB by article (PDR) ID, введите в поле
Query for PDR ID номер интересующего вас PDR'а и нажмите кнопку
Query. Вы получите детальный
отчет по интересующему вас PDR'у и его
текущий статус (закрыт он или нет,
имеются ли способы "обойти" эту
ошибку). Кроме того, нажав на кнопку "Boost
PDR Priority", вы можете проголосовать за
приоритетность закрытия PDR'а, т.е. в новых
версиях продуктов в первую очередь
будут закрыты те PDR'ы, за которые
проголосовало большее количество
пользователей.
Поиск
PDR'a по ключевому слову осуществляется по
ссылке Click here to access the WebKB Full
Text Search.
Мы можем порекомендовать
после
установки Alaska Xbase++ привести структуру дерева директорий к
привычной вам Clipper-структуре. Имейте в
виду, что несущие одинаковую нагрузку
#include файлы Alaska Xbase++ и Clipper называются
одинаково. Во время установки создаются
bat-файлы, которые позволят вам несколько
упростить процесс попеременной работы
Clipper <-> Alaska Xbase++.
По
умолчанию, в программе используются шрифты,
не поддерживающие кириллицу. Необходимо
вручную указать, какой шрифт нужно
использовать.
Для
этого в файле '\ALASKA\XPPW32\SOURCE\SYS\APPSYS.PRG' строчку
'oCrt:FontName := "Alaska Crt"' замените на (например) 'oCrt:FontName
:= "Terminal"'.
Вместо
шрифта "Terminal" можно использовать
любой другой
шрифт, поддерживающий кириллицу в OEM кодировке. После внесения
изменений, необходимо файл "APPSYS.PRG"
прилинковать к приложению.
По
умолчанию, в программе используются шрифты,
не поддерживающие кириллицу. Чтобы в графическом режиме не возникало проблем с русскими
символами, не забывайте вручную устанавливать фонт, поддерживающий
кириллицу.
Пример:
oXbp:= XbpDialog():new( ,,aPos, aSize,, .F. )
oXbp:drawingArea:setFontCompoundName( "12.Arial Cyr Bold" )
Мы
тестируем Xbase++ v. 1.82 Trial в режиме VIO. Как добиться введения в Get русской
буквы "р"
(код 224), которая преобразовывается <INKEY> и <AppEvent> в <End>?
Эта проблема
существует только под Windows 98. Вариант(ы) решения проблемы можно
найти здесь.
Вариант(ы) решения проблемы можно
найти здесь.
Alaska
Xbase++ создаёт 32-ух разрядные приложения, в
связи с чем, для получения выигрыша в
производительности, необходимо
использовать приложение под
управлением 32-ух разрядных операционных
систем. К таким системам относятся Windows NT/2000. Windows 95/98 не относятся к 32-ух
разрядным ОС, они только эмулируют 32-ух
разрядность.
Для
повышения скорости работы Alaska Xbase++
приложений Alaska Software рекомендует
использовать Alaska Profiler.
Для
уменьшения размера exe-файла, вы можете
вынести часть функций в DLL-библиотеки.
Как правило, одними и теми же функциями
пользуются несколько приложений. т.е.
таким образом можно значительно
уменьшить размер всего пакета
приложений в целом. В
любом случае, не переживайте, в Windows нет
ограничений на размер исполнимого файла.
Да,
с помощью свободно распространяемой
библиотеки TBAR (разработчик - Thomas Braun). Вы
можете скачать ее здесь.
Там же вы также найдете другие свободно
распространяемые утилиты для Alaska Xbase++,
например, RegClass - класс Alaska Xbase++ для доступа к
системному реестру Windows.
Achoice()
с пользовательской функцией работает по-разному
в текстовом и графическом режимах: во
время инициализации, Achoice() в графическом
режиме несколько раз передает
управление в пользовательскую функцию,
указывая mode = 3; в текстовом режиме
этого не происходит. "Почему?" -
вопрос передан разработчику. "Как
быть?" - очистить буфер клавиатуры (Clear
TypeaHead) перед вызовом Achoice().
Работа
с цветами в Wopen()/Wselect() Alaska Xbase++ и Alaska XbToolsIII
отличается от Clipper и CA-Clipper Tools. Wopen(); Set Color
to <color> надо заменить на Wopen(,,,,,<color>,<cursor>).
По
заявлению разработчика это - ошибка
препроцессора. Рекомендуемые действия:
вставьте пробелы между лексемами (достаточно
разбить длинную строку выражения на
несколько частей) или уберите do (оставьте
while), чтобы строка не обрабатывалась
препроцессором.
Скорее
всего вы забыли активизировать оконную
систему функцией WInit().
Загрузить
все потенциально необходимые DBE еще в
dbesys.prg.
Если
вы внимательно посмотрите документацию,
то увидите, что в среде Windows эта функция
не реализована. Путь решения проблемы
достаточно прост: загрузите фонт перед
запуском программы с помощью любой DOS
утилиты, например, частью вашей Clipper
программы.
Да,
это - так. Мы также столкнулись
с тем, что STATIC, WHILE, ENDDO, ENDCASE, ENDIF
должны быть помечены символом * (аббревиатура,
идентифицируются по первым 4 символам).
Вероятно, что этот список пополнится еще.
Слово
HIDDEN действительно является
зарезервированным и используется в
описании методов и переменных классов. Если
у вас есть поле базы данных с таким
именем, обращайтесь к нему по алиасу -
ошибка возникать не будет. Если у вас
есть переменная с таким именем, измените
ее имя во всех местах, где встречается
обращение к этой переменной. Если
замена нежелательна, например,
обращение к ней идет в большом
количестве мест, сделайте подмену на
уровне препроцессора.
NAME
- имя одной из функций DBU - совпадает с
зарезервированным словом синтаксиса DEF
файла Blinker. Здесь происходит
нестыковка Alaska Xbase++ и Blinker. Ошибка - в
Blinker.
Статические
DLL: ---------------- - опция XPP для создания DLL - /dll
- линковка должна включать полученную
import libary (LIB) - вызов функции производится
по ее имени - DLL должен быть доступен (рядом
с .EXE или по PATH)
Динамические DLL: ---------------- - опция XPP для
создания DLL - /dll:DYNAMIC - линковка НЕ должна
включать полученную import libary (LIB) - вызов
функции производится функцией DllCall(...) -
DLL может располагаться в любом месте (при
загрузке допустимо указание полного
пути доступа).
Да. Alaska
Xbase++, как и Clipper, имеет систему расширения,
которая отличается от Clipper в связи с
работой в 32-ух разрядной среде. Перевод
ваших C-программ не будет сложным.
При
конвертации Clipper-приложения в xbpcrt
приложение, символы типа "+" и
"-" отображаются некорректно. Что
посоветуете?
Если
вы включите:
SET CHARSET TO ANSI
все нормализуется.
В
Xbase++ версии 1.3 функция Upper() некорректно
работала с русскими символами. Решена ли
эта проблема в текущей версии Xbase++?
Да.
С выпуском Alaska Xbase++ 1.7
функции Upper() и Lower() корректно работают с
русскими символами. Достаточно вставить
в программу 'SET COLLATION TO SYSTEM'.
Я
хочу пользоваться функциями из Windows 32 DLL.
Я знаю, какие у них параметры, но у меня
не получается их передать, так как они
используют C++ структуры. Как мне
вызывать эти функции из Xbase++?
Для
этого вам нужна библиотека BAP, которая
позволит вам создать необходимые
структуры. Библиотеку можно свободно
скачать с сайта
Alaska Software, раздел 'File Library [Downloads/Uploads]',
подраздел 'ACSN'.
Я
выполняю Xbase++ программу в текстовом
режиме из файл-менеджера FAR. После
завершения программы, FAR не
восстанавливает панель экрана и теряет
курсор. Что делать?
Для
того, чтобы этого избежать, вам
необходимо включить в исходный текст
вашего приложения следующие строчки:
#include
"dll.ch"
Static hBuffer:=0
init proc InitX()
// save active screen buffer handle, -11 =
STD_OUTPUT_HANDLE
hBuffer:=DllCall("Kernel32",DLL_STDCALL,"GetStdHandle",-11)
return
exit proc ExitX()
// restore initial active screen buffer
DllCall("Kernel32",DLL_STDCALL,"SetConsoleActiveScreenBuffer",
hBuffer)
return