![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сохранить изменения на сервере 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?