Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Как оказалось, проблемой не была на самом деле цепочка цикличного выполнения синонимов, но то, что синоним указывал на представление, которое не существовало.
Oracle, по-видимому, ошибки как цепочка цикличного выполнения в этом условии.
http://ora-01775.ora-code.com/ предлагает:
РТЫ 01775 : цепочка цикличного выполнения синонимов
Причина : Через серию СОЗДАЮТ операторы синонима, синоним был определен, который упомянул себя. Например, следующие определения являются круговыми:
CREATE SYNONYM s1 for s2 CREATE SYNONYM s2 for s3 CREATE SYNONYM s3 for s1
Действие : Измените одно определение синонима так, чтобы оно относилось к базовой таблице или представлению, и повторите операцию.
Таблица DBA_SYNONYMS
словаря данных имеет информацию обо всех синонимах в базе данных. Таким образом, можно выполнить запрос
SELECT table_owner, table_name, db_link
FROM dba_synonyms
WHERE owner = 'PUBLIC'
AND synonym_name = <<synonym name>>
для наблюдения то, на что в настоящее время указывает общедоступный синоним.
У меня была аналогичная проблема, которая оказалась вызвана отсутствием двойных кавычек в таблице и имени схемы.
Для нашего применения все константы находятся в таблице. Для их извлечения используется простая функция. Нет проблем с перекомпиляцией, ORA-04068,...
-121--2705482-Я бы сказал, чтобы пойти с Жар-птицей - является наиболее используемым ядром базы данных в стране Delphi (см. здесь ). Для подключения, возможно, лучше пойти с Zeos (бесплатно) или DBX (если вы можете позволить себе Architect версии - единственной, кто имеет в ней драйвер Firebird).
О ADO: Зрелый уровень подключения, но он будет (навсегда - скорее всего) связан с Windows, в то время как Delphi будет идти кроссплатформенным. Кроме того, да, это, как правило, медленнее по многим причинам, включая драйверы ODBC, которые используются в определенных ситуациях. Но в вашем случае, конечно, как говорит скамрадт, я не думаю , что это будет так важно.
-121--3909661-Сегодня я получил эту ошибку, и после отладки я понял, что фактические таблицы были пропущены, что я имел в виду, используя синонимы. Поэтому я предлагаю - сначала проверить, существуют ли таблицы!!: -))