|
|
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
Здраствуйте товарисчи! Есть 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 16:51:30 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
К серверу это не имеет отношения. Это к Хвастунову - news://ibexpert.info/interbase.ibexpert.ru К слову, какая версия IBE? Давно обновлял? Свежую брать тут . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 16:57:03 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
в sql вместо запятой следует использовать точку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 16:57:52 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
Я думаю что у тебя есть где-то запрос типа SELECT ... FROM ... INTO ... который возвращает больше одного значения. А отладчику эксперта доверять нельзя :-/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 16:59:14 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
это Хвастунов превращает десятичный разделитель в параметре на указанный в локали?? не сталкивался с такой ошибкой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 16:59:30 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
Речь идёт об эммуляторе SP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:02:07 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
я тыщу раз отладчиком пользовался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:09:06 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
Да какой он ФП отладчик?! Говорю же - эмулятор . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:11:07 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
вот и я тоже самое говору! тыщу раз этим отладчиком с эмулятором пользовался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:23:59 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
может у Вас там триггер какой на opl_faktur стоит который делает Я думаю что у тебя есть где-то запрос типа SELECT ... FROM ... INTO ... который возвращает больше одного значения. А вообще я передаю numeric параметры приведенные к варчару в таких запросах. , т.е '3,65' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:29:20 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
Аааа, ты про точку и запятую... А я про "не верь глазам своим". В процедуре Код: plaintext 1. Код: plaintext 1. честный параметризированный запрос, то не вылезла бы та бредятина, которая вылезла. Но, возможно (хотя и не обязательно) вылезла бы другая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:30:14 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
goshanewА вообще я передаю numeric параметры приведенные к варчару в таких запросах. , т.е '3,65' Гоша-нью, а бухгалтерия ещё никагда тебе пальцЫ в двери не зажимала? Нет? Готовься... Выполни-ка такой запросик: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:33:30 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
мое РЕЗЮМЕ (от нечего делать): GoldЯ думаю что у тебя есть где-то запрос типа SELECT ... FROM ... INTO ... который возвращает больше одного значения. А отладчику эксперта доверять нельзя :-/ это ответ на ошибку не при отладке "multiple rows in singleton select.". а при отладке возникает другая. думаю, надо не злить отладчик и задать цифирки без запятой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:35:23 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
ух ты! пошел беречь пальцы :-O ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:42:56 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
Честно говоря не ожидал такой скорой и бурной дискуссии :) Спасибо. >Мимопро......му 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 запись (авансовая СФ, которая была выставлена на этот платеж). А их там похоже несколько (такой вариант возможен). Блин, как там получить одну запись? Щас поищем. Всем Огдромное спасибо и земной поклон! Особенно Мимипроходящему, что не растоптал в грязи :) Как говорят на украине, Гуд Бай! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 19:22:41 |
|
||
|
ошибка в SP
|
|||
|---|---|---|---|
|
#18+
2:Мимоходящий > SELECT CAST('3,65' AS NUMERIC(15,2)) FROM RDB$DATABASE; А разве в 3.65 не точка должна быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 19:37:17 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32545170&tid=1578532]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 465ms |

| 0 / 0 |
