Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сохранить изменения на сервере Oracle [D7]


sunvit ©   (2004-12-05 18:39:00) 

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

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


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

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

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


ЮЮ   (2004-12-07 12:12:00) [2]

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


ЮЮ   (2004-12-07 12:11:00) [3]

>if not MainForm.SQLConnection.InTransaction then

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


sunvit   (2004-12-07 12:02:00) [4]

Пишу так:
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 10:25:00) [5]

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

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


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

Пишу так:
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 06:39:00) [7]

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


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

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


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

А где же commit?


Наверх

Титульная страница Поиск, карта сайта Написать письмо