powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / проблемы с временными таблицами (драйвер не держит сессию???)
10 сообщений из 10, страница 1 из 1
проблемы с временными таблицами (драйвер не держит сессию???)
    #33606058
tester1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, может кто знат что за глюк.
создаю временную таблицу, допустим
create temp table someTempTable (
.....
) with no log;

затем
insert intp someTempTable ....

и вот здесь происходит ошибка:

[quote]
System.Data.Odbc.OdbcException: ERROR [42S02] [INTERSOLV][ODBC Informix driver][Informix]The specified table (someTempTable) is not in the database.

at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
....
[/quote]

Используется как вы видите .NET Provider for ODBC с INTERSOLV'ским драйвером (впринципе, тестил на многих других, SDK 2.90 включительно), результат тот же самый...

Поскольку, тот же самый скрипт запущенный из-под Server Studio отрабатывает нормально... посему я считаю. что какие-то грабли в дровах (во всех???) или руках (но в какой части?;) или ещё в чём-то - подскажите вы.

Кстати, какой есть способ не использую временные таблицы, создать таблицу с уникальным именем???

Большое спасибо!
...
Рейтинг: 0 / 0
проблемы с временными таблицами (драйвер не держит сессию???)
    #33606078
tester1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин, прошу прощения за опечатку при наборе... следует читать
tester1
create temp table someTempTable (
.....
) with no log;

затем
insert into someTempTable ....


опечатка допущена только при постинге в форум, в исходниках она отсутствует...

Собственно, буду признателен за любой совет...
...
Рейтинг: 0 / 0
проблемы с временными таблицами (драйвер не держит сессию???)
    #33606198
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это формы или asp.net или что? Код показывай в общем.
С пулингом знаком? Теперь он по умолчанию включен. Может из-за него?



-----------------------------------------------------------
Решительный шаг вперед -- результат хорошего пинка сзади
...
Рейтинг: 0 / 0
проблемы с временными таблицами (драйвер не держит сессию???)
    #33606350
tester1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это формы (C#), пулинг включен (в IIS кажется наоборот...)
вот чанк кода :

OdbcCommad cmd;
....
cmd.CommandText=@"create temp table tmpTable (
id integer,
value varchar(32)) with no log;
insert into tmpTable values (0, 'some text');";

cmd.ExecuteReader();


или

cmd.CommandText=@"create temp table tmpTable (
id integer,
value varchar(32)) with no log;
insert into tmpTable values (0, 'some text');
select * from tmpTable;";

OdbcDataReader reader = cmd.ExecuteReader();

while(reader.Read()) {
...
...
Рейтинг: 0 / 0
проблемы с временными таблицами (драйвер не держит сессию???)
    #33606568
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tester1Это формы (C#), пулинг включен (в IIS кажется наоборот...)пуллинг это св-во odbc драйвера, но проблема не в этом.


tester1
OdbcCommad cmd;
....
cmd.CommandText=@"create temp table tmpTable (
id integer,
value varchar(32)) with no log;
insert into tmpTable values (0, 'some text');";

cmd.ExecuteReader();
Ваши команды выполняются одновременно (параллельно). Т.е. insert начинается раньше или одновременно с create. Это свой-во информикса. Серверстудио выполняет их последовательно, считая не одной командой, а двумя.

Вы должны делать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
OdbcCommad cmd;
....
cmd.CommandText=@"create temp table tmpTable (
id integer,
value varchar(32)) with no log";
cmd.ExecuteReader();

cmd.CommandText=@"insert into tmpTable values (0, 'some text')";
cmd.ExecuteReader();
Или напишите свой компанент cmdscripts, умеющий парсить по символу ";", и пользуйтесь им.
...
Рейтинг: 0 / 0
проблемы с временными таблицами (драйвер не держит сессию???)
    #33607951
tester1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ, но эта ошибка осталась...
странно то, что этот же самый еррор возникает когда создаю и просто (т.е. не временную temp ... with no log ) таблицу...

