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

Вниз

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

 
Dmitr   (2002-05-31 07:48) [0]

Подскажите пожалуйста .........
Трех уровневое приложение , с клиента приходит текст запроса на сервер второго уровня там обрабатывается:
//////////////////////////
ADOConnection1.BeginTrans;
for i := 0 to stringlist.Count -1 do
begin
try
Query.SQL.Clear;
Query.SQL.Add(Stringlist.Strings[i]);
Query.ExecSQL;
except
ADOConnection1.RollbackTrans;

end;
ADOConnection1.CommitTrans;
end;
///////////////////////////////////

Причем все работает если запросы на DELETE, а на INSERT, UPDATE, пишет нет активных транзакций
т.е. если в запросе несколько DELETE все нориально , а если хоть один INSERT или UPDATE то вылетает...................


 
roottim   (2002-05-31 08:54) [1]

>т.е. если в запросе несколько DELETE
это как?


 
Dmitr   (2002-05-31 11:29) [2]

Несколько DELETE это имеется ввиду что на клиенте формируется строка состоящая из нескольких запросов которая потом передается на сервер второго уровня и тут эти запросы по отдельности выполняются ADOQuery

Query.SQL.Clear;
Query.SQL.Add(Stringlist.Strings[i]);//Здесь в Stringlist содержит уже строки каждая из которых содержит какой либо запрос и выполняет их попорядку
Query.ExecSQL;


 
roottim   (2002-05-31 15:21) [3]

тогда твой код должен выглядеть так
for i := 0 to stringlist.Count -1 do begin
ADOConnection1.BeginTrans;
try
Query.SQL.Clear;
Query.SQL.Add(Stringlist.Strings[i]);
Query.ExecSQL;
except
ADOConnection1.RollbackTrans;
end;
ADOConnection1.CommitTrans;
end;


или так!... (откат на всю серию)
ADOConnection1.BeginTrans;
try
for i := 0 to stringlist.Count -1 do begin
Query.SQL.Clear;
Query.SQL.Add(Stringlist.Strings[i]);
Query.ExecSQL;
end;
except
ADOConnection1.RollbackTrans;
end;
ADOConnection1.CommitTrans;


 
Dmitr   (2002-06-01 08:14) [4]

Да, теперь вроде с транзакциями похоже все нормально работает, т.е. откатывает постоянно на INSERT и UPDATE, а на DELETE все нормально....
Может это в ADOQuery нельзя так просто использовать, Хотя вроде поначалу все работало и вставлял записи и исправлял хоть кучу, может сам сервер чего то хочет...................


 
Anatoly Podgoretsky ©   (2002-06-01 08:24) [5]

А может просто у тебя запросы неверные :-)


 
Dmitr   (2002-06-01 08:42) [6]

Нет с запросами вроде все нормально, ну там трудно ошибиться я уже самые простые отправляю............



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
14-77616
null
2002-05-22 14:41
2002.06.24
Э Т О Н А Д О В И Д Е Т Ь!!!!


3-77307
Pavel_S
2002-05-30 10:43
2002.06.24
Событие BeforeScroll


1-77349
SeB
2002-06-12 17:31
2002.06.24
Выделение в TStringGrid


3-77317
yozhik
2002-05-30 13:21
2002.06.24
Нахождение SQL Serverov


14-77577
MBo
2002-05-20 09:28
2002.06.24
Очередная несложная разминка для начинающих.