Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Делитантский вопрос / 8 сообщений из 8, страница 1 из 1
16.10.2008, 14:01
    #35598277
Игаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делитантский вопрос
Подскажите как вот эту процедуру выполнить простым запросом :
Код: plaintext
1.
2.
3.
CREATE PROCEDURE fe_lastserial()
RETURNING integer;
return dbinfo('sqlca.sqlerrd1');
END PROCEDURE;
...
Рейтинг: 0 / 0
16.10.2008, 14:12
    #35598306
Алексан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делитантский вопрос
ИгаевПодскажите как вот эту процедуру выполнить простым запросом :
Код: plaintext
1.
2.
3.
CREATE PROCEDURE fe_lastserial()
RETURNING integer;
return dbinfo('sqlca.sqlerrd1');
END PROCEDURE;
Обычно используют запрос EXECUTE PROCEDURE proc_name( args )
...
Рейтинг: 0 / 0
16.10.2008, 14:22
    #35598345
Игаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делитантский вопрос
:)
Я имел ввиду как обойтись без процедуры. То есть простым запросом.
Это процедура из FAQ - Как получить значение поля SERIAL только что вставленной записи .
Мне ОЧЕНЬ желательно получить это значение без процедуры, а простым запросом.
...
Рейтинг: 0 / 0
16.10.2008, 14:41
    #35598404
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делитантский вопрос
если информикс >=9
select dbinfo('sqlca.sqlerrd1') from table(set{1})
если информикс <9
select dbinfo('sqlca.sqlerrd1') from systables where tabid=99
...
Рейтинг: 0 / 0
16.10.2008, 14:45
    #35598420
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делитантский вопрос
кстати sqlerrd1 возвращается клиенту в каллбеке от сервера и необязательно делать еще один запрос, все зависит от того на чем и как вы программируете.
...
Рейтинг: 0 / 0
17.10.2008, 11:55
    #35600412
Игаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делитантский вопрос
Самое интересное что пример из FAQ возвращает постоянно 0. Пробовал вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
INSERT INTO TEST(p1) VALUES('test');
EXECUTE PROCEDURE fe_lastserial();
--рузльтат 0

INSERT INTO TEST(p1) VALUES('test');
select dbinfo('sqlca.sqlerrd1') from table(set{ 1 })
--рузльтат 0

INSERT INTO TEST(p1) VALUES('test');
select dbinfo('sqlca.sqlerrd1') from systables where tabid= 99 
--рузльтат 0

Хотя данные в таблицу TEST втсавляются и счётчик нормально увеличивается.
...
Рейтинг: 0 / 0
17.10.2008, 12:38
    #35600583
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делитантский вопрос
create table TEST(a serial, p1 char(10));

INSERT INTO TEST(p1) VALUES('test');

select dbinfo('sqlca.sqlerrd1') from table(set{1})
1

IBM Informix Dynamic Server Version 10.00.UC8
...
Рейтинг: 0 / 0
17.10.2008, 22:00
    #35601959
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Делитантский вопрос
ИгаевСамое интересное что пример из FAQ возвращает постоянно 0. Пробовал вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
INSERT INTO TEST(p1) VALUES('test');
EXECUTE PROCEDURE fe_lastserial();
--рузльтат 0

INSERT INTO TEST(p1) VALUES('test');
select dbinfo('sqlca.sqlerrd1') from table(set{ 1 })
--рузльтат 0

INSERT INTO TEST(p1) VALUES('test');
select dbinfo('sqlca.sqlerrd1') from systables where tabid= 99 
--рузльтат 0

Хотя данные в таблицу TEST втсавляются и счётчик нормально увеличивается.
p1 - как описано ? Как serial ? Уверены ?
Оба SQL-предложения выполняются одновременно в одной сессии ?
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Делитантский вопрос / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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