Создание таблицы происходит нормально (никаких сообщ об ошибке и т.д. не возникает), а вот первая попытка записать что-то в созданную таблицу, вызывают эту ошибку.

То, что я как-то неправильно подсоединяюсь с БД - отпадает (т.к. могу читать из других таблиц).

Также, права есть на всё (коннекчусь под юзером информикс, которому всё можно)...
...
Рейтинг: 0 / 0
проблемы с временными таблицами (драйвер не держит сессию???)
    #33608022
tester1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...такое впечатление, что драйвера не держат сессию (игрался с настройками пуллинга - тот же результат)

например, в той же студии
1. делаю новую временную таблицу - OK
2. жду 1-2 минуты, пытаюсь что-то вытащить из неё - OK
3. Закрываю сервер студию, запускаю снова, делаю выборку из этой тбл - как и должно быть, возникает эта ошибка авторThe specified table (tmp_strategy_rel) is not in the database.

Теперь, создаю таблицу (любую, не временную) из своей проги - ок
пытаюсь в неё писать - авторSystem.Data.Odbc.OdbcException: ERROR [42S02] [INTERSOLV][ODBC Informix driver][Informix]The specified table (tmp_strategy_rel) is not in the database.
...
Рейтинг: 0 / 0
проблемы с временными таблицами (драйвер не держит сессию???)
    #33609452
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте протрейсить odbc и посмотреть что происходит между командами.
В таком вот аксепте
...
Рейтинг: 0 / 0
проблемы с временными таблицами (драйвер не держит сессию???)
    #33609761
tester1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ладно господа, сенкс всем кто отвечал...
никакое другое решение, кроме как вытаскивать к себе промежуточные данные и создания временной таблицы у себя на стороне, я не нашёл...
работает, как и следовало ожидать, ужасно долго, однако программа решает свою задачу...
с другой стороны, если кто-то ещё что может посоветовать - я считаю тему открытой.

удачи.
...
Рейтинг: 0 / 0
проблемы с временными таблицами (драйвер не держит сессию???)
    #33609887
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Со стадартным ibm informix odbc и ms .net db provider for odbc проблем никаких. Работает несколько лет.

Вот специально для вас проверяю (два года на C# не писал):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
		private void button1_Click(object sender, System.EventArgs e)
		{   OdbcConnection odbcConnection1;
			OdbcCommand odbcCommand1;

			odbcConnection1 = new OdbcConnection();
			odbcCommand1 = new OdbcCommand();

			odbcConnection1.ConnectionString = "DRIVER={IBM INFORMIX 3.82 32 BIT};UID=informix;PWD=informix;DATABASE=salary;HOST=localhost;SERVER=ol_k1;SERVICE=1526;PROTOCOL=onsoctcp;CLIENT_LOCALE=ru_RU.1251;DB_LOCALE=ru_RU.1251;VMBCHARLENEXACT=0;CONNECTDATABASE=YES;EXCLUSIVE=0;CURSORBEHAVIOR=0;ENABLESCROLLABLECURSORS=0;ENABLEINSERTCURSORS=0;OPTIMIZEAUTOCOMMIT=1;OPTOFC=0;REPORTKEYSETCURSORS=0;NEEDODBCTYPESONLY=0;FETCHBUFFERSIZE=4096;DESCRIBEDECIMALFLOATPOINT=0;DONOTUSELVARCHAR=0;REPORTCHARCOLASWIDECHARCOL=0;";
			odbcConnection1.Open();
			odbcCommand1.Connection = odbcConnection1;
			odbcCommand1.CommandText=@"create temp table tmpTable (id integer,value varchar(32)) with no log";
			odbcCommand1.ExecuteNonQuery();

			odbcCommand1.CommandText=@"insert into tmpTable values (0, 'some text')";
			odbcCommand1.ExecuteNonQuery();
		}

Правда у меня Borland® C#Builder® for the Microsoft® .NET Framework Version 10.0.2166.28377 Update 1, но я думаю разницы никакой.
Работает без ошибок.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / проблемы с временными таблицами (драйвер не держит сессию???)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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