Главная страница
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.055 c
1-1103447159
sten
2004-12-19 12:05
2005.01.02
как убрать контекстное меню combobox a


1-1103182543
ASMiD
2004-12-16 10:35
2005.01.02
Перехват операций с файлами


4-1100697957
R.O.O.T
2004-11-17 16:25
2005.01.02
ПОМОГИТЕ НАУЧИТЬСЯ


1-1103531740
Рафик
2004-12-20 11:35
2005.01.02
QuickRep


14-1102260533
Урфин Джюс
2004-12-05 18:28
2005.01.02
Подводим итоги года: 2004