Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 29.06.2020
Сообщений: 11
Другое

FirebirdSql.Data.Common.IscException: multiple rows in singleton select

29.06.2020, 16:07. Показов 1441. Ответов 9

Студворк — интернет-сервис помощи студентам
При выводе таблицы выходит данная ошибка в отладке, что могло вызвать?

Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: FirebirdSql.Data.Common.IscException: multiple rows in singleton select

Ошибка источника:

C#
1
2
3
  lstOutTable = (crClass.getCatRegl_OutTable()); // строка 533
        if (lstOutTable.Count > 0)  // строка 534
        {  // строка 535
Исходный файл: c:\inetpub\YaKITv4.1.MSH\WEBFORMS\cat_re gl.ascx.cs Строка: 533

Трассировка стека:

[IscException: multiple rows in singleton select]
FirebirdSql.Data.Client.Managed.Version1 0.GdsDatabase.ProcessResponse(IResponse response) +70
FirebirdSql.Data.Client.Managed.Version1 0.GdsDatabase.ReadResponse() +60 FirebirdSql.Data.Client.Managed.Version1 2.GdsStatement.Execute() +240 FirebirdSql.Data.FirebirdClient.FbComman d.ExecuteCommand(CommandBehavior behavior, Boolean returnsSet) +293
FirebirdSql.Data.FirebirdClient.FbComman d.ExecuteNonQuery() +44

[FbException (0x1400014c): multiple rows in singleton select]

FirebirdSql.Data.FirebirdClient.FbComman d.ExecuteNonQuery() +185
YaKIT.C1.DataBase.FireBird.execSqlQuery( String query) +330
YaKIT.C1.DataBase.DBConnectNotParams.exe cSqlQuery(String query) +213

[Exception: YaKIT.C1.Database => execSqlQuery :: update z_B24D1A8FAC set g1=(select t1.zn101 from data_9002 t1 where t1.gr=3 and t1.ULUS is not null and z_B24D1A8FAC.ULUS=t1.ULUS and t1.OKPD is not null and z_B24D1A8FAC.OKPD=t1.OKPD and (t1.razrez in('ОТЧЕТ', 'УЛУС', 'ТЕРР')))] YaKIT.C1.DataBase.DBConnectNotParams.cat chThrow(String message, Exception ex) +144
C#
1
2
3
//procedure database
sql = 'insert into data_9002 (razrez, ulus, okpo, okpd, gr, god, mes, zn0, zn101) select ''ОТЧЕТ'' as razrez, k.ulus, k.okpo, d.s1 as okpd, d.gr as gr, ' || :god || ', ' || :mes || ', 1 as zn0, zn as zn101 from frm_data' || :god || '_period' || :mesv || '_3 d, s_okpo' || :god || '_period' || :mesv || ' k, s_ko' || :god || '_period' || :mesv || '_3 ko where d.ko=k.okpo and d.ko=ko.ko and coalesce(d.zn,0)<>0 and d.st=''10.3.1'''; EXECUTE STATEMENT (:sql) WITH autonomous transaction;
sql = 'insert into data_9002 (razrez, ulus, okpo, okpd, gr, god, mes, zn0, zn101) select ''ОТЧЕТ'' as razrez, k.ulus, k.okpo, ''0'' as okpd, d.gr as gr, ' || :god || ', ' || :mes || ', 1 as zn0, zn as zn101 from frm_data' || :god || '_period' || :mesv || '_3 d, s_okpo' || :god || '_period' || :mesv || ' k, s_ko' || :god || '_period' || :mesv || '_3 ko where d.ko=k.okpo and d.ko=ko.ko and coalesce(d.zn,0)<>0 and d.st=''10.3'''; EXECUTE STATEMENT (:sql) WITH autonomous transaction;
YaKIT.C1.DataBase.DBConnectNotParams.exe cSqlQuery(String query) +445
YaKIT.WebForms.csCatRegl.getCatRegl_OutT able() +18277
YaKIT.WebForms.cat_regl.drawOutTable() in c:\inetpub\YaKITv4.1.MSH\WEBFORMS\cat_re gl.ascx.cs:533
YaKIT.WebForms.cat_regl.create() in c:\inetpub\YaKITv4.1.MSH\WEBFORMS\cat_re gl.ascx.cs:296
YaKIT.WebForms.cat_regl.Page_Load(Object sender, EventArgs e) in c:\inetpub\YaKITv4.1.MSH\WEBFORMS\cat_re gl.ascx.cs:143
System.Web.UI.Control.OnLoad(EventArgs e) +108
System.Web.UI.Control.LoadRecursive() +90
System.Web.UI.Control.LoadRecursive() +185
System.Web.UI.Control.LoadRecursive() +185
System.Web.UI.Control.LoadRecursive() +185
System.Web.UI.Control.LoadRecursive() +185
System.Web.UI.Control.LoadRecursive() +185
System.Web.UI.Control.LoadRecursive() +185
System.Web.UI.Control.LoadRecursive() +185
System.Web.UI.Page.ProcessRequestMain(Bo olean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1607

Нашел YaKIT.C1.Database.dll в поисках запроса но там не нашел данный запрос
C++
1
update z_B24D1A8FAC set g1=(select t1.zn101 from data_9002 t1 where t1.gr=3 and t1.ULUS is not null and z_B24D1A8FAC.ULUS=t1.ULUS and t1.OKPD is not null and z_B24D1A8FAC.OKPD=t1.OKPD and (t1.razrez in('ОТЧЕТ', 'УЛУС', 'ТЕРР')))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.06.2020, 16:07
Ответы с готовыми решениями:

При добавлении данных в DGV появляется ошибка "multiple rows in sigleton select"
Добрый день! Может кто объяснить почему при добавлении в датагрид вылазиет ошибка multiple rows in sigleton select public void...

Rows cannot be programmatically added to the DataGridView's rows collection when the control is data-bound
Здравствуйте! Столкнулся с такой проблемой. Есть компонент dataGridView, он связан с одной из таблиц компонента DataSet, даные в которую...

Could not load file or assembly FirebirdSql.Data.FirebirdClient
народ. создал подключение все ок. но вот переделал винформ приложение в сервис и логер пишет такую ошибку Could not load file or assembly...

9
Эксперт .NET
 Аватар для Usaga
14293 / 9378 / 1352
Регистрация: 21.01.2016
Сообщений: 35,344
29.06.2020, 16:45
Цитата Сообщение от Macrosofaq Посмотреть сообщение
FirebirdSql.Data.FirebirdClient.FbComman d.ExecuteNonQuery() +185
Подразумевается, что таким образом вызывается запрос, который ничего не должен возвращать. А у вас, судя по всему, что-то да возвращается из базы.

Добавлено через 6 минут
Macrosofaq, а! Ну конечно!

SQL
1
2
3
UPDATE z_B24D1A8FAC 
SET g1=
(SELECT t1.zn101 FROM data_9002 t1 WHERE t1.gr=3 AND t1.ULUS IS NOT NULL AND z_B24D1A8FAC.ULUS=t1.ULUS AND t1.OKPD IS NOT NULL AND z_B24D1A8FAC.OKPD=t1.OKPD AND (t1.razrez IN('ОТЧЕТ', 'УЛУС', 'ТЕРР')))
Что будет, когда вложенный запрос вернёт более одной строки?) Именно то, что вы и получили.
0
0 / 0 / 0
Регистрация: 29.06.2020
Сообщений: 11
29.06.2020, 16:59  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
SQLВыделить код
1
2
3
UPDATE z_B24D1A8FAC
SET g1=
(SELECT t1.zn101 FROM data_9002 t1 WHERE t1.gr=3 AND t1.ULUS IS NOT NULL AND z_B24D1A8FAC.ULUS=t1.ULUS AND t1.OKPD IS NOT NULL AND z_B24D1A8FAC.OKPD=t1.OKPD AND (t1.razrez IN('ОТЧЕТ', 'УЛУС', 'ТЕРР')))
Что будет, когда вложенный запрос вернёт более одной строки?) Именно то, что вы и получили.
Строков то там и больше получается, запрос то по идее в этом заключается, а в этот запросе должен выглядеть так
SQL
1
2
UPDATE z_B24D1A8FAC 
SET g1 IN (SELECT t1.zn101 FROM data_9002 t1 WHERE t1.gr=3 AND t1.ULUS IS NOT NULL AND z_B24D1A8FAC.ULUS=t1.ULUS AND t1.OKPD IS NOT NULL AND z_B24D1A8FAC.OKPD=t1.OKPD AND (t1.razrez IN('ОТЧЕТ', 'УЛУС', 'ТЕРР')))
Добавлено через 8 минут
но я не понял где исправить этот запрос
0
Эксперт .NET
 Аватар для Usaga
