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

Вниз

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

 
Duncan   (2003-08-21 15:11) [0]

Ребята, подскажите как бороться с ошибкой "concurrent update"?


 
VAleksey   (2003-08-21 15:21) [1]

Тип БД и код.


 
Duncan   (2003-08-21 15:32) [2]

БД Interbase 6, параметры для транзакции: write, nowait, consistency.


 
Johnmen   (2003-08-21 16:05) [3]

Делать пишущие транзакции как можно короче.


 
Sandman25   (2003-08-21 16:23) [4]

... и чтобы работали они как можно быстрее.


 
Desdechado   (2003-08-21 16:39) [5]

ну, и если 2 юзера одну запись менять хотят, то это не совсем нормально (хотя, от задачи зависит). Кто последний, тот и папа :)


 
Duncan   (2003-08-21 17:00) [6]

Ну задача самая простая: 1 прога обновляет клиентские счета за разговоры, другая обновляет за трафик. И они умудряются пересекаться :-). А может использовать какой-нибудь exeption типа:
procedure zapros;
begin
try
Query.Open;
exсept on E:.... do begin
Sleep(500);
zapros; end
end
End;
Вот только что ставить вместо .....?


 
Duncan   (2003-08-22 09:22) [7]

Подскажите где можно толково (желательно с примерами) хотя бы почитать?


 
Zacho   (2003-08-22 09:28) [8]


> Duncan (22.08.03 09:22) [7]

http://www.ibase.ru/develop.htm , особое внимание обрати на http://www.ibase.ru/devinfo/ibtrans.htm


 
Sergey13   (2003-08-22 09:29) [9]

2Duncan (21.08.03 17:00) [6]
>Ну задача самая простая: 1 прога обновляет клиентские счета за разговоры, другая обновляет за трафик
Каким образом это работает сейчас? Код ведь просили уже.


 
Duncan   (2003-08-22 09:40) [10]

Криво конечно, но что-то типа этого:
qLogs.SQL.Clear;
qLogs.SQL.Add("update organization set orgThisMonth="+tm+", Money=Money-"+df+" where orgId="+IntToStr(orgId));
qLogs.Open;
qLogs.SQL.Clear;
qLogs.SQL.Add("insert into logs values (GEN_ID(LOG_GEN,1), "+IntToStr(orgId)+", "+IntToStr(tin)+", "+ IntToStr(tout)+", "+#39+DateToStr(Date)+#39+", "+#39+TimeToStr(tt)+#39+", "+#39+IP[j].ip+#39+", ");
if (IP[j].way) then qLogs.SQL.Add("1)") else qLogs.SQL.Add("0)");
qLogs.Open;
qLogs.SQL.Clear;
qLogs.SQL.Add("commit");
qLogs.Open;
собсвенно во втоорой проге что-то типа этого же.


 
Zacho   (2003-08-22 09:43) [11]


> Duncan (22.08.03 09:40) [10]
> qLogs.SQL.Add("commit");

Это еще что ??? Нет такого оператора SQL в IB.


 
Sergey13   (2003-08-22 09:58) [12]

2Duncan (22.08.03 09:40) [10]
1. Ведение лога логичнее было бы переложить на тригер. И быстрее и надежнее.
2.А не правильнее было бы qLogs.Execute вместо qLogs.Open?
3.Что то я сомневаюсь в такой организации транзакций. Более опытные IB-шники пусть меня поправят.
4.Вместо динамического создания запросов лучше использовать запросы с параметрами. И работают быстрее и читаются лучше.


 
Johnmen   (2003-08-22 10:08) [13]

IBTransaction.StartTransaction;
qLogs.SQL.Clear;
qLogs.SQL.Add...;
qLogs.SQL.ExecSQL;
...
IBTransaction.Commit;


 
Duncan   (2003-08-22 12:12) [14]

Попробуем последний вариант.
Спасибо за помощь!



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
3-33434
Russko
2003-08-22 08:58
2003.09.11
Фильтрация


3-33453
Pavel
2003-08-21 12:50
2003.09.11
ado params


11-33529
access_violation
2003-01-05 13:20
2003.09.11
help


3-33510
uhhax
2003-08-20 03:55
2003.09.11
нестандартный просмотр отчета


1-33655
qwerty2
2003-09-01 16:39
2003.09.11
Как избавиться от песочных часов в курсоре





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский