Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.023 c
1-1103318842
Ivanov
2004-12-18 00:27
2005.01.02
работа с DLL


1-1102770894
Kolan
2004-12-11 16:14
2005.01.02
Помогитес двоичным числом разобраться


6-1097765776
Wiz@rd
2004-10-14 18:56
2005.01.02
Логиниться по сети


14-1102221980
Сергей Г
2004-12-05 07:46
2005.01.02
Необычная просьба


9-1094445158
Fynjy1984
2004-09-06 08:32
2005.01.02
OpenGL




   Наверх