Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА / 15 сообщений из 15, страница 1 из 1
20.01.2004, 17:12
    #32382087
Janil_n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
556: Cannot create, drop, or modify an object on another database server
Эти обе БД нах-ся на одном серваке.
Расшифровка этого кода показывает что она ругается на разность БД текущей и БД где формируется временная таблица(да в хранимой процедуре формируются временные таблицы).
Как решить данную проблему???
Заранее благодарен
...
Рейтинг: 0 / 0
20.01.2004, 17:25
    #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
Период между сообщениями больше года.
13.08.2007, 17:50
    #34724617
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
Столкнулся тут с этой же проблемой. Вот только я не понял, он временные таблицы разве не в tempdb создает?
...
Рейтинг: 0 / 0
13.08.2007, 17:59
    #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
14.08.2007, 11:25
    #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
14.08.2007, 12:06
    #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
14.08.2007, 13:03
    #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
14.08.2007, 13:14
    #34726308
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
а вот интересно, работает ли

Код: plaintext
1.
2.
database a;
EXECUTE PROCedure b:bb();
...
Рейтинг: 0 / 0
14.08.2007, 13:31
    #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
16.08.2007, 14:01
    #34732393
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
Неужели ни у кого нет более свежей версии чем у меня?
10-ая, наверное, тоже подойдет. Просто я хочу понять что это именно баг и его починили. Или это фича, и тогда придется что-то придумывать.
...
Рейтинг: 0 / 0
07.09.2007, 11:44
    #34783758
Евгений Фадеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
Евгений ФадеевНеужели ни у кого нет более свежей версии чем у меня?
10-ая, наверное, тоже подойдет. Просто я хочу понять что это именно баг и его починили. Или это фича, и тогда придется что-то придумывать.Ну хоть кто-нибудь! :))
...
Рейтинг: 0 / 0
07.09.2007, 14:34
    #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
07.09.2007, 14:39
    #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
08.09.2007, 16:44
    #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
10.09.2007, 14:46
    #34788498
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА
Евгений ФадеевИли это не бага...
Да, исходя из информации Вадима, это все таки фича :)
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Коннект в одну БД и с вызовом хранимой проц из др. БД ПРОБЛЕМА / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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