14293 / 9378 / 1352
Регистрация: 21.01.2016
Сообщений: 35,344
29.06.2020, 17:04
Цитата Сообщение от Macrosofaq Посмотреть сообщение
Строков то там и больше получается, запрос то по идее в этом заключается, а в этот запросе должен выглядеть так
У меня возникли сомнения в том, что вы понимаете, что за запрос написали.
0
0 / 0 / 0
Регистрация: 29.06.2020
Сообщений: 11
29.06.2020, 17:09  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
У меня возникли сомнения в том, что вы понимаете, что за запрос написали.
ну я вот пытаюсь разобраться, в sql давно малость поработал и вот сейчас такая проблемка. Можете помочь?
0
Эксперт .NET
 Аватар для Usaga
14293 / 9378 / 1352
Регистрация: 21.01.2016
Сообщений: 35,344
29.06.2020, 17:13
Macrosofaq, я вижу, что этот запрос на всю голову не правильный. В нём логическая ошибка. Вы пытаетесь переписать ВСЕ поля g1 в таблице z_B24D1A8FAC. При этом ваш подзапрос возвращает множество значений.

Вам нужно определиться с тем, что же на самом деле вы хотите сделать.
0
0 / 0 / 0
Регистрация: 29.06.2020
Сообщений: 11
29.06.2020, 17:23  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
я вижу, что этот запрос на всю голову не правильный. В нём логическая ошибка. Вы пытаетесь переписать ВСЕ поля g1 в таблице z_B24D1A8FAC. При этом ваш подзапрос возвращает множество значений.
Вам нужно определиться с тем, что же на самом деле вы хотите сделать.
Можете написать на эл. почту, в связи с правилами форума kidroy0511@gmail.com
0
Эксперт .NET
 Аватар для Usaga
