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

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

deadlock [D7, IB6.x]


Xmen ©   (2006-09-18 16:18:00) 

после сохранение данных, ругается со словом deadlock


Desdechado   (2006-09-18 18:54:00) [1]

Учись пользоваться поиском, гуглом, чертом лысым.
Я тебе место показал еще в [2], а ты за целый час не удосужился туда сходить.


Xmen   (2006-09-18 18:19:00) [2]

>Johnmen ©   (18.09.06 17:24) [13]

thx!

люди если ёще есть подобные доки пожалуйста укажите линки


Xmen   (2006-09-18 17:32:00) [3]

> [9] Xmen   (18.09.06 16:57)

CREATE TABLE WARES_IN_INF_TEMP (
   USER_ID        DMN$ID /* DMN$ID = INTEGER NOT NULL */,
   WARE_ID        DMN$ID /* DMN$ID = INTEGER NOT NULL */,
   WARE_NAME      DMN$NAME /* DMN$NAME = VARCHAR(40) */,
   WARE_QUANTITY  DMN$BALANCE /* DMN$BALANCE = DECIMAL(9,0) DEFAULT 0 NOT NULL */,
   WARE_PRICE     DMN$PRICE /* DMN$PRICE = DECIMAL(9,2) */
);

CREATE TABLE WARES_IN (
   USER_ID      DMN$ID /* DMN$ID = INTEGER NOT NULL */,
   DOC_NO       DMN$ID /* DMN$ID = INTEGER NOT NULL */,
   DOC_DATE     DMN$DATE /* DMN$DATE = DATE DEFAULT current_date NOT NULL */,
   EXPORTER_ID  DMN$ID /* DMN$ID = INTEGER NOT NULL */
);

ALTER TABLE WARES_IN ADD PRIMARY KEY (DOC_NO);

CREATE TABLE WARES_IN_INF (
   DOC_NO         DMN$ID /* DMN$ID = INTEGER NOT NULL */,
   GROUP_ID       DMN$ID /* DMN$ID = INTEGER NOT NULL */,
   WARE_ID        DMN$ID /* DMN$ID = INTEGER NOT NULL */,
   WARE_QUANTITY  DMN$BALANCE /* DMN$BALANCE = DECIMAL(9,0) DEFAULT 0 NOT NULL */,
   WARE_PRICE     DMN$PRICE NOT NULL /* DMN$PRICE = DECIMAL(9,2) */
);

ALTER TABLE WARES_IN_INF ADD CONSTRAINT FK_WARES_IN_INF_1 FOREIGN KEY (DOC_NO) REFERENCES WARES_IN (DOC_NO) ON DELETE CASCADE;

CREATE PROCEDURE DO_IN (
   USR INTEGER,
   DOC_DATE DATE,
   EXPORTER_ID INTEGER)
AS
DECLARE VARIABLE DOC_NO INTEGER;
begin
   doc_no = gen_id(gen_wares_in_doc_no, 1);

   insert into wares_in (user_id, doc_no, doc_date, exporter_id)
   values (:usr ,:doc_no, :doc_date, :exporter_id);
   
   insert into wares_in_inf (doc_no, ware_id, ware_quantity, ware_price)
   select :doc_no, a.ware_id, a.ware_quantity, a.ware_price
   from wares_in_inf_temp a
   where a.user_id=:usr;

   delete from wares_in_inf_temp a
   where a.user_id=:usr;
end


Johnmen   (2006-09-18 17:24:00) [4]

http://www.ibase.ru/devinfo/deadlock.htm


Xmen   (2006-09-18 17:17:00) [5]


Sergey13 ©   (18.09.06 17:01) [10]

> [9] Xmen   (18.09.06 16:57)

Чума! А по русски? А по дельфийски (типа код)?


могу отправиь проект со всеми кодами


Xmen   (2006-09-18 17:12:00) [6]

программа работает но иногда ругается со словом deadlock, когда клиентский прог.и одновременно сохранястьб вернее выпол. проц. do_invoice


Sergey13   (2006-09-18 17:01:00) [7]

> [9] Xmen   (18.09.06 16:57)

Чума! А по русски? А по дельфийски (типа код)?


Xmen   (2006-09-18 16:57:00) [8]

есть таблыца типа invoice_temp (user_id, ware_id, ware_name, qty, price) и процедура do_invoice (user_id, invoice_no), каторая  добавит запис от invoice_temp в таблыцу invoice (invoice_no, qty, price)
несколько клиентские (delphi) прог.-и добавит запис в таблыца invoice_temp под своим user_id и выполняют процедура do_invoice(user_id, gen_id(gn_invoice_no))


stud   (2006-09-18 16:46:00) [9]

Xmen   (18.09.06 16:45) [6]
Что можете посоветовать

посмотреть что происходит при попытке записи.
какие еще транзакции держат данные, которые пытаешся изменить


stud   (2006-09-18 16:46:00) [10]

как вообще происходит запись?


Xmen   (2006-09-18 16:45:00) [11]


> stud ©   (18.09.06 16:37) [1]
>
> после, или при попытке?



> Xmen   (18.09.06 16:40) [3]
>
> при попытке


Что можете посоветовать


stud   (2006-09-18 16:44:00) [12]

Sergey13 ©   (18.09.06 16:40) [4]
В транзакциях запутался.

скорее всего.
плюс посмотреть параметры, если используется несколько транзакций.


Xmen   (2006-09-18 16:40:00) [13]

при попытке


Sergey13   (2006-09-18 16:40:00) [14]

> [0] Xmen   (18.09.06 16:18)

В транзакциях запутался.


Desdechado   (2006-09-18 16:39:00) [15]

ibase.ru

типичная причина - попытка модифицировaть записи не в том порядке


stud   (2006-09-18 16:37:00) [16]

после, или при попытке?


Наверх

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