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

Вниз

Как сохранить изменения на сервере Oracle   Найти похожие ветки 

 
sunvit   (2004-12-05 18:39) [0]

1. Связываю SimpleDataSet с Oracle;
2. Делаю обновление или удаление данных данных: SimpleDataSet.Post или SimpleDataSet.Delete;
3. Потом SimpleDataSet.ApplyUpdates(-1);

А обновление на сервере не происходит??? Как сделать так чтоб было хорошо.


 
Наталия ©   (2004-12-06 09:07) [1]

А где же commit?


 
sunvit   (2004-12-06 23:29) [2]

У SimpleDataSet нет commit"a??? А если передавать в SimpleDataSet.DataSet.CommandText, то возбудится ошибка, т.к. SimpleDataSet.DataSet.CommandText="commit" не возвращает набор данных.


 
Наталия ©   (2004-12-07 06:39) [3]

Я не знаю, что такое SimpleDataSet, но представляю себе так, что если производится какая-либо модификация данных, то должна быть подтверждена транзакция. Так как она у тебя не подтверждена (commit), то и "обновление на сервере не происходит".
Почитай что-нибудь про работу с транзакциями.


 
sunvit   (2004-12-07 09:52) [4]

Пишу так:
var
 TS: TtransactionDesc;
begin
if not SQLConnection.InTransaction then
MainForm.SQLConnection.StartTransaction(TS);
try
SimpleDataSet.Delete;
finally
if not SQLConnection.InTransaction then
  SQLConnection.Commit(TS);

Выдает ошибку:
dbExpress Error: Multiple Transactions not Enabled.


 
ЮЮ ©   (2004-12-07 10:25) [5]

если действительно так написано, то открытая транзакция никогда не закрывается:

if not SQLConnection.InTransaction then
 SQLConnection.Commit(TS);


 
sunvit   (2004-12-07 12:02) [6]

Пишу так:
var
 TS: TtransactionDesc;
begin
if not MainForm.SQLConnection.InTransaction then
 begin
   TS.TransactionID := 1;
   TS.IsolationLevel := xilREADCOMMITTED;
   MainForm.SQLConnection.StartTransaction(TS);
   try
     MainForm.SimpleDataSet.FieldValues["updated"]:=datetostr(date)+" "+timetostr(time);
     MainForm.SimpleDataSet.Post;
     MainForm.SimpleDataSet.ApplyUpdates(-1);
     MainForm.SQLConnection.Commit(TS);
   except
     MainForm.SQLConnection.Rollback(TS);
   end;
 end;
Ошибок нет, но изменений на сервере то же нет!!! В чем дело то???


 
ЮЮ ©   (2004-12-07 12:11) [7]

>if not MainForm.SQLConnection.InTransaction then

А если транзакция все же неявно стартовала? Тогда весь этот код не выполнится!


 
ЮЮ ©   (2004-12-07 12:12) [8]

В режиме отладки проходил по этому коду  ?


 
sunvit   (2004-12-08 01:49) [9]

>> Всем спасибо...

А MainForm.SimpleDataSet.ApplyUpdates(-1) всё же заработало!!! "А мне больше и не надо".



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

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

Наверх




Память: 0.48 MB
Время: 0.022 c
1-1103203366
Pentium133
2004-12-16 16:22
2005.01.02
FindComponent


1-1103196294
Mishenka
2004-12-16 14:24
2005.01.02
Где достать нормальный EhLib?


6-1097932086
Drakon
2004-10-16 17:08
2005.01.02
Скрипты для форума


4-1100201018
Norny
2004-11-11 22:23
2005.01.02
Считывание значения патенциометра


1-1103294334
Nata
2004-12-17 17:38
2005.01.02
RXlib