powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
15 сообщений из 15, страница 1 из 1
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #32382087
Janil_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
556: Cannot create, drop, or modify an object on another database server
Эти обе БД нах-ся на одном серваке.
Расшифровка этого кода показывает что она ругается на разность БД текущей и БД где формируется временная таблица(да в хранимой процедуре формируются временные таблицы).
Как решить данную проблему???
Заранее благодарен
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #32382114
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расшифровка ошибки явственно показывает:
This statement attempts to create, drop, or alter an object in an
external database, one other than the current database. You can only
read the contents of an external database.

If you make the external database your current database, you can
modify the contents. Review all uses of names beginning with <dbname>,
which refers to an object in the external database <dbname>.

Т.е. удалять объекты надо там же, где они создавались.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34724617
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся тут с этой же проблемой. Вот только я не понял, он временные таблицы разве не в tempdb создает?
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34724656
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевСтолкнулся тут с этой же проблемой. Вот только я не понял, он временные таблицы разве не в tempdb создает?нет такого понятия tempdb.

А вы ввобще что делаете?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
database a; 
select * from table(set{ 1 }) into temp t12345 with no log; 
database b; 
select * from t12345; 
drop table t12345;

Database selected.
 1  row(s) retrieved into temp table.
Database closed.

Database selected.
unnamed_col_1 
             1 
 1  row(s) retrieved.

Table dropped.

Database closed.
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34725770
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис Евгений ФадеевСтолкнулся тут с этой же проблемой. Вот только я не понял, он временные таблицы разве не в tempdb создает?нет такого понятия tempdb.А можно чуть подробнее? То есть когда я создаю временную таблицу она в каках БД/схеме находится?
Журавлев ДенисА вы ввобще что делаете?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
database a; 
select * from table(set{ 1 }) into temp t12345 with no log; 
database b; 
select * from t12345; 
drop table t12345;

Database selected.
 1  row(s) retrieved into temp table.
Database closed.

Database selected.
unnamed_col_1 
             1 
 1  row(s) retrieved.

Table dropped.

Database closed.
Не совсем. Скорее
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
database a; 
CREATE PROCEDURE AA(
  select * from table(set{ 1 }) into temp t12345 with no log; 
  EXECUTE PROCDURE BB();
END PROCEDURE;

EXECUTE PROCEDURE AA();

database b; 
CREATE PROCEDURE BB(
  BEGIN
    ON EXCEPTION IN (- 206 ) END EXCEPTION WITH RESUME;
    drop table t12345;
    -- Вот здесь он падает, судя по трейсу. Хотя может и строчкой выше
    select * from table(set{ 1 }) into temp t12345 with no log; 
  END
END PROCEDURE;
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34725989
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Фадеев
Не совсем. Скорее
А понял. Проблема не в дроп, а в create.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
database b; 
CREATE PROCEDURE BB()
  select * from table(set{1}) into temp t12345 with no log;
END PROCEDURE;

database a;
CREATE PROCEDURE AA()
  EXECUTE PROCedure b:bb();
END PROCEDURE;

database a;
EXECUTE PROCEDURE AA();

Я думаю баг.
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34726256
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис Евгений Фадеев
Не совсем. Скорее
А понял. Проблема не в дроп, а в create.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
database b; 
CREATE PROCEDURE BB()
  select * from table(set{1}) into temp t12345 with no log;
END PROCEDURE;

database a;
CREATE PROCEDURE AA()
  EXECUTE PROCedure b:bb();
END PROCEDURE;

database a;
EXECUTE PROCEDURE AA();

Я думаю баг.Ну, это совсем корректный вариант скрипта
Да, именно так.
Осталось два вопроса:
1. Почему же баг-то имеет место? Почему в одной БД (кстати, в БД ли?) он может такую таблицу создать, а в другой - никак?
2. Баг Информикса или ...?
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34726308
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот интересно, работает ли

Код: plaintext
1.
2.
database a;
EXECUTE PROCedure b:bb();
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34726415
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тана вот интересно, работает ли

Код: plaintext
1.
2.
database a;
EXECUTE PROCedure b:bb();
Тоже нет.

Парни, нужна помощь. У меня версия 9.40.FC7. Есть ли у кого-то, скажем, 9.40.FC9? Если не затруднит - проверьте, пожалуйста, имеет ли место проблема на нем... Полный скрипт - ниже:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
-- Создание объектов
DATABASE A;

CREATE PROCEDURE AA()
  SELECT *
    FROM TABLE(SET{ 1 })
    INTO TEMP tmp_drop_me_please
    WITH NO LOG;
END PROCEDURE;

DATABASE B;

CREATE PROCEDURE BB()
  EXECUTE PROCEDURE A:AA();
END PROCEDURE;

-- Проблема (1-й вариант)
DATABASE A;
EXECUTE PROCEDURE B:BB();

-- Проблема (2-й вариант)
DATABASE B;
EXECUTE PROCEDURE A:AA();

-- Удаление объектов
DATABASE A;
DROP PROCEDURE AA;

DATABASE B;
DROP PROCEDURE BB;
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34732393
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели ни у кого нет более свежей версии чем у меня?
10-ая, наверное, тоже подойдет. Просто я хочу понять что это именно баг и его починили. Или это фича, и тогда придется что-то придумывать.
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34783758
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевНеужели ни у кого нет более свежей версии чем у меня?
10-ая, наверное, тоже подойдет. Просто я хочу понять что это именно баг и его починили. Или это фича, и тогда придется что-то придумывать.Ну хоть кто-нибудь! :))
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34784545
ak-47
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последний скрипт на
IDS 9.40 UC4
IDS 10.00 UC6

EXECUTE PROCEDURE B:BB();
-556 SQL error: Cannot create, drop, or modify an object on an another database server.
-111 ISAM error: no record found.

EXECUTE PROCEDURE A:AA();
-556 SQL error: Cannot create, drop, or modify an object on an another database server.
-111 ISAM error: no record found.
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34784574
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ak-47Последний скрипт на
IDS 9.40 UC4
IDS 10.00 UC6

EXECUTE PROCEDURE B:BB();
-556 SQL error: Cannot create, drop, or modify an object on an another database server.
-111 ISAM error: no record found.

EXECUTE PROCEDURE A:AA();
-556 SQL error: Cannot create, drop, or modify an object on an another database server.
-111 ISAM error: no record found.Спасибо!
Значит эту багу в более поздних версиях тоже не починили. Или это не бага...
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34786091
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если в рамках одной пользовательской сессии происходит вызов нескольких операторов DATABASE,
тогда временная таблица, может буть удалена, после вызова очередного оператора DATABSE:


When you use an application to create a temporary table, you can use the temporary table until the application exits or performs one of the following actions:

* Closes the database in which the table was created and opens a database in a different database server
* Closes the database in which the table was created
* Explicitly drops the temporary table


С уважением,
Вадим.
...
Рейтинг: 0 / 0
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
    #34788498
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевИли это не бага...
Да, исходя из информации Вадима, это все таки фича :)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]