169 похожих чатов

В общем потестировав все это дело, пришел к следующему выводу:


1. StartTransaction
2. Делаем выборку данных
3. CommitRetaining

В таком случае видим набор данных в DBGrid. Если нужно сделать модификацию данных, то делаем это уже через другую транзакцию, а в этой просто переоткрываем набор данных. А вот по закрытию формы, уже делаю на основном наборе данных - Commit. Иначе форму не переоткрыть, так как скажет, что транзакция активна. У кого-то есть опыт с подобным? Нормальная реализация?

8 ответов

4 просмотра

я просто отказался от использования DBGrid ))

это у тебя БД Firebird?

Евгений- Автор вопроса

Лазарус, транзакции. Где Лазарус, а где транзакции? Лазарус ничего не обязан знать о БД. О БД обязан знать компонент доступа к ним. Сам несколько прифигел, когда перелез с ФаирДака + Дельфи + Фаирберд на Юнидак + Лазарус + Фаирберд. Оказывается на Фаирберде любой доступ к данным, в том числе и SELECT открывает транзакцию. И тоже напоролся на похожий трабл как у тебя. Щас гляну как вывернулся.

Евгений- Автор вопроса
Денис Аленин
Лазарус, транзакции. Где Лазарус, а где транзакции...

Видимо там так сложно выворачивался, что решил уснуть, читая код 😅 Ну а вообще я так понимаю, что любой запрос - это транзакция. Просто FireDac по умолчанию делает CommitRetaining. Когда вызывается метод Open

Евгений
Видимо там так сложно выворачивался, что решил усн...

Тут без бутылки не разобраться. Скорее всего используется две транзакции. Default для DBGrid-ов и вторая для DML-ов.

Евгений- Автор вопроса
Денис Аленин
Тут без бутылки не разобраться. Скорее всего испол...

Вот я так же реализовал. Есть один Query, через который Insert, Update, Delete со своей транзакцией, а для отображения данных тоже свой Query со своей транзакцией

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта