Форум: "Базы";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
ВнизНе подскажите люди, как мне перевести ИМЕННО запись в режим редак Найти похожие ветки
← →
Kurt (2002-11-15 10:36) [0]Не подскажите люди, как мне перевести ИМЕННО всю запись в режим редактирования а не какое-то поле?
← →
stone (2002-11-15 10:38) [1]ИМЕННО запись переводится в режим редактирования
Table1.Edit;
← →
Kurt (2002-11-15 10:43) [2]а не поле?
а как тогда уже допустим изменив 2 поля записи все отменить?
ведь при Teble1.Edit после каждого перехода к другому полю Post делает, или я не прав. поправьте.
← →
exit (2002-11-15 10:44) [3]
TQuery.CachedUpdates := True
+
TQuery.ApplyUpdates
+
TQuery.CancelUpdates
← →
stone (2002-11-15 10:53) [4]Kurt (15.11.02 10:43)
> Teble1.Edit после каждого перехода к другому полю Post делает
не прав, просто передается фокус от одного поля к другому, если бы таблица постилась при каждом переходе от поля к полю, то каждый раз пришлось бы вызывать Edit. А если быть точным, то таблица переходит в состояния редактирования, а не поле или запись, не надо путать набор данных с его визуальным отображением.
> а как тогда уже допустим изменив 2 поля записи все отменить?
Table1.Cancel;
← →
Romkin (2002-11-15 10:53) [5]Edit - переводит в режим редактирования, Post - запоминает изменения в текущей записи, Cancel - отменяет их. При переходе к другой записи выполняется Post или Cancel - если в DBGrid установлено. При чем здесь разные поля одной записи?
← →
Kurt (2002-11-15 11:02) [6]exit! это для АДО?
То есть преед редактированием надо врубить
Query.CachedUpdates := True
а потом по окончании или отменить Query.CancelUpdates или применить Query.ApplyUpdates , так?
а потом Query.CachedUpdates в false обратно надо переводить?
← →
Kurt (2002-11-15 11:19) [7]Люди! а вставка? когда делаю Insert, то у меня пишет "ошибка неизвестного типа", что это значит?
← →
exit (2002-11-15 11:22) [8]В дизайне поставь для TQuery (я намеренно написал имя класса, какие ADO) CachedUpdates := true; RequestLive := true; напиши запрос SQL и подключи TUpdateSQL с соотв. SQL. Потом в run"е переводишь TQuery в Edit или Insert, делаешь Post столько же раз, а когда надоест - Пишешь TQuery.ApplyUpdates.
Вот пример:
Transaction.StartTransaction;
Query1.Edit;
Query1.Fields[0].AsInteger := 12;
Query1.Post;
Query1.Insert;
Query1.Fields[0].AsInteger := 15;
Query1.Fields[10].AsFloat := 0.234;
Query1.Post;
try
Query1.ApplyUpdates;
Transaction.Commit;
except on E: Exception do
begin
MessageBox(Application.Handle, PChar(E.Message), PChar("Ошибка"), MB_OK+MB_ICONEXCLAMATION+MB_TASKMODAL);
TQuery.CancelUpdates;
Transaction.Rollback;
end;
end;
Прописные истины...
И для ADO это тоже есть. Может быть немного методы названиями отличаются, но...
← →
Kurt (2002-11-15 11:32) [9]CachedUpdates это для чего, не подскажешь?
извини заранее за ламерский вопрос:-)
← →
exit (2002-11-15 11:48) [10]Вообще-то есть F1...
А в двух словах, когда "это" true, все изменения DataSet"a лежат на клиенте до применения ApplyUpdates, который (метод) пробует слить наработанное в базу. Не стоит этим увлекаться при использовании локальных СУБД (особенно). Иначе - Deadlock. То есть закончил с записью - Apply
← →
Kurt (2002-11-15 11:59) [11]у меня АДО-элементы. Я делаю Инсерт. И при переходе к полям вставленной записис (при каждом ереходе к следующему полю) происходит "Ошибка неизвестного типа". но все вроде вставляется и так далее. Не подскажите в чем проблема?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c