Выбрать главу

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 сконфигурированы и запущены в системе, это должно работать, даже если не инсталлирована сетевая карта.

Вначале откройте файл hosts в текстовом редакторе и убедитесь, что он содержит запись, подобную следующей:

127.0.0.1 localhost # local loopback server

В Windows этот файл должен находиться в каталоге \drivers\etc каталога %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 Files\Firebird\Firebird_1_5\examples\employee.fdb'

-user SYSDBA -password yourpwd

Если это работает, значит сервер запущен, TCP/IP работает, путь к базе данных правильный.

! ! !

ПРИМЕЧАНИЕ. Системы POSIX не исеользуют обозначение драйвера. При этом имя сервера, путь и имя файла чувствительны к регистру.

. ! .

Если локальное или локальное закольцованное соединение не проходит и вы уверены, что имя базы данных задано верно, следовательно есть какие-то ошибки в конфигурации сервера или сети.

Прослушивает ли сервер порт Firebird?

Сервис gds db (порт 3050) не будет отвечать, если серверный процесс не был запущен. См. табл. П2.1, где содержатся инструкции по запуску сервера.

Таблица П2.1. Запуск сервера

ОС

Инструкции

Суперсервер

POSIX

Из командной строки войдите в каталог Firebird /bin и введите команду ibmgr -start

Windows: сервис

Используйте апплет Панель управления менеджера Firebird и щелкните мышью по Start, или в командной строке введите команду NET START FirebirdGuardianDefaultlnstance. В версии 1.0.x введите команду NET START FirebirdGuardian. Вы также можете попытаться запустить этот сервис из апплета Сервисы

Windows: приложение

Запустите Firebird Guardian или Firebird Server из меню Пуск

Классический сервер

POSIX

Здесь не надо ничего делать. Если демон xinet (или inet на старых системах) запущен, он должен стартовать экземпляр fb_inet_server (ib_inet_server для версии 1,0.x), когда вы пытаетесь соединиться с базой данных

Windows: сервис

Перейдите в окно командной строки и введите NET START FirebirdGuardianDefaultlnstance. Вы также можете попытаться запустить этот сервис из апплета Сервисы

Windows: приложение

Запустите Firebird Server из меню Пуск. Замечание: не пытайтесь запускать Классический сервер из апплета Панель управления, не пытайтесь запускать приложение Guardian

Вы получили ошибку, хотя сервис выполняется?

Если клиент получает доступ к серверной машине и сервис gdsdb отвечает, но все еще не может соединиться с базой данных, вы можете увидеть ошибку отказа в соединении (connection rejected). Возможные варианты тестирования описаны в следующих разделах.

Находится ли база данных на физически локальном диске?

Файл базы данных не должен размещаться в файловой системе NFS, на назначенном или совместно используемом диске. Когда процесс ibserver обнаруживает такую ситуацию, он отказывает в соединении.

Для исправления этой ситуации переместите вашу базу данных в файловую систему на жесткий диск, который является физически локальным для сервера базы данных, и скорректируйте соответствующим образом вашу строку соединения.

Правильные ли имя пользователя и пароль?

Клиентское приложение должно использовать комбинацию имени пользователя и пароля, которая соответствует записи в базе данных безопасности на сервере. Эта база данных должна находиться в корневом каталоге инсталляции Firebird и должна быть перезаписываемой серверным процессом.

Имена пользователей и пароли применимы к серверу, а не к отдельной базе данных. Если вы перенесли базу данных с другого сервера, на котором были установлены роли и привилегии, то вы должны установить нужных пользователей на новом сервере.

Имеет ли владелец серверного процесса достаточно полномочий для открытия файлов?

Полномочия к файловой системе, включая права к каталогам, могут вызвать проблемы в POSIX. Полномочия к каталогам могут вызвать проблемы в разделах Windows MTFS.

Серверному процессу может понадобиться больше полномочий по созданию файлов (например, firebird.log или interbase.log) р корневом каталоге Firebird.

Попытки доступа к базам данных в областях файловой системы, которые не сконфигурированы для доступа к базе данных, могут вызвать проблемы в Firebird 1.5 и более поздних - см. параметр DatabaseAccess В файле firebird.conf.