Текущий архив: 2006.10.08;
Скачать: CL | DM;
Внизdeadlock Найти похожие ветки
← →
Xmen (2006-09-18 16:18) [0]после сохранение данных, ругается со словом deadlock
← →
stud © (2006-09-18 16:37) [1]после, или при попытке?
← →
Desdechado © (2006-09-18 16:39) [2]ibase.ru
типичная причина - попытка модифицировaть записи не в том порядке
← →
Xmen (2006-09-18 16:40) [3]при попытке
← →
Sergey13 © (2006-09-18 16:40) [4]> [0] Xmen (18.09.06 16:18)
В транзакциях запутался.
← →
stud © (2006-09-18 16:44) [5]Sergey13 © (18.09.06 16:40) [4]
В транзакциях запутался.
скорее всего.
плюс посмотреть параметры, если используется несколько транзакций.
← →
Xmen (2006-09-18 16:45) [6]
> stud © (18.09.06 16:37) [1]
>
> после, или при попытке?
> Xmen (18.09.06 16:40) [3]
>
> при попытке
Что можете посоветовать
← →
stud © (2006-09-18 16:46) [7]Xmen (18.09.06 16:45) [6]
Что можете посоветовать
посмотреть что происходит при попытке записи.
какие еще транзакции держат данные, которые пытаешся изменить
← →
stud © (2006-09-18 16:46) [8]как вообще происходит запись?
← →
Xmen (2006-09-18 16:57) [9]есть таблыца типа 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))
← →
Sergey13 © (2006-09-18 17:01) [10]> [9] Xmen (18.09.06 16:57)
Чума! А по русски? А по дельфийски (типа код)?
← →
Xmen (2006-09-18 17:12) [11]программа работает но иногда ругается со словом deadlock, когда клиентский прог.и одновременно сохранястьб вернее выпол. проц. do_invoice
← →
Xmen (2006-09-18 17:17) [12]
Sergey13 © (18.09.06 17:01) [10]
> [9] Xmen (18.09.06 16:57)
Чума! А по русски? А по дельфийски (типа код)?
могу отправиь проект со всеми кодами
← →
Johnmen © (2006-09-18 17:24) [13]http://www.ibase.ru/devinfo/deadlock.htm
← →
Xmen (2006-09-18 17:32) [14]> [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
← →
Xmen (2006-09-18 18:19) [15]>Johnmen © (18.09.06 17:24) [13]
thx!
люди если ёще есть подобные доки пожалуйста укажите линки
← →
Desdechado © (2006-09-18 18:54) [16]Учись пользоваться поиском, гуглом, чертом лысым.
Я тебе место показал еще в [2], а ты за целый час не удосужился туда сходить.
Страницы: 1 вся ветка
Текущий архив: 2006.10.08;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.041 c