Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Аppend [D4, IB6.x]


Жук ©   (2003-01-21 15:26:00) 

Подскажите, плз !
При append"e в DataSet вылезает ошибка "multiple rows in singleton select". id генерируется AfterInsert.
С чем это может быть связано ?


Alexandr   (2003-01-22 07:55:00) [1]


> Убрал все вложенные запросы - всё нормально. Спасибо всем.


ты бы еще написал "стер программу нахрен. Жить стало легче"


Жук   (2003-01-21 16:47:00) [2]

Убрал все вложенные запросы - всё нормально. Спасибо всем.


Delirium^.Tremens   (2003-01-21 16:35:00) [3]

А ты уверен, что все эти вложенные селекты возвращают по одной строке? Проверь процедуры.
И сколько это будет выполняться, когда количество записей в таблицах станет больше 10?


Johnmen   (2003-01-21 16:34:00) [4]

Проблема с вложенными запросами - в данном контексте они должны возвращать единственное значение...


Delirium^.Tremens   (2003-01-21 16:31:00) [5]

Жук © (21.01.03 16:29)

> В refresh"e "... and k.id=?old_id"
> Что тут проблемного может быть ?

Если это есть, то ничего


Жук   (2003-01-21 16:29:00) [6]

В refresh"e "... and k.id=?old_id"
Что тут проблемного может быть ?


Delirium^.Tremens   (2003-01-21 16:27:00) [7]

Жук © (21.01.03 16:23)
Wow!


Delirium^.Tremens   (2003-01-21 16:26:00) [8]


> "multiple rows in singleton select".

Эта ошибка вызыается SELECT"ом, а ни как не INSERT"ом. Возможно это SELECT из RefreshSQL? Там есть (должно быть) что-то типа WHERE id = ?old_id


Жук   (2003-01-21 16:23:00) [9]

Как раз сижу - копаю. :-(
Запрос :
"select k.id,k.id_ferrum,k.nomer,k.ps,k.inwnom,k.cena,k.id_fuck,f.name,
n.name,
(select p.komp from komputer(k.id) p) as komp,
(select fu.name from fuck fu where k.id_fuck=fu.id) as sf,
(select p.inw_nomer from pasport p,first_konfig fk
where k.id=fk.id_komplekt and fk.id_komputer=p.id) as fkomp
from komplekt k,ferrum f,name_ob n
where k.id_ferrum=f.id and n.id=f.id_ob
order by n.name"
komputer в первом вложенном select"e - хранимая процедура


Johnmen   (2003-01-21 16:20:00) [10]

Идея проста - перекопать запросы...:)
Может приведешь их для DM.Komplekt ?


Жук   (2003-01-21 16:09:00) [11]

Дело в том, что там :
"if DBGrid1.DataSource=DM.DSKomplekt then d:=DM.Komplekt
else d:=DM.FreeKomp;
d.Append;"
Оба DataSet"a с одинаковыми Insert"ми, но при else всё нормально, а при then вылезает ошибка на Append"e. Отличаются DataSet"ы только select"ом и refresh"ем.
Идеи есть ?


Johnmen   (2003-01-21 15:57:00) [12]

Компоненты доступа ??? Не надстройка...
И связано, скорее всего, с Insert"ом...


Жук   (2003-01-21 15:47:00) [13]

DataSet - надстройка над FIBC.
При вызове Append"a выскакивает эта ошибка. Может быть это связано с Refresh"ем ?


Johnmen   (2003-01-21 15:42:00) [14]

Компоненты доступа ?
И менно при вызове метода Append ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо