Q: Где можно найти дополнительную информацию о продуктах компании Centura?
A: На сайтах http://www.centurasoft.com
и http://www.interface.ru
Q: Где я могу найти информацию о
серверах баз данных компании Centura и проблеме 2000
года?
A: Все новые версии SQLBase соответствуют 2000 году.
Более подробную информацию можно найти на http://www.centurasoft.com/support/tech_info/b
ulletins/cli2000.htm. Ваши прикладные программы, которые
обращаются к SQLBase, также следует проверить.
Используйте утилиту, доступную на ftp.centurasoft.com/products/utilities/y2ksqlb.zip
чтобы проанализировать ваши SQLBase базы данных.
Пожалуйста, прочитайте ReadMe.txt и License.txt после
извлечения их из .ZIP файла. Раздел "Поведение
функции YEAR()" так же может быть интересным
Q: Когда производится удаление из таблицы, где присутствуют внешние ключи, скорость работы ужасна! Что можно сделать, для ускорения процесса?
A: Решение заключается в том, что внешние ключи должны быть установлены после того, как будет создан индекс на ссылочную колонку в каждой дочерней таблице. Для каждой таблицы с внешним ключом:
1) Удалить внешний ключ.
2) Создать индекс на колонку, используемую ключем.
3) Воссоздать внешний ключ.
Q: При попытке произвести вставку
данных в таблицу появляется сообщение 'table in an
incomplete state'. В чем причина и что теперь делать?
A: Похоже на то, что индекс, который был
установлен при создании первичного ключа, был
удален. Удалите первичный ключ, создайте индекс,
и заново создайте первичный ключ. Это должно
решить проблему.
Q: Возможно, ли модифицировать таблицу
с данными с использованием утверждения select?
A: Для SQLBase версии 6. x.x можно производить
модификацию с использованием SUBSELECT. В SQLBase версии
7.0 впервые представлена функция, выполняющая
подобные действия. Имеется превосходный пример
для SQLWindows, показывающий данную методику,
доступный на сайте http://www.centurasoft.com/support/tech_info/knowledge_base/sbsinfo/t1tot2.zip
Q: Программа выводит сообщение об
ошибке "Application Dedlock", что необходимо сделать?
A: Эта ошибка происходит, когда несколько программ пытаются установить блокировки на одной и той же странице в базе данных, при этом уже имеется блокировка на странице от других приложений. Блокировки устанавливаются, когда происходит обращение к данным, и зависят от уровня изоляции.
Например:
Оба приложения блокируются. SQLBASE выбирает один из процессов и завершает вторую задачу.
Методика уменьшения подобных проблем следующая.
В программах необходимо откорректировать
порядок insert/update/delete для устранения ситуаций
одновременной блокировки.
Q: Что означает сообщение об ошибке №63731?
A: Такой номер сообщения об ошибке недопустим.
Однако существует правило для определения
реального номера ошибки. Для ошибок, чей номер
выше 60000, необходимо использовать формулу
пересчета “(65536 - [Номер ошибки]) * (-1)”. В данном
случае получаем (65536 - 63731) * (-1) = -1805 “TimeOut”.
Q: Работа сервера базы данных
завершается с ошибкой 703. Что это означает?
A: Ошибка 703 - это вероятно аппаратная проблема.
Выполните "Check Database", и посмотрите результат.
Сервер базы данных не завершит своей работы,
когда будет обнаружена ошибка. Если "Check
Database" обнаруживает ошибку в индекес, удалите, а
затем воссоздайте индекс. Если "Check Database"
находит ошибку в странице, Вы должны найти
разрушенные строки. Создайте новую таблицу с
такой же структурой, как у разрушенной таблицы,
затем вставьте все, не разрушенные строки в новую
таблицу, удалите старую разрушенную таблицу, и
переименуйте недавно созданную таблицу по имени
удаленной таблицы. Этот способ позволит
сохранить не разрушенные данные. После того, как
устранены все неполадки и создана резервная
копия, необходимо произвести UNLOAD/DROP DATABASE/CREATE
DATABASE/LOAD или REORGANZE. Эта операция полностью
восстановит вашу базу данных. См. также:
http://www.centurasoft.com/support/tech_info/knowledge_base/sbsinfo/sbsrecov.html
Q: Выдается отрицательный номер
ошибки. Каково отличие от положительных кодов
возврата?
A: Отрицательная ошибка означает, что сервер
базы данных произвел RollBack. В SQLBase RollBack может быть
ограничен последней компилированной командой
или всей транзакцией. Положительная ошибка
означает, что транзакция все еще активна (то есть
программа может выбрать, выполнять COMMIT либо
RollBack).
Q: Почему выдается сообщение об ошибке
№00422 “Invalid Servername Length”?
A: Многие клиенты не работают с более новыми
серверами, и возникновение ошибки №00422 не
возможно. Эта проблема возникает, когда
пользователь Centura Tem Developer переходит от SQLBase 6.x на
SqlBase 7.x. Необходимо заменить SQLWNTM.DLL и COMDLLS на более
новые версии.
Q: Необходимо использовать константу DATETIME_NULL в сохраненных процедурах, но она не работает. Что происходит?
A: Имеется ошибка использования этой константы
в SQLBase версии 6.X. В SQLBase 7.0.1. это было исправлено.
Q: Появляется сообщение об ошибке 'duplicate server ' при попытке установить SQLBase на Novell.
A: NLM определил, что имеется другой сервер с
таким же именем, которое определено в SQL.INI файле
сервера. ERROR.SQL файл определяет " Remedy:Verify that the
server being installed does not already exit on the network". Проверьте
SQL.INI файл сервера, в секции определения имени
сервера. Измените имя. Убедитесь, что нет других
серверов в сети, использующих то же имя сервера.
Q: Появляется ошибка 182 при попытке
сделать копию на Novell сервере. Что это означает?
A: Сообщение об ошибке 182 указывает, что SQLBASE не
может создать резервный файл. Убедитесь, что
имеется достаточное дисковое пространство для
копирования, и каталог существует. Также
убедитесь, что копия делается 'ON SERVER' и правильно
указан путь. На пример: Server1:sys\backups.
Q: При закрытии SQLBASE на Novell, выдается
сообщение "1.1.14 Module did not release 1152 resources". В чем
заключается проблема?
A: Это - временное событие. Ресурсы станут
свободными через несколько минут.
Q: Как установить SQLBase в виде сервиса
Windows’95 до версии 7?
A: Сервисом в Windows’95 – это обычные программы,
запущенные в момент начальной загрузки. Они
выполнятся прежде, чем кто-либо зарегистрируется
в системе. Чтобы настроить сервис, запустите
REGEDIT.EXE, и перейдите к разделу
HKEY_LOCAL_MACHINE_SOFTWARE\Microsoft\Windows\CurrentVersion\Runservices. Вставьте
новое элемент и дайте ему уникальное имя, типа
"SQLBASESERVER". Установите значение этого
элемента равным полному пути и имени файла
сервера базы данных, например "C:\centura\dbnt1sv.EXE".
Чтобы выполнялся минимизированный запуск, перед
указанием пути необходимо вписать "start/m".
Q: Имеется ли возможность связаться с
локальным SQLBase сервером из 16- и 32-разрядных
приложений?
A: Прежде чем появился SQLBase для Win’95, существовали локальные 16-разрядные SQLBase сервера (DBWSERVR.EXE и DBWINDOW.EXE). Они были довольно просты в настройке и управлении. С появлением SQLBase для Win’95 (DBNT1SV. EXE) возникло несколько соображений, которые следует принять во внимание:
Конфигурирование протокола TCP/IP для Win’95 на
машине, которая не имеет сетевых адаптеров, может
быть сложным и не совсем удачным делом. Шаги,
перечисленные ниже разработаны для оказания
помощи при установке и конфигурировании TCP/IP для
Win’95 так, чтобы к SQLBase серверу для Win’95 можно было
обращаться и 16- и 32-разрядным приложениям.
Если Вы уже установили TCP/IP на вашей машине с
Windows’95 и он работает правильно, проделайте
несколько шагов для конфигурации SQLBase. Эти шаги
подразумеваюьт, что Вы знакомы с SQLEDIT:
Если у Вас не установлен TCP/IP протокол, проделуйте следующие шаги, чтобы сконфигурировать TCP/IP для Win’95:
Q: Для чего используется системная
переменная SQLBASE?
A: Имеется системная переменная SQLBASE, которая
указывает на каталог, в котором SQLBASE должен
искать файлы SQL.INI, ERROR.SQL, MESSAGE.SQL, COUNTRY.SQL, и MAIN.INI. Эта
системная переменная была создана для решения
проблем пользователей, имеющих многочиленные
копии одних и тех же файлов на компьютере.
Чтобы определить \GUPTA каталог, добавьте следующую
строку в ваш AUTOEXEC.BAT:
SET SQLBASE = C:\GUPTA
Если Вы устанавливаете системную переменную SQLBASE, просмотр будет проводиться только в этом каталоге. В противном случае, порядок поиска для вышеупомянутых файлов следующий:
Вы можете устанавливать системную переменную
SQLBASE, и на клиенте и на сервере.
Q: Имеются ли проблемы, при работе с
Windows’98?
A: Centura Software Corporation сертифицирует 32-разрядные
программы для использования в Windows’98. Для
получения дальнейшей информации посетите:
http://www.centurasoft.com/support/tech_info/bulletins/win98warn.html
Q: Почему не загружается SQLBase 7.X в Novell
NetWare 4.11 (NDS), хотя в Начальном Руководстве все
описано?
A: Существуют ошибки в руководстве. Общий порядок загрузки должен быть:
load dsapi
load spxs
load dfd
load dll -------- это не учтено в начальном
руководстве ----------
load tlispxds
load exfmgrnw
load dbnwsrvr
Дополнительная информация может быть найдена
по следующему адресу:
http://www.centurasoft.com/support/tech_info/bulletins/ndsdocpr.html
Q: После аварийного отказа сети, SQLBase
сервер выводит сообщение "missing logfiles". Что
необходимо делать?
A: Иногда происходит то, что последний журнал
был в использовании базой данных в момент
аварийного отказа файлового сервера. В этом
случае сервер может удалить журнал в момент
перезапуска. Восстановление журнала возможно с
помощью с FILER.EXE.
Q: Клиенты Win’95 выдают ошибку "Cannot
load sqlspxw.dll" хотя конфигурация – такая-же как для
Win3.1 клиентов. Имеются установленные клиенты Novell.
Как можно устранить ошибку?
A: См. http://www.centurasoft.com/support/tech_info/knowledge_base/sbsinfo/fileli~1.html
Всякий раз, когда Вы получаете сообщение "Cannot
load library ...", это указывает, что Вы или не можете
загрузить указанную DLL, или один из ее компонент.
Убедитесь, что всего компоненты существуют.
Q: Требуется ли обновление клиентских
компонент, если обновлена версия сервера баз
данных (5.x - 6.x)?
A: Рекомендуется сделать это, для обеспечения
доступа к новым свойствам сервера баз данных.
Q: Какой номер порта TCP/IP используется
для SQLBase?
A: По умолчанию SQLBase использует 2155 порт, но использование ключевого слова LISTENPORT в SQL.INI в разделе протокола клиента, может изменять его. В зависимости от версии сервера настройки протокола должны быть подобны нижеуказанному:
[ <Servername>. < Tcp/ip протокол >]
Listenport = <portnumber>
Если Вы не используете значение portnumber по умолчанию, оно должно быть явно указано в ключевом параметре SERVERPATH в SQL.INI клиента в разделе клиент. Настройки должны выглядеть следующим образом:
[ Winclient.wsock | win32client. ws32]
Serverpath = <servername>. < Hostname | ip адрес >,
<portnumber> / <servicename1> | {*, servicenamen >}
Имеется пример, использования 32-разрядного сервера и 32-разрядного пользователя:
[ Dbntsrvr. ws32]
Listenport = 2500
[ Win32client. ws32]
Serverpath = server1,127. 0. 0. 1,2500/island, video, payroll
Q: Какие файлы копируются при
установке локальной версии SQLBase 7.X?
A: Имеется документ, доступный по адресу:
http://www.centurasoft.com/support/tech_info/knowledge_base/sbsinfo/SQLBaseFileInfo.html
в котором присутствует список файлов,
устанавливаемых с SQLBase DeskTop v7. 0.0, вместе с их
описаниями.
Q: При установке SQLConsole 6.0 не удается создать локальную базу данных! Почему?
A: Вам необходимо создать локальную базу данных для SQLConsole, используя следующие шаги:
Q: Возможно ли иметь "динамические сценарии" для утилиты TLKNRTR (старая версия DOS SQLTALK)?
A: TLKNRTR может быть запущен, как программа, управляемая с помощью пакетных файлов DOS. Параметр INPUT=CommandFile передает в TLKNRTR набор команд, которые должны быть выполнены. В качестве примера можно воспользоваться следующим кодом:
@ECHO OFF
rem set variables
Set BkpDir = \\ machine\vol\backupdir
Set DB = MyDB
Set DBSRV = MyServer
Set Auth = sysadm/password
rem create the commandfile
echo set server % DBSRV %; > tmp.cmd
echo connect % DB % % 1 Auth %; >> tmp.cmd
echo backup database from % DB % to % BkpDir % on server; >> tmp.cmd
echo release log; >> tmp.cmd
echo backup log from % DB % to % BkpDir % on server; >> tmp.cmd
echo exit; >> tmp.cmd
rem execute the commandfile
tlknrtr noconnect bat input = tmp.cmd output = tmp.log
del tmp.cmd
Q: Как можно запустить SqlTalk, чтобы
выполнить сценарий автоматически?
A: Используйте следующие параметры:
SQLTALK BAT INPUT = <skriptfile.wts> OUTPUT < = Logfile >
Q: При попытке запустить Quest не видно никаких кнопок, кроме "New" и "Open". Как это устранить?
A: Quest ищет файл "QUEST.INI", который включает
описания всех кнопок. Необходимо повторно
установить SQLWINDOWS/QUEST, чтобы получить правильные
настройки. Либо можно указать правильный путь
"questdir" в файле WIN.INI в разделе [QUEST].
Q: При попытке вставить пустую строку, производится замена на пробел. Это можно избежать?
A: Маршрутизатор базы данных Centura ведет себя
следующим образом:
Client entry | Oracle | Informix | MS SQLServer | Sybase | IBM DB2 |
Empty string(“”) | NULL | Space | Space | Space(constant) NULL(bind var) |
Space |
NULL | NULL | NULL | NULL | NULL | NULL |
space | Space | Space | Space | Space | Space |
STRING_Null | NULL | NULL | NULL | NULL | NULL |
Чтобы избежать проблемы вставки пробела,
добавьте ключевое слово "SetZeroLengthStringsToNull = 1" в
SQL.INI в секции [WinClient] и [Win32Client].
Q: Как посмотреть протокол работы
SQLRouters?
A: В SQLWindows или CTD, Вы можете отслеживать работу
маршрутизаторов, добавив строку следующего вида
log = <имя файла> в SQL.INI, в секции указанные в
таблице:
SQLRouter Section 16-bit Section 32-bit
Sybase [winclient.sybw] [win32client.syb32]
Oracle [winclient.oraw] [win32client.ora32]
ODBC [winclient.odbw] [win32client.odb32]
Q: При использовании внешнего result set выводится ошибка с номером 163 ("Result set not active"). Как этого избежать?
A: Это сообщение об ошибке обычно связано FRS*:*
файлами, которые не удалены в случае аварийного
отказа. Прежде, чем запускать программу, изучите
каталог TEMP (C:\TEMP или подобный) и удалите все файлы,
начинающиеся с "FRS". Дополнительную
информацию можно получить по адресу:
http://www.centurasoft.com/support/tech_info/knowledge_base/ctdinfo/error163.html
Q: Как необходимо сконфигурировать
подключение с Oracle для 16-разрядных (SQLWindows)
приложений?
A: Запустите SETUP.EXE из каталога "Window" CD Oracle, чтобы установить 16-разрядного клиента. После этого запустите 16-разрядный NET*EASY, чтобы сконфигурировать псевдоним базы данных, например.
Database Alias: MyDB
Protocol: TCP/IP
Host Name: 192.1.11.28
Database Instance: MyDB
Далее, запустите 16-разрядный SQLPlus (Oracle для Windows)
чтобы проверить соединение с базой данных,
использующей псевдоним MyDB. Если связь не может
быть установлена, это - проблема установки Oracle.
Так-же запустите SQLTalk, чтобы связаться с тем же
самым псевдонимом базы данных. Для этого
требуются правильные установки программного
обеспечения для Oracle и следующих секций в SQL.INI:
[ Winclient.dll]
Comdll = sqloraw
[ Oragtwy]
Remotedbname = MyDB, TNS:MYDB
Q: Требуется вставить/модифицировать
данные в базу данных Oracle. При этом выводится
ошибка "ORA-01465 Invalid hex number". Что делается
неправильно?
A: Возможно один из ваших столбцов в базе данных
имеет тип "LONG ROW". Для работы с таким типом
данных необходимо произвести следующее
преобразование SqlSetLongBindDatatype(nBindVarNumber, nDatatype) между
выражениями SqlPrepare() и SqlExecute().
Q: Для числовых значений в формате,
отличном от US данные отображаются неправильно,
при выборке из базы данных Oracle. Как этого можно
избежать?
A: Вы должны изменить параметры настройки для тысяч и десятичных разделителей на международный формат. Необходимо выполнить следующий набор команд:
ALTER SESSION SET NLS_NUMERIC_CHARACTER = ‘.,’
Выполнив следующую команду, Вы можете изменить параметры установки дат:
ALTER SESSION SET NLS_DATE_FORMAT = ' YYYY-MM-DD-HH24. MI.SS'
Направление сортировки:
ALTER SESSION SET NLS_LANGUAGE = GERMAN.
Q: Как установить уровень
оптимизатора?
A: Параметры настройки оптимизатора могут быть изменены с помощью команды:
ALTER SESSION SET OPTIMIZER_GOAL = <уровень>
Где уровень – это одно из следующих значений:
RULE | Rule-based optimization(index) |
CHOOSE | Cost-based optimization(index+amount of data+location of data) |
FIRST_ROW | Cost-based optimization for the first rows of the result set |
ALL_ROWS | Cost-based optimization for the entire result set |
Q: Является ли возможным просмотреть
Execution Plan для SQL-запросов Oracle?
A: Oracle отображает execution plan для объектов базы данных с помощью команды "EXPLAIN PLAN". Чтобы воспользоваться этой командой необходимо убедиться, что таблица "PLAN_TABLE" существует. Ее описание находится в файле UTLXPLAN.SQL:
CREATE TABLE PLAN_TABLE (
statement_id varchar2 (30),
timestamp date,
remarks varchar2 (80),
operation varchar2 (30,
options varchar2 (30),
object_node varchar2 (128),
object_owner varchar2 (30),
object_name varchar2 (30),
object_instance numeric,
object_type varchar2 (30),
optimizer varchar2 (255),
search_columns numeric,
id numeric,
parent_id numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2 (255),
other long);
Q: Как подключиться из SqlWindows к Oracle 8?
A: Используйте 16-битный SqlNet 2.3, поставляемый с
Oracle 7.3. По умолчанию устанавливается 32-разрядный
клиент для Windows’NT, 95 или 98. Чтобы установить
16-битный SqlNet, необходимо войти в каталог Windows на CD
Oracle и запустите 16-битный установщик.
Q: На некоторых машинах, с абсолютно идентичными DLL, SQL.INI файлами и установкой ODBC, производится попытка установки связи. На некоторых машинах выдается ошибка, на других подключение безаварийно. Как можно устранить эту проблему?
A: Эта ошибка связана с проблемой определения
путей загрузки DLL. Необходимо исследовать, как
загружаются необходимые модули на машинах с
нормальной свяью и сравнить со сбойными
машинами. Некоторые драйверы устанавливает ODBC
Администратор(ODBC32. DLL). Это приводит к
несоответствию версий ODBC Engine.
Q: Как можно использовать "begin
transaction" и "commit transaction" в сохраненных
процедурах для MS SQL Server (ver. 6.0 или 6.5)?
A: Если необходимо использовать "begin transaction" и "commit transaction" (или "rollback transaction") в сохраненных процедурах для MS SQL Server(ver 6.0, или 6.5) включите AUTOCOMMIT перед вызовом сохраненных процедур:
Call OdrPrepareProc(hSql, 'Call myproc ', ")
Call SqlSetParameter (hSql, DBP_AUTOCOMMIT, TRUE, ")
Call SqlExecute (hSql)
Call SqlSetParameter (hSql, DBP_AUTOCOMMIT, FALSE, ")
Если нет установки AUTOCOMMIT ON, Centura SQL/API неявно
добавляет "begin tran" прежде, чем вызывается
любое DML утверждение и "commit tran" когда
вызывается SqlImmediate('COMMIT’).
Процедура сообщит об ошибке возврата транзакции:
Create procedure myproc
AS
If @@ TRANCOUNT < > 0
begin
return -1 - - error
end
...
begin tran
-- make some DML here
.....
If <ERROR>
rollback tran
else
commit tran
Q: Как можно конкатенировать столбцы в
утверждениях SELECT?
A: Использование ‘||’ не отрабатывается.
SQL Server использует знак '+' для конкатенации
столбцов, как показано в следующем примере:
SELECT colA + colB + colC FROM tableD INTO :sVar
Q: Нет доступа к JDBC-драйверам для работы. Что неправильно?
A:
Чтобы проверить подключение JDBC, используйте
утилиту JDBCTest, доступную на http://www.intersolv.com
Q: При попытке доступа к SQLBase из MS Access выводится сообщение "Table ‘TMP, % # MAU' alredy exist". Как этого избежать?
A: Детальная информация по этой теме доступна по
адресу:
http://www.centurasoft.com/support/tech_info/bulletins/access~1.html
Q: Используется некоторое программное
обеспечение для загрузки данных в SQLBase с
использованием ODBC, но при этом используются
кавычки для описания столбцов, и следовательно
SQLBase не распознает их правильно. Имеется ли
обходной путь?
A: При использовании приложений, которые
создают SQL-запросы подобно "INSERT INTO
"INETLOG"("ClientHost", ..) ... " для вставки
данных в SQLBase, существует проблема в том, что
кавычки в именах столбцов и таблиц не
воспринимаются. Обходным вариантом является
следующий шаг. Необходимо создать таблицы и
столбцы с кавычками в именах.
Например:
CREATE TABLE "INETLOG"("ClientHost" char (255), ...)
В SQLBASE.
Либо переименуйте уже существующие таблицы.
Q: Используется CTD/SQLWindows SQLRouter для ODBC.
При этом ODBC драйвер не перечислен в списке
доступных драйверов. Что можно сделать?
A: Невозможно проверить все ODBC драйверы. Если
драйвер совместим с ODBC 2.0, то он должен работать.
Если имеются трудности с типами данных,
обратитесь к интерактивной справке для
получения информации о DCC.INI.
Q: Как я восстанвить информацию из
системного каталога ODBC источника данных?
A: Это может быть выполнено с помощью
непосредственного подключения ODBC API. Либо с
помощью использования ODBCTESTX.OCX(свободно
распространяемый ActiveX компонент), который
работает с ODBC API.
Q: При попытке соединяться с
источником данных ODBC, появляется ошибка 401 "Cannot
connect to database". Как можно избежать этого?
A: Centura сохраняет информацию об ODBC в файле по
имени GUPTA.INI. Это, как предполагается, делает
соединение с источником данных быстрее. Этот
файл хранится в каталоге, который содержит ODBC32.DLL.
Рекомендуется удалить GUPTA.INI прежде, чем будет
соединение с ODBC источником данных. Это
предотвратит ошибку, при правильно
сконфигурированом ODBC.
Q: Как можно обойти ошибку 1811 "File not
found" при попытке соединения с ODBC источником
данных?
A: Centura сохраняет информацию об ODBC в файле по
имени GUPTA.INI. Это, как предполагается, делает
соединение с источником данных быстрее. Этот
файл хранится в каталоге, который содержит ODBC32.DLL.
Рекомендуется удалить GUPTA.INI прежде, чем будет
соединение с ODBC источником данных. Это
предотвратит ошибку, при правильно
сконфигурированом ODBC.
Q: При замене ODBC источника данных, для использования другой базы данных Centura хранит соединение со старой базой данных. Как это устранить?
A: Centura сохраняет информацию об ODBC в файле по
имени GUPTA.INI. Это, как предполагается, делает
соединение с источником данных быстрее. Этот
файл хранится в каталоге, который содержит ODBC32.DLL.
Рекомендуется удалить GUPTA.INI прежде, чем будет
соединение с ODBC источником данных. Это
предотвратит ошибку, при правильно
сконфигурированом ODBC.
Q: Драйвер не поддерживает псевдонимы
столбцов. Возможно ли решить эту проблему?
A: Для версии 6. 1. x утверждение, подобное 'SELECT NAME AS CUSTNAME FROM TABLE' всегда возвращает первоначальное имя столбца. Хуже, когда вычисляемые столбцы, агрегаты и т.д. в запросе не возвращают заголовки вообще. SQLBASE 7.0.1 имеет новый ODBC драйвер, версии 3.01.0006. Используя этот драйвер можно прекрасно выполнять запросы типа:
SELECT COMPANY_NAME AS NAME FROM COMPANY;
SELECT INVOICE_NO, SYM(ITEM_PRICE) AS X, AVG(ITEM_PRICE) AS Y FROM INVOICE_ITEM GROUP
BY 1;
SELECT @LEFT(COMPANY_NAME, 4) AS SPLITNAME FROM COMPANY;