Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Шрифт:
IB_UDF | SIN(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_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 Files\Firebird\Firebird_1_5\examples\employee.fdb'
– user SYSDBA -password yourpwd
Если это работает, значит сервер запущен и путь к базе данных правильный. В противном случае проверьте пароль, а также находит ли ваше приложение правильную версию клиентской библиотеки.
Можете ли вы соединиться с базой данных в локально закольцованном варианте?
Для любой версии сервера (кроме Встроенного сервера под Windows) вы можете эмулировать клиентское соединение с сервером через интерфейс удаленного клиента, соединяясь в локально закольцованном режиме TCP/IP (loopback). Это рекомендованный режим для всех локальных соединений к полным серверам. Если сервисы TCP/IP сконфигурированы и запущены в системе, это должно работать, даже если не инсталлирована сетевая карта.