Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несколько вопросов по, Commit 
:(
    Опции темы
Exai1e
Дата 6.11.2007, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: нет
Всего: 30



Здрасти, возник вот так такой вопрос:
в чем отличие от
Код

IBTransaction1.CommitRetaining;

и
Код

IBTransaction1.Commit;

?
я делаю вот так:
Код

...
Добавление данных в базу
...
  IBTransaction1.CommitRetaining;
  IBQuery1.Close;
  IBQuery1.Open;

мне сказали что close, open делать ненадо, т.к. комит сам все это делает если база локальная :-/
и что 
Код

  IBTransaction1.CommitRetaining
 использовать ненадо, а надо просто Commit

Это сообщение отредактировал(а) Exai1e - 6.11.2007, 20:19


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
Deniz
Дата 7.11.2007, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Вообще-то вопрос надо в конф. по InterBase задавать.
Теперь по вопросу.
Цитата(Exai1e @  6.11.2007,  23:18 Найти цитируемый пост)
в чем отличие от
IBTransaction1.CommitRetaining;
IBTransaction1.Commit;
?
В двух словах Commit закрывает все наборы данных, связанные с ним, т.е. IBQuery1.Active становится False. CommitRetaining этого не делает

Цитата(Exai1e @  6.11.2007,  23:18 Найти цитируемый пост)
мне сказали что close, open делать не надо, т.к. комит сам все это делает если база локальная :-/
глупости. 
Во-первых, IBTransaction не знает локальная БД или нет. 
Во-вторых, после IBTransaction.Commit никто за тебя переоткрывать все IBQuery/IBDataSet не будет.

Цитата(Exai1e @  6.11.2007,  23:18 Найти цитируемый пост)
и что 
IBTransaction1.CommitRetaining использовать не надо, а надо просто Commit
еще раз глупости, все зависит от задачи.
Бывает достаточно сл-щего кода:
Код

IBTransaction1.CommitRetaining; // подтвердили изменения без закрытия IBQuery1
IBQuery1.Refresh; // перечитали текущую запись

В догонку: читать www.ibase.ru


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Exai1e
Дата 7.11.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: нет
Всего: 30



Спасибо, теперь ясно smile


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
Delphist
  Дата 12.3.2008, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Deniz @  7.11.2007,  07:55 Найти цитируемый пост)
 двух словах Commit закрывает все наборы данных, связанные с ним, т.е. IBQuery1.Active становится False. CommitRetaining этого не делает

У меня вопрос
Можно ли сказать, что 
  FIBQuery.Transaction.CommitRetaining
это тоже самое, что
  FIBQuery.Transaction.Commit;
  FIBQuery.Open;



--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
CompWorm
  Дата 13.3.2008, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



занятно, что относительно IBO компонентов, отсутствие связки
IB_Query1.Close;
IB_Query1.Open;
ни как не влияет на работу с локальной БД, если использовать только IB_Transaction1.Commit; или только IB_Transaction1.CommitRetaining;
 smile 



--------------------
PM MAIL   Вверх
Deniz
Дата 13.3.2008, 09:34 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Цитата(Delphist @  12.3.2008,  23:10 Найти цитируемый пост)
У меня вопрос
Можно ли сказать, что 
  FIBQuery.Transaction.CommitRetaining
это тоже самое, что
  FIBQuery.Transaction.Commit;
  FIBQuery.Open;
нет, так сказать нельзя, потому что, после первого кода содержимое FIBQuery не изменяется, а во втором делается новый запрос со всеми вытекающими, т.е. записи с учетом insert/update/delete.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0689 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.