Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.07.08;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
1-23612
id_privin
2002-06-25 15:39
2002.07.08
Графики в виде столбиков


3-23501
Эльдар
2002-06-17 15:20
2002.07.08
Попадалово


1-23554
ProfiUgl
2002-06-26 08:37
2002.07.08
Копирование файла и ProgressBar


14-23728
PTE
2002-06-05 20:26
2002.07.08
дайте плиз русский хелп к RxDrawGrid?


3-23508
Awex
2002-06-17 13:14
2002.07.08
InterBase 6.0.1 - INET/inet_error: read errno = 10054





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский