Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.08;
Скачать: CL | DM;

Вниз

SQL   Найти похожие ветки 

 
masik ©   (2002-06-07 18:27) [0]

Господа, подскажите...
Есть Query с SQL
Update
SOME TABLE
set [Order]=:OrderPos
Where ID=:ID

в цикле производится установка

qSetOrder.Connection.BeginTrans;
for i:=0 to LV.Items.Count-1 do
With qSetOrder do begin
Parameters.ParamByName("ID").Value:=StrToInt(LV.Items[i].SubItems[0]);
Parameters.ParamByName("OrderPos").Value:=LV.Items[i].Index;
ExecSQL;
Close;
end;
qSetOrder.Connection.CommitTrans;
qSetOrder.Connection.Close;

в принципе все работает нормально, но есть таблица на которой после первого Updat-а ExecSQL виснет(других открытых кверей. работающих с данной таблицей вроде нет).


 
Val ©   (2002-06-07 19:13) [1]

попробуйте обновлять текст запроса SQL.Clear .. SQL.Add


 
masik ©   (2002-06-07 19:34) [2]

Где, прикаждом прохождом прохождении цикла?


 
masik ©   (2002-06-07 20:46) [3]

и не помогает


 
oleg_dov   (2002-06-08 10:39) [4]

а зачем после ExecSQL Close стоит?
помоему он там не нужен как и SQL.Clear, SQL.Add


 
masik ©   (2002-06-14 14:30) [5]

Опять вернулся к наболевщему вопросу.
Никак не могу с ентой заразой справиться, как можно определить чего происходит при выполнении запроса.


 
Kaban   (2002-06-14 14:40) [6]

Согласен с oleg_dov
Close, SQL.Clear, SQL.Add в этом примере нужны как корове пятая нога.
Узнать
>>чего происходит при выполнении запроса
можно если процедура возвращает какое-нибудь значение


 
masik ©   (2002-06-14 15:07) [7]

Чегго можно вернуть если в процедуре один Update


 
Kaban   (2002-06-14 15:10) [8]

Sorry, зарапортовался. Какие тогда проблемы
try
qSetOrder.Connection.BeginTrans;
for i:=0 to LV.Items.Count-1 do
With qSetOrder do begin
Parameters.ParamByName("ID").Value:=StrToInt(LV.Items[i].SubItems[0]);
Parameters.ParamByName("OrderPos").Value:=LV.Items[i].Index;
ExecSQL;
end;
qSetOrder.Connection.CommitTrans;
except
qSetOrder.Connection.RollBack;
end;
qSetOrder.Connection.Close;



 
masik ©   (2002-06-14 15:17) [9]

Проблема втом, что я ее сам понять не могу. У меня нескоолько таблиц которые подходят под описание (по полям ID и Order). В других таблицах данный код работает без проблем, а в ентой... после первого прохода цикла, т.е. на втором ExecSQL, виснет... вобщем вылезает "Time Out".


 
masik ©   (2002-06-14 16:27) [10]

Наконец сообразил, у меня оказывается в параллельной транзакции производилось обновление записи, и соответственно DIDLOCK.


Н-да, енто не Interbase...



Страницы: 1 вся ветка

Текущий архив: 2002.07.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
6-23713
black_angel_S
2002-04-29 06:45
2002.07.08
Помогите разобратся с ServerSocket.......ActiveConnections......


1-23576
octy
2002-06-27 02:54
2002.07.08
onKeyDown in KOL???


1-23538
Maxal
2002-06-26 16:41
2002.07.08
Ярлык


1-23649
Looser
2002-06-26 09:34
2002.07.08
Компилятор выдает ошибку Access violation... Need Help!


8-23678
ATLANTIDO
2002-03-01 19:07
2002.07.08
ИМПОРТ 3D-МОДЕЛЕЙ