aSQL
Краткое описание :
Поля DATE и TIME в формате DDF стали цифровымиОписание :
Actian (Pervasive, Btrieve)Что измененно :
Pervasive
SQL-доступ к БД
----- ПРОЯВЛЕНИЕ ПРОБЛЕМЫ -----
В SQL-описании БД Галактики сменился тип данных для полей типа дата и время.
После этого стало сложно прочитать значение даты сторонним приложением.
Требуется вернуть поля типа дата и время при работе через SQL
Как измененно :
Добавлены "зеркальные" поля с суффиксами "$D" для дат и "$T" для времени.
Например, теперь есть поле ATL_LASTDATE и ещё поле ATL_LASTDATE$D
При вставке/редактировании можно писать в любое одно из этих двух полей. При выборке брать поле в зависимости от желаемого формата (ATL_LASTDATE целочисленное, ATL_LASTDATE$D дата)
# ИНСТРУКЦИЯ ПО НАСТРОЙКЕ:
Необходимо выполнить изменение SQL-описания существующей базы одним из следующих способов:
1-й способ:
-----------
Закомментировать в конфигурационном файле комплекса Support параметр SQLDriver.SQLServer.
Запустить комплекс Support, с установленным данным обновлением, под администратором,
войти в модуль "Конвертер словаря БД для Pervasive PSQL" и произвести конвертацию
(с настройками по умолчанию, если нет причин их менять).
Раскомментировать в конфигурационном файле комплекса Support параметр SQLDriver.SQLServer.
2-й способ:
-----------
Запустить утилиту asql.exe c параметром /Btrieve.ADF2DDF=True, не задавая в файле asql.cfg
значение параметра SQLDriver.SQLServer.
Пример командной строки:
asql.exe /c:asql.cfg /Btrieve.ADF2DDF=True
Если не выполнить изменение SQL-описания, то использование base.dll версий 5.5.19 и
выше будет давать неправильный результат сравнения!
aSQL
Краткое описание :
Нестабильное подключение к базе через ODBCОписание :
Actian (Pervasive, Btrieve)Что измененно :
Pervasive
SQL-доступ к БД
----- ПРОЯВЛЕНИЕ ПРОБЛЕМЫ -----
Падение Pervasive PSQL Relational Engine при обходе некоторых индексов Галактики.
В Галактике есть индексы по куску поля (первые N символов от строкового поля),
а в PSQL можно объявить индекс только по целиковому полю.
Пример запроса в Pervasive Control Center:
select CGROUPMC from KATMC where CGROUPMC > 1;
Как измененно :
Больше не падает.
Как изменены индексы, и как это повлияет на быстродействие:
Для усечённого сегмента индекса
(например, KatMC02 = Name + BarKod -- здесь Name усекается с 256 до 224 байт)
создаётся зеркальное поле, в примере NAME$224,
и индекс объявляется по полям NAME$224 + BarKod
(зеркальное поле не занимает дополнительного места и времени в таблице)
Такой индекс не будет применяться при сортировке
ORDER BY NAME, BARKOD или подцепке Where NAME = ? and BARKOD = ? (или JOIN)
Но будет применяться, если подсмотреть определение индекса и
заменить NAME на NAME$224, например,
ORDER BY NAME$224, BARKOD (это код на PSQL, не на DSQL)
При этом при сортировке будут учитываться только первые 223 буквы,
т.е. порядок может получиться не такой же, как ORDER BY NAME, BARKOD
поэтому применение этого индекса для сортировки на совести программиста.
Посмотреть индексы и название их сегментов можно object browser в PCC
или запросом, например, таким:
select xi$file, xi$number, xi$part, cast(xi$flags as binary(2)) as Flags, X$FIELD.* from X$INDEX join x$field on xe$id=xi$field join X$file on xf$id=xi$file where xf$name = 'KATMC';
# ИНСТРУКЦИЯ ПО НАСТРОЙКЕ:
Необходимо выполнить изменение SQL-описания существующей базы одним из следующих способов:
1-й способ:
-----------
Закомментировать в конфигурационном файле комплекса Support параметр SQLDriver.SQLServer.
Запустить комплекс Support, с установленным данным обновлением, под администратором,
войти в модуль "Конвертер словаря БД для Pervasive PSQL" и произвести конвертацию
(с настройками по умолчанию, если нет причин их менять).
Раскомментировать в конфигурационном файле комплекса Support параметр SQLDriver.SQLServer.
2-й способ:
-----------
Запустить утилиту asql.exe c параметром /Btrieve.ADF2DDF=True, не задавая в файле asql.cfg
значение параметра SQLDriver.SQLServer.
Пример командной строки:
asql.exe /c:asql.cfg /Btrieve.ADF2DDF=True
Если не выполнить изменение SQL-описания, то использование base.dll версий 5.5.19 и
выше будет давать неправильный результат сравнения!
aSQL
Краткое описание :
Не работает экспорт данных без указания имени файла-приемникаОписание :
Прямой SQLЧто измененно :
DSQL
Экспорт
----- ПРОЯВЛЕНИЕ ПРОБЛЕМЫ -----
Не работает экспорт с помощью оператора DSQL,
если не задано явно имя выходного файла, например,
sql select * from GRNAL to dbf; // после dbf не указано имя файла
Как измененно :
Исправлено.
Имя файла по умолчанию будет зависеть от времени запуска запроса,
а не от имени главной таблицы, участвующей в запросе, как в экспорте без DSQL.
Рекомендуется задавать имя выходного файла явно.
# ИНСТРУКЦИЯ ПО НАСТРОЙКЕ:
aSQL
Краткое описание :
Поддержать сравнение без учёта регистра на Pervasive при выполнении запросов DSQL и сторонними средствамиОписание :
Actian (Pervasive, Btrieve)Что измененно :
Pervasive
DSQL
----- СУТЬ ПРЕДЛОЖЕНИЯ -----
Поддержать сравнение строк на русском языке без учёта регистра на Pervasive
при выполнении запросов DSQL и сторонними средствами.
(в DSQL -- повысить быстродействие за счёт использование индексов)
Как измененно :
Реализовано.
# ИНСТРУКЦИЯ ПО НАСТРОЙКЕ:
Необходимо выполнить изменение SQL-описания существующей базы одним из следующих способов:
1-й способ:
-----------
Закомментировать в конфигурационном файле комплекса Support параметр SQLDriver.SQLServer.
Запустить комплекс Support, с установленным данным обновлением, под администратором,
войти в модуль "Конвертер словаря БД для Pervasive PSQL" и произвести конвертацию
(с настройками по умолчанию, если нет причин их менять).
Раскомментировать в конфигурационном файле комплекса Support параметр SQLDriver.SQLServer.
2-й способ:
-----------
Запустить утилиту asql.exe c параметром /Btrieve.ADF2DDF=True, не задавая в файле asql.cfg
значение параметра SQLDriver.SQLServer.
Пример командной строки:
asql.exe /c:asql.cfg /Btrieve.ADF2DDF=True
Если не выполнить изменение SQL-описания, то использование base.dll версий 5.5.19 и
выше будет давать неправильный результат сравнения!