14293 / 9378 / 1352
Регистрация: 21.01.2016
Сообщений: 35,344
29.06.2020, 17:28
Macrosofaq, я предлагаю продолжить общение не форуме. Уж извините, но я не персональный репетитор)

Команда UPDATE предполагает наличие условия для отбора записей поля которых нужно обновить. У вас этого нет. Подзапрос с оператором SET не должен возвращать более одного значения, иначе как СУБД решит какое из них нужно выбрать. Это - логическая ошибка.
0
0 / 0 / 0
Регистрация: 29.06.2020
Сообщений: 11
29.06.2020, 17:32  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Команда UPDATE предполагает наличие условия для отбора записей поля которых нужно обновить. У вас этого нет. Подзапрос с оператором SET не должен возвращать более одного значения, иначе как СУБД решит какое из них нужно выбрать. Это - логическая ошибка.
Я одно понять хочу еще, где этот запрос вписан? YaKIT.C1.Database.dll по идее ту должен быть но его нет.
0
Эксперт .NET
 Аватар для Usaga
14293 / 9378 / 1352
Регистрация: 21.01.2016
Сообщений: 35,344
29.06.2020, 17:34
Macrosofaq, это вы уже сами ищите в своём коде. Запрос может формироваться динамически. Поэтому по прямому поиску текста вы его можете и не найти.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.06.2020, 17:34
Помогаю со студенческими работами здесь

Ошибка Multiple rows in singleton select
Добрый день! есть процедура добавления в таблицу с входными параметрами : При попытки вызвать ее пишет ошибку Multiple rows in singleton...

получить все записи из <select multiple='multiple'
как через JQUERY получить все записи из &lt;select multiple='multiple'

<SELECT ... MULTIPLE>...</SELECT> Как вытащить всё что выбрано?
Есть форма SELECT c MULTIPLE ON. Как в ASP вытащить всё что выбрал пользователь? (Желательно на VBScript)

Common Data Types
Вопрос элементарный, просто ради интереса :) Я понимаю, что это, в принципе, одно и то же, но все же: Зачем ввели INT32, UINT8, BOOL,...

Select 200 million of rows
Всем привет, я собираю статистику по рекламе сжатую в 5 минутку, почасовка и за сутки. это 3 разные таблицы. В таблице которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru