powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ошибка в SP
18 сообщений из 18, страница 1 из 1
ошибка в SP
    #32545154
vl2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здраствуйте товарисчи!
Есть SP. При выполнении её в IBExpert выдает ошибку:

multiple rows in singleton select.

Зашел в отладку SP. Запустил на выполнение. Курсор встал на строке:

INSERT INTO opl_faktur (id_opl_faktur, id_faktur,id_opl,d_work, d_opl_faktur, rub, nds, rub_nds, type_record)
VALUES (gen_id(id_generator,1),:fid, :oid,:d_work,:d_zap, :no_nds, :nd, :opl_cur, :type_rec) ;

Сообщение об ошибке в отладчике:
An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Count of columns does not equal count of values.

Ладно, на вкладке ЛастСтайтмент смотрю, что не соответствует:

Statement:
-----------------------------------------------------
INSERT INTO opl_faktur (id_opl_faktur, id_faktur,id_opl,d_work, d_opl_faktur, rub, nds, rub_nds, type_record)
VALUES (gen_id(id_generator,1),28958,25639,'1-MAY-2004', '31-JAN-2004' , 4,45 , 18 , 6,85 , 0 )

т.е. переменная :opl_cur равна 6,85 и эту запятую он и определяет как новое поле.
Переменная :opl_cur определена как Numeric(15,3)
IB60
...
Рейтинг: 0 / 0
ошибка в SP
    #32545169
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.
...
Рейтинг: 0 / 0
ошибка в SP
    #32545170
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К серверу это не имеет отношения.
Это к Хвастунову - news://ibexpert.info/interbase.ibexpert.ru
К слову, какая версия IBE? Давно обновлял?
Свежую брать тут .
...
Рейтинг: 0 / 0
ошибка в SP
    #32545174
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в sql вместо запятой следует использовать точку.
...
Рейтинг: 0 / 0
ошибка в SP
    #32545176
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю что у тебя есть где-то запрос типа
SELECT ... FROM ... INTO ...
который возвращает больше одного значения. А отладчику эксперта доверять нельзя :-/
...
Рейтинг: 0 / 0
ошибка в SP
    #32545177
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это Хвастунов превращает десятичный разделитель в параметре на указанный в локали??

не сталкивался с такой ошибкой...
...
Рейтинг: 0 / 0
ошибка в SP
    #32545189
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Речь идёт об эммуляторе SP.
...
Рейтинг: 0 / 0
ошибка в SP
    #32545203
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тыщу раз отладчиком пользовался...
...
Рейтинг: 0 / 0
ошибка в SP
    #32545207
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да какой он ФП отладчик?!
Говорю же - эмулятор .
...
Рейтинг: 0 / 0
ошибка в SP
    #32545235
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот и я тоже самое говору! тыщу раз этим отладчиком с эмулятором пользовался
...
Рейтинг: 0 / 0
ошибка в SP
    #32545251
goshanew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может у Вас там триггер какой на opl_faktur стоит который делает

Я думаю что у тебя есть где-то запрос типа
SELECT ... FROM ... INTO ...
который возвращает больше одного значения.


А вообще я передаю numeric параметры приведенные к варчару в таких запросах. , т.е '3,65'
...
Рейтинг: 0 / 0
ошибка в SP
    #32545254
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аааа, ты про точку и запятую...
А я про "не верь глазам своим".
В процедуре
Код: plaintext
1.
INSERT INTO opl_faktur (id_opl_faktur, id_faktur,id_opl,d_work, d_opl_faktur, rub, nds, rub_nds, type_record)
VALUES (gen_id(id_generator,  1 ), :fid, :oid,:d_work,:d_zap, :no_nds, :nd, :opl_cur, :type_rec) ;
А эмулятор отправляет на сервер:
Код: plaintext
1.
INSERT INTO opl_faktur (id_opl_faktur, id_faktur,id_opl,d_work, d_opl_faktur, rub, nds, rub_nds, type_record)
VALUES (gen_id(id_generator, 1 ), 28958 , 25639 ,'1-MAY-2004', '31-JAN-2004' ,  4 , 45  ,  18  ,  6 , 85  ,  0  )
Это разные запросы. Если бы эмулятор таки не халявил, а отправлял
честный параметризированный запрос, то не вылезла бы та бредятина, которая вылезла.
Но, возможно (хотя и не обязательно) вылезла бы другая
...
Рейтинг: 0 / 0
ошибка в SP
    #32545263
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goshanewА вообще я передаю numeric параметры приведенные к варчару в таких запросах. , т.е '3,65'
Гоша-нью, а бухгалтерия ещё никагда тебе пальцЫ в двери не зажимала?
Нет? Готовься...
Выполни-ка такой запросик:
Код: plaintext
SELECT CAST('3,65' AS NUMERIC( 15 , 2 )) FROM RDB$DATABASE; 
Результат долОжь.
...
Рейтинг: 0 / 0
ошибка в SP
    #32545267
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мое РЕЗЮМЕ (от нечего делать):

GoldЯ думаю что у тебя есть где-то запрос типа
SELECT ... FROM ... INTO ...
который возвращает больше одного значения. А отладчику эксперта доверять нельзя :-/

это ответ на ошибку не при отладке "multiple rows in singleton select.".

а при отладке возникает другая.

думаю, надо не злить отладчик и задать цифирки без запятой
...
Рейтинг: 0 / 0
ошибка в SP
    #32545286
goshanew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ух ты!
пошел беречь пальцы :-O
...
Рейтинг: 0 / 0
ошибка в SP
    #32545465
vl2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря не ожидал такой скорой и бурной дискуссии :)
Спасибо.

>Мимопро......му
IBE 2003.11.25
Я думаю. к серверу имеет отношение, потому что ошибка впервые всплыла в приложении, когда вызывается эта процедура.

>Gold
Есть, только не
SELECT ... FROM ... INTO .
а
FOR SELECT ... FROM ... INTO...
DO
......
должен по одной записи перебирать

>ГошаНовый
триггера в таблице opl_faktur нету

>fedd
>в sql вместо запятой следует использовать точку.
я же не указываю значение явно, оно получается SELECTом (см. выше)
По поводу резюме я согласен. Щас провел такой эксперимент, вместо
переменной поставил в Инсерт число. Ошибка осталась. Теперь в отладчике IBE она совпадает с первой, а именно:
multiple rows in singleton select
Я тока не врублюсь, где я хватаю несколько записей?
Ладно, буду искать.
Кажись дело в этом куске:
.....
ELSE /* если Фактура погашена Платежем предыдущего рабочего периода */
BEGIN
/* запись идет в книгу продаж */
/* ищем авансовую счет фактуру на эту оплату */
SELECT id_faktur, d_faktur FROM opl_faktur LEFT JOIN FAKTUR
ON faktur.id_faktur=opl_faktur.id_faktur
WHERE opl_faktur.id_opl=:oid AND faktur.type_faktur = 1
ORDER BY d_faktur ASCENDING
INTO :fid_a, :d_fak_a ;

END
Мне надо было получить 1 запись (авансовая СФ, которая была выставлена на этот платеж). А их там похоже несколько (такой вариант возможен).
Блин, как там получить одну запись? Щас поищем.
Всем Огдромное спасибо и земной поклон!
Особенно Мимипроходящему, что не растоптал в грязи :)
Как говорят на украине, Гуд Бай!
...
Рейтинг: 0 / 0
ошибка в SP
    #32545475
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2:Мимоходящий
> SELECT CAST('3,65' AS NUMERIC(15,2)) FROM RDB$DATABASE;

А разве в 3.65 не точка должна быть?
...
Рейтинг: 0 / 0
ошибка в SP
    #32545481
vl2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё заработало нормально, но...
.....
кажется придется послушать Мимопроходящего и переходить на FB.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ошибка в SP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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