Шрифт:
Интервал:
Закладка:
Возвращаемое значение
Число DOUBLE PRECISION или 0, если входное значение выходит за границы диапазона
Замечания
Если VALUE больше или равно 263 либо меньше или равно -263, то произойдет потеря значения, а функция сгенерирует ошибку A TLOSS и вернет 0
Пример
Следующий фрагмент триггера вычисляет и сохраняет синус угла в градусах:
IF (NEW.READINGl IS NOT NULL) THEN
NEW.RDG_SINE = SIN (NEW.READINGl) ;
Связанные или похожие функции
См. также cos(), ASIN(), SINH()
IB_UDF
HSIN(VALUE)
Linux, Win32
Возвращает гиперболический синус значения VALUE
Аргументы
VALUE: столбец или выражение, совместимое со знаковым или беззнаковым числом DOUBLE PRECISION, преобразуемым к значению (в градусах) от -263 до 263
Возвращаемое значение
Число DOUBLE PRECISION или 0, если входное значение выходит за границы диапазона
Замечания
Если VALUE больше или равно 263 или меньше или равно -263, то произойдет потеря значения и функция сгенерирует ошибку a_TLOSS и вернет 0
Пример
Следующий фрагмент триггера вычисляет и сохраняет гиперболический синус угла в градусах:
IF (NEW.READINGl IS NOT NULL) THEN
NEW.RDG_SIN_HYP = SINH(NEW.READINGl);
Связанные или похожие функции
См. также SIN(), TANH(), COSH()
IB_UDF
TAN(VALUE)
Linux, Win32
Возвращает тангенс значения VALUE
Аргументы
VALUE: столбец или выражение, совместимое со знаковым или беззнаковым числом DOUBLE PRECISION, преобразуемым к значению (в градусах) от -263 до 263
Возвращаемое значение
Число DOUBLE PRECISION или 0, если входное значение выходит за границы диапазона
Замечания
Если VALUE больше или равно 263 или меньше или равно -263, то произойдет потеря значения и функция сгенерирует ошибку a_TLOSS и вернет 0
Пример
Следующий фрагмент триггера вычисляет и сохраняет тангенс угла в градусах:
IF (NEW.READINGl IS NOT NULL) THEN NEW.RDG_TAN = TAN (NEW. READINGl) ;
Связанные или похожие функции
См. также сот(), ATAN(), TANH()
IB_UDF
TANH(VALUE)
Linux, Win32
Возвращает гиперболический тангенс значения VALUE
Аргументы
VALUE: столбец или выражение, совместимое со знаковым или беззнаковым числом DOUBLE PRECISION, преобразуемым к значению (в градусах) от -263 до 263
Возвращаемое значение
Число DOUBLE PRECISION или 0, если входное значение выходит за границы диапазона
Замечания
Если VALUE больше или равно 263 либо меньше или равно -263, то произойдет потеря значения, а функция сгенерирует ошибку a TLOSS и вернет 0
Пример
Следующий фрагмент триггера вычисляет и сохраняет гиперболический тангенс угла в градусах:
IF (NEW.READINGl IS NOT NULL) THEN
NEW.RDG_TAN_HYP = TANH (NEW. READINGl) ;
Связанные или похожие функции
См. также TAN(), ATAN()
Подпрограммы форматирования данных
FREEUDFLIB
F_DOLLARVAL(VALUE)
Linux, Win32
Форматирует значение числа с фиксированной точкой в формат валюты, например, в 99 999 999.99, подходящий для конкатенации с символами валюты и другими украшениями
Аргументы
VALUE: столбец или выражение, которое вычисляется в число типа DOUBLE PRECISION или FLOAT
Возвращаемое значение
Строка переменной длины
Замечания
Необходимо быть внимательным по отношению к точности входного числа, особенно в случае, когда оно получается в результате вычисления. Можно ожидать неверных результатов, когда значение передается значениям CHAR или VARCHAR, размер которых слишком мал для приема этого значения
Пример
SELECT '$' || F_DOLLARVAL (CAST (SUM (PURCHASE_AMT) AS DOUBLE PRECISION)) ||' USD'
AS TOTALISPEND FROM MEMBER ACCOUNT WHERE MEMBER_ID = 440099;
Связанные или похожие функции
См. также F_FixedPoint()
FREEUDFLIB
F_FIXEDPOIRT(VALUE1, VALUE2)
Win32
Форматирует передаваемое значение VALUE1 как строку с фиксированной точкой с количеством дробных знаков VALUE2
Аргументы
VALUE1: столбец или выражение, которое вычисляется в число с плавающей точкой: преобразуемое число.
VALUE2: константа или выражение, которое вычисляется в целый тип: количество знаков после десятичной точки для отображения в выходных данных
Возвращаемое значение
Строка переменной длины
Замечания
Необходимо быть внимательным по отношению к точности входного числа, особенно в случае, когда оно получается в результате вычисления. Можно ожидать неверных результатов, когда значение передается значениям CHAR или VARCHAR, размер которых слишком мал для приема этого значения
Пример
SELECT 'TOTALYARDAGE: ' || F_FIXEDPOINT(SUM(YARDAGE), 3) || ' yds'
AS TOTAL YARDAGE FROM PIECE_GOODS
WHERE PRODUCT_ID = 100;
Связанные или похожие функции
См. также FjDollarValue()
IB_UDF
F_GENERATESHDXINDEX(VALUE)
Win32
Получая строку VALUE, вычисляет ее значение SOUNDEX
Аргументы
VALUE: столбец или выражение, вычисляемое в символьный тип, либо имя, для которого генерируется SOUNDEX
Возвращаемое значение
Шестисимвольный индекс SOUNDEX
Замечания
Простой алгоритм SOUNDEX используется для вычисления индекса SOUNDEX, он генерирует алгоритмический код. Вам не нужно понимать этот алгоритм для реализации индексирования SOUNDEX
Пример
Следующий фрагмент триггера BEFORE INSERT демонстрирует, как эта функция может быть использована для автоматического сохранения столбца SOUNDEX в качестве столбца поиска в регистре участников:
IF (NEW.LAST_NAME IS NOT NULL) THEN
NEW. SOUNDEX NAME = F SNDXINDEX (NEW.LAST NAME)
Приложение 2. Решение сетевых проблем
Когда у вас возникают проблемы подключения клиента к серверу, этот набор тестов может помочь вам локализовать причину. Если все они ошибочны, не забывайте о возможности проверки сетевых кабелей: вставлены ли они в разъемы и чисты ли все контакты!
Следующий список содержит основные вещи, которые вы можете попытаться сделать.
Можете ли вы вообще соединиться с базой данных?
Если у вас запущен Суперсервер под Windows или Классический сервер в POSIX, проверьте, можете ли вы выполнить локальное соединение. (Суперсервер в POSIX и Классический сервер в Windows не поддерживают локальных соединений.)
1. Вызовите окно командной строки на машине сервера базы данных и запустите приложение типа isql или графический инструмент под Windows, такой как IB SQL или IBAccess.
2. Попытайтесь соединиться с базой данных без задания имени хоста- просто укажите путь.
POSIX (все в одной команде):
./isql /opt/firebird/examples/employee.fdb
-user SYSDBA -password yourpwd
Windows (все в одной команде):
isql 'c:Program FilesFirebirdFirebird_1_5examplesemployee.fdb'
-user SYSDBA -password yourpwd
Если это работает, значит сервер запущен и путь к базе данных правильный. В противном случае проверьте пароль, а также находит ли ваше приложение правильную версию клиентской библиотеки.
Можете ли вы соединиться с базой данных в локально закольцованном варианте?
Для любой версии сервера (кроме Встроенного сервера под Windows) вы можете эмулировать клиентское соединение с сервером через интерфейс удаленного клиента, соединяясь в локально закольцованном режиме TCP/IP (loopback). Это рекомендованный режим для всех локальных соединений к полным серверам. Если сервисы TCP/IP сконфигурированы и запущены в системе, это должно работать, даже если не инсталлирована сетевая карта.
Вначале откройте файл hosts в текстовом редакторе и убедитесь, что он содержит запись, подобную следующей:
127.0.0.1 localhost # local loopback server
В Windows этот файл должен находиться в каталоге driversetc каталога %system%. В Windows 95/98 он, вероятно, находится в самом каталоге Windows. В POSIX он должен находиться в каталоге /etc.
Если такая запись отсутствует, добавьте ее, сохраните и закройте файл.
1. Вызовите окно командной строки на машине сервера базы данных и запустите приложение типа isql или графический инструмент под Windows, такой как IB SQL или IBAccess.
2. Попытайтесь соединиться с базой данных. POSIX:
./isql localhost:/opt/firebird/examples/employee.fdb -user SYSDBA -password yourpwd
Windows (все в одной команде):
isql 'localhost:с:Program FilesFirebirdFirebird_1_5examplesemployee.fdb'
-user SYSDBA -password yourpwd
Если это работает, значит сервер запущен, TCP/IP работает, путь к базе данных правильный.
! ! !
ПРИМЕЧАНИЕ. Системы POSIX не исеользуют обозначение драйвера. При этом имя сервера, путь и имя файла чувствительны к регистру.
. ! .
Если локальное или локальное закольцованное соединение не проходит и вы уверены, что имя базы данных задано верно, следовательно есть какие-то ошибки в конфигурации сервера или сети.
- Delphi. Учимся на примерах - Сергей Парижский - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Психбольница в руках пациентов - Алан Купер - Программирование