powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Делитантский вопрос
8 сообщений из 8, страница 1 из 1
Делитантский вопрос
    #35598277
Игаев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как вот эту процедуру выполнить простым запросом :
Код: plaintext
1.
2.
3.
CREATE PROCEDURE fe_lastserial()
RETURNING integer;
return dbinfo('sqlca.sqlerrd1');
END PROCEDURE;
...
Рейтинг: 0 / 0
Делитантский вопрос
    #35598306
Алексан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИгаевПодскажите как вот эту процедуру выполнить простым запросом :
Код: plaintext
1.
2.
3.
CREATE PROCEDURE fe_lastserial()
RETURNING integer;
return dbinfo('sqlca.sqlerrd1');
END PROCEDURE;
Обычно используют запрос EXECUTE PROCEDURE proc_name( args )
...
Рейтинг: 0 / 0
Делитантский вопрос
    #35598345
Игаев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:)
Я имел ввиду как обойтись без процедуры. То есть простым запросом.
Это процедура из FAQ - Как получить значение поля SERIAL только что вставленной записи .
Мне ОЧЕНЬ желательно получить это значение без процедуры, а простым запросом.
...
Рейтинг: 0 / 0
Делитантский вопрос
    #35598404
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если информикс >=9
select dbinfo('sqlca.sqlerrd1') from table(set{1})
если информикс <9
select dbinfo('sqlca.sqlerrd1') from systables where tabid=99
...
Рейтинг: 0 / 0
Делитантский вопрос
    #35598420
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати sqlerrd1 возвращается клиенту в каллбеке от сервера и необязательно делать еще один запрос, все зависит от того на чем и как вы программируете.
...
Рейтинг: 0 / 0
Делитантский вопрос
    #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
Делитантский вопрос
    #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
Делитантский вопрос
    #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
8 сообщений из 8, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Делитантский вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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