Симптомы
Инструкция SQL отправляется из IBM DB2 в службу корпорации Майкрософт для распределенной реляционной базы данных архитектура (DRDA). Если инструкция содержит полное имя в кавычки идентификатора, такого как «SCHEMA1. В хост-системе IBM может отображаться Table1,» сообщение об ошибке, подобное приведенному ниже:
SQLCODE: -204
SQLSTATE: 42704
SQLERRMT: квалификатор.» НЕОПРЕДЕЛЕННОЕ ИМЯ
Причина
Эта проблема возникает, так как SQL преобразователь, который используется службой Microsoft для DRDA не правильно проанализировать и обновить полное идентификаторы в кавычках. Кроме того преобразователь SQL не обновляет имя сопоставленной коллекции в зависимости от параметров в файле App.config, который используется службой Microsoft для DRDA имя схемы.
Решение
Информация о накопительном пакете обновления
Исправление, устраняющее эту проблему включен в Накопительное обновление 1 для Microsoft узла Integration Server 2013.
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе «Относится к».
Нужна дополнительная помощь?
Нужны дополнительные параметры?
Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.
В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.
Submitted by: julian bui (jbu311)
Related to a bug found in the bug tracker. It looks like nobody did anything with that one because they didn’t have queries. I was able to duplicate the bug and here are the queries I used. Fields are censored for privacy reasons.
//NEXT THREE LINES EXECUTE WITHOUT ERRORS
String createTableQueryString = «CREATE TABLE MY_TABLE (aaaSMALLINT, bbbBIGINT, cccSMALLINT, ddd DOUBLE PRECISION, eee CHAR(16));»;
PreparedStatement ps = conn.prepareStatement(createTableQueryString);
ps.execute();
//NEXT FEWLINES PRODUCE ERROR:
try {
dataInsertPs = conn.prepareStatement(«INSERT INTO MY_TABLE (aaa, bbb, ccc, ddd, eee) VALUES (?, ?, ?, ?, ? )»);
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, «Could not create prepared statement», ex);
}
ERROR:
databaseURL = jdbc:firebirdsql:embedded:V:TempDB.FDB
Oct 22, 2008 1:24:06 PM Main createPreparedStatement
SEVERE: Could not create prepared statement
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -204
Table unknown
MY_TABLE
At line 1, column 13
at org.firebirdsql.jdbc.AbstractPreparedStatement.<init>(AbstractPreparedStatement.java:127)
at org.firebirdsql.jdbc.FBPreparedStatement.<init>(FBPreparedStatement.java:41)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.firebirdsql.jdbc.FBStatementFactory.createPreparedStatement(FBStatementFactory.java:90)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:869)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:824)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:817)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:293)
at Main.createPreparedStatement(Main.java:101)
at Main.main(Main.java:189)
I could establish the connection to a Firebird database with the following connection string:
ConnectionString = "User ID=SYSDBA;Password=masterkey;Database=localhost:C:\MyDb\mydb.FDB;DataSource=localhost;Charset=NONE;";
But when the C# code tries to execute the query the following error comes:
Dynamic SQL Error SQL Error Code = -204 Table unknown
The code that I’ve tried:
using FirebirdSql.Data.FirebirdClient;
...
FbConnection connection = new FbConnection(ConnectionString);
connection.Open();
FbCommand readCommand = new FbCommand("Select Name From Customer;", connection);
FbDataReader myreader = readCommand.ExecuteReader();
There definitely exists the Customer table (I’ve checked with IBExpert — in that I can read the data). I hardly found anything on Google.
Firebird 2.5 server is running on my Computer. What could be the problem?
Модераторы: kdv, Alexey Kovyazin
-
Konstantin
- Сообщения: 37
- Зарегистрирован: 27 окт 2004, 06:01
Table unknown. RDB$DATABASE.
через IBExpert дал Одной из ролей все права на чтение таблиц.
После этого к базе могу подключится только через SYSDBA.
Пользователи все подключаются через Роли.
если подключаться пользователем с ролью вылетает ошибка
Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Table unknown.
RDB$DATABASE.
At line 2, column 19.
Что делать?? в чем проблема???
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 17 июн 2005, 10:36
нажал не ту нкопку, и создались не те права. см. в rdb$user_privileges
-
Konstantin
- Сообщения: 37
- Зарегистрирован: 27 окт 2004, 06:01
Сообщение
Konstantin » 17 июн 2005, 13:42
Удалил Роль из базы.
почистил все упоминания этой роли в rdb$user_privileges
не помогает.
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 17 июн 2005, 14:05
Сделай backup-restore и больше не балуйся с правами на системные таблицы.
-
Konstantin
- Сообщения: 37
- Зарегистрирован: 27 окт 2004, 06:01
Сообщение
Konstantin » 20 июн 2005, 08:43
Да не трогал я системные таблицы.
Роли права назначал через IBExpert .
Это уже не первый раз. такое а бакап и ресторе 4Гига делать каждый раз. долговато.
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 20 июн 2005, 12:54
Konstantin писал(а):Да не трогал я системные таблицы.
Трогал-трогал. Чудес не бывает.
Konstantin писал(а):
Роли права назначал через IBExpert .
Вот тут руки и не помыл. То ли сам назначил права на доступ к системеным таблицам, то ли Экспертовский автогрант помог.
-
Konstantin
- Сообщения: 37
- Зарегистрирован: 27 окт 2004, 06:01
Сообщение
Konstantin » 20 июн 2005, 13:08
Merlin писал(а): то ли Экспертовский автогрант помог.
А вот этим часто пользуемся.
Так как лечить то??? 4Гига сильно долго бакап ресторе делать.
Причем на убитой базе — удаляли все права кроме Sysdbа
назначали снова — через Эксперт все рано не коннктится.
мне нужно выснить причину что повлекло это.
и в следующий раз лечить это быстро.
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 20 июн 2005, 13:48
select * from rdb$user_privileges where rdb$relation_name starting ‘RDB$’
По уму должен получить не больше 6 записей с доступом к RDB$ROLES — 5 на все права создателя базы (если он не SYSDBA) и 1 на чтение PUBLIC. Если что вылезет ещё — revoke. По идее должно оклематься, но я бы советовал всё-таки b/r — там остаются лишние записи в RDB$SECURITY_CLASSES, чем может аукнуться впоследствии — не знаю.
Submitted by: Schalk Lotz (schalklotz)
Duplicates CORE990
I was honored to inherit a legacy application from a college that left. The application is written in Borland C++, using a firebird database.
The problems are that when you run queries and commit it to the database; I get the following error message.
«Error : Dynamic SQL Error SQL error code = -204 Table unknown NUMBER at line 1, column 152»
Now NUMBER is a column in a table and not a table itself.
Now the killer is, it only happens on certain PC. All are XP service pack 2, but I can’t seem to find a difference that indicates what the problem is.
The fact that it only happens on certain PC makes me believe it is a environment / setup error, so before I start hacking into the code that is undocumented I thought to ask if anyone had something similar to this before, and if so what is the problem en how can we fix this.
All help will be appreciated
Kind regards
Schalk
Модераторы: kdv, Alexey Kovyazin
-
Konstantin
- Сообщения: 37
- Зарегистрирован: 27 окт 2004, 06:01
Table unknown. RDB$DATABASE.
через IBExpert дал Одной из ролей все права на чтение таблиц.
После этого к базе могу подключится только через SYSDBA.
Пользователи все подключаются через Роли.
если подключаться пользователем с ролью вылетает ошибка
Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Table unknown.
RDB$DATABASE.
At line 2, column 19.
Что делать?? в чем проблема???
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 17 июн 2005, 10:36
нажал не ту нкопку, и создались не те права. см. в rdb$user_privileges
-
Konstantin
- Сообщения: 37
- Зарегистрирован: 27 окт 2004, 06:01
Сообщение
Konstantin » 17 июн 2005, 13:42
Удалил Роль из базы.
почистил все упоминания этой роли в rdb$user_privileges
не помогает.
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 17 июн 2005, 14:05
Сделай backup-restore и больше не балуйся с правами на системные таблицы.
-
Konstantin
- Сообщения: 37
- Зарегистрирован: 27 окт 2004, 06:01
Сообщение
Konstantin » 20 июн 2005, 08:43
Да не трогал я системные таблицы.
Роли права назначал через IBExpert .
Это уже не первый раз. такое а бакап и ресторе 4Гига делать каждый раз. долговато.
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 20 июн 2005, 12:54
Konstantin писал(а):Да не трогал я системные таблицы.
Трогал-трогал. Чудес не бывает.
Konstantin писал(а):
Роли права назначал через IBExpert .
Вот тут руки и не помыл. То ли сам назначил права на доступ к системеным таблицам, то ли Экспертовский автогрант помог.
-
Konstantin
- Сообщения: 37
- Зарегистрирован: 27 окт 2004, 06:01
Сообщение
Konstantin » 20 июн 2005, 13:08
Merlin писал(а): то ли Экспертовский автогрант помог.
А вот этим часто пользуемся.
Так как лечить то??? 4Гига сильно долго бакап ресторе делать.
Причем на убитой базе — удаляли все права кроме Sysdbа
назначали снова — через Эксперт все рано не коннктится.
мне нужно выснить причину что повлекло это.
и в следующий раз лечить это быстро.
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 20 июн 2005, 13:48
select * from rdb$user_privileges where rdb$relation_name starting ‘RDB$’
По уму должен получить не больше 6 записей с доступом к RDB$ROLES — 5 на все права создателя базы (если он не SYSDBA) и 1 на чтение PUBLIC. Если что вылезет ещё — revoke. По идее должно оклематься, но я бы советовал всё-таки b/r — там остаются лишние записи в RDB$SECURITY_CLASSES, чем может аукнуться впоследствии — не знаю.
Sone4chko 0 / 0 / 0 Регистрация: 27.09.2009 Сообщений: 56 |
||||
1 |
||||
08.11.2011, 01:58. Показов 7874. Ответов 5 Метки нет (Все метки)
Здравствуйте! Не могу понять почему не работает запрос по базе, созданной в InterBase. База подключена к программе на Builder C++. В коде запроса я прописала:
Выдает ошибку Dynamic SQL Error. SQL Error Code = -204. Table unknown Championship. подскажите пожалуйста в чем проблема. 0 |
1263 / 706 / 62 Регистрация: 21.12.2009 Сообщений: 2,255 |
|
08.11.2011, 06:15 |
2 |
Вы уверены, что в Вашей БД, которую вы создали и с которой соединяетесь есть таблицы Championship и Club
Если Championship с Club поменять местами, будет писать Club Как только при попытке исполнения запроса обнаруживается отсутствие объекта в БД сервер сообщает об ошибке и прекращает дальнейшую обработку запроса. Так, что тут никаких чудес нет! 0 |
0 / 0 / 0 Регистрация: 27.09.2009 Сообщений: 56 |
|
08.11.2011, 13:53 [ТС] |
3 |
да, я уверена, что таблицы существуют. они у меня тоже открыты в программе. И при создании запроса на боковой панели есть список всех таблиц в этой базе, среди них есть и Championship, и Club 0 |
1263 / 706 / 62 Регистрация: 21.12.2009 Сообщений: 2,255 |
|
08.11.2011, 15:36 |
4 |
Сколько-нибудь точных предположений по поводу Вашей проблемы нет, к сожалению. Рекомендации следующие 0 |
0 / 0 / 0 Регистрация: 27.09.2009 Сообщений: 56 |
|
08.11.2011, 19:50 [ТС] |
5 |
Проблема была действительно в ковычках. Спасибо!) 0 |
1263 / 706 / 62 Регистрация: 21.12.2009 Сообщений: 2,255 |
|
09.11.2011, 05:39 |
6 |
Проблема была действительно в ковычках В общем случае использовать кавычки при именовании объектов не рекомендуется. Их приходится использовать, если объектам БД присваиваются имена с использованием корилицы или используются зарезервированные слова. Но этого тоже делать не надо, ибо, как правило, порождает побочные эффкты! 0 |
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS
Contact US
Thanks. We have received your request and will respond promptly.
Log In
Come Join Us!
Are you a
Computer / IT professional?
Join Tek-Tips Forums!
- Talk With Other Members
- Be Notified Of Responses
To Your Posts - Keyword Search
- One-Click Access To Your
Favorite Forums - Automated Signatures
On Your Posts - Best Of All, It’s Free!
*Tek-Tips’s functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.
Posting Guidelines
Promoting, selling, recruiting, coursework and thesis posting is forbidden.
Students Click Here
SQL error -204 «table unknown» (Delphi 5 Prof / IB open source)SQL error -204 «table unknown» (Delphi 5 Prof / IB open source)(OP) 19 Oct 02 04:15 Hi experts, I have a problem connecting a DBGrid to an InterBase table. DB components used are: All connected as described in the online help «InterBase Express Reference». When I at design time set IBDataset.Active to true I receive the following: The table exists in my local database, it can be used in the editor from IBDataSet.SelectSQL (string stored is «Select * from Bank»). Tried now for quite some time, incl. other components, but do not get any further. Did anyone come across this as well, or has an idea what I possibly do wrong? Any help appreciated — Thanks! Cheers, Red Flag SubmittedThank you for helping keep Tek-Tips Forums free from inappropriate posts. |
Join Tek-Tips® Today!
Join your peers on the Internet’s largest technical computer professional community.
It’s easy to join and it’s free.
Here’s Why Members Love Tek-Tips Forums:
- Talk To Other Members
- Notification Of Responses To Questions
- Favorite Forums One Click Access
- Keyword Search Of All Posts, And More…
Register now while it’s still free!
Already a member? Close this window and log in.
Join Us Close