Найдено 200 результатов

Akella
Пт 12 июл 2019 11:48
Форум: Universal Data Access Components
Тема: Как правильно отключаться от базы и завершать работу приложения?
Ответы: 21
Просмотры: 15545

Re: Как правильно отключаться от базы и завершать работу приложения?

Было бы неплохо, если бы у датасетов было свойство, отвечающее за включение/отключение автостарта транзакций.
Akella
Пт 12 июл 2019 09:10
Форум: Universal Data Access Components
Тема: Как правильно отключаться от базы и завершать работу приложения?
Ответы: 21
Просмотры: 15545

Re: Как правильно отключаться от базы и завершать работу приложения?

Я видел, что писали, что нет соответствующих свойств, но что компоненты сами стартуют транзации, этого вроде не писали.
Akella
Пт 12 июл 2019 06:35
Форум: Universal Data Access Components
Тема: Как правильно отключаться от базы и завершать работу приложения?
Ответы: 21
Просмотры: 15545

Re: Как правильно отключаться от базы и завершать работу приложения?

Так компоненты сами автоматически стартуют транзакции? Я оказался прав?
Akella
Чт 11 июл 2019 13:07
Форум: Universal Data Access Components
Тема: AutoCommit у TUniQuery не работает
Ответы: 3
Просмотры: 5173

Re: AutoCommit у TUniQuery не работает

А так и должно быть, что свойство SpecificOptions пустое?

Код: Выделить всё

  qQueryValue := TUniQuery.Create(connNotify);
  qQueryValue.Connection := connNotify;
  qQueryValue.Transaction := transR;
  qQueryValue.UpdateTransaction := transW;
  ShowMessage(qQueryValue.SpecificOptions.Text);
При этом, если компонент "создан" визуально (кинут в DataModule), то там SpecificOptions не пустое
Akella
Чт 11 июл 2019 12:12
Форум: Universal Data Access Components
Тема: В Unidac отсутствует доступ к PostgreSQL
Ответы: 2
Просмотры: 4740

В Unidac отсутствует доступ к PostgreSQL

Не могу понять, почему здесь есть описание PostgreSQL https://www.devart.com/ru/dac.html , а меня в IDE нету провайдера?
Я что-то забыл включить при установке и нужно просто переустановить библиотеку?
Akella
Чт 11 июл 2019 07:05
Форум: Universal Data Access Components
Тема: Как правильно отключаться от базы и завершать работу приложения?
Ответы: 21
Просмотры: 15545

Re: Как правильно отключаться от базы и завершать работу приложения?

Компоненты UniDAC не содержпт свойтсв подобных Autostart transaction.

Я не о наличии свойств, а о том, что компоненты сами, буз моего участия стартуют транзакции.



У меня в коде вот так:

Код: Выделить всё

      sqlExec.ParamByName('LASTNAME').AsString      := User.LastName;
      sqlExec.ParamByName('LANGUAGE_CODE').AsString := User.LanguageCode;

      try
        sqlExec.Execute;
        if sqlExec.Transaction.Active then
          sqlExec.Transaction.Commit;
Как видите, строка "sqlExec.Transaction.StartTransaction" отсутствует...
ошибок нет и данные в базу сохраняются
Akella
Ср 10 июл 2019 14:13
Форум: Universal Data Access Components
Тема: Как правильно отключаться от базы и завершать работу приложения?
Ответы: 21
Просмотры: 15545

Re: Как правильно отключаться от базы и завершать работу приложения?

Компоненты UniDAC не содержпт свойтсв подобных Autostart transaction.
Я не о наличии свойств, а о том, что компоненты сами, без моего участия стартуют транзакции.
У меня в коде вот так:

Код: Выделить всё

      sqlExec.ParamByName('LASTNAME').AsString      := User.LastName;
      sqlExec.ParamByName('LANGUAGE_CODE').AsString := User.LanguageCode;

      try
        sqlExec.Execute;
        if sqlExec.Transaction.Active then
          sqlExec.Transaction.Commit;
Как видите, строка "sqlExec.Transaction.StartTransaction" отсутствует...
ошибок нет и данные в базу сохраняются
Akella
Ср 10 июл 2019 13:51
Форум: Universal Data Access Components
Тема: AutoCommit у TUniQuery не работает
Ответы: 3
Просмотры: 5173

AutoCommit у TUniQuery не работает

У TUniQuery включен AutoCommit. А у TUniConnection - отключен.
У TUniQuery все SQL заполнены. Свойство UpdatingTable заполнено.
SQL

Код: Выделить всё

SELECT 
  MP.ID,
  MP.PARENT,
  MP.PNAME,
  MP.PTYPE,
  MP.PVAL,
  MP.IMAGEINDEX,
  MP.STATEINDEX,
  MP.TTELEGRAMUSERS_ID 
FROM TTELEGRAMMAILINGPARAM MP
SQLUpdate:

Код: Выделить всё

UPDATE TTELEGRAMMAILINGPARAM
SET
  ID = :ID, PARENT = :PARENT, TTELEGRAMUSERS_ID = :TTELEGRAMUSERS_ID, PNAME = :PNAME, PTYPE = :PTYPE, PVAL = :PVAL, IMAGEINDEX = :IMAGEINDEX, STATEINDEX = :STATEINDEX
WHERE
  ID = :Old_ID
Меняю в сетке значение какого-нибудь поля. Вижу, что изменилось, но после переоткрытия набора данных всё равно старое значение.
Обновление проходит без ошибок.
У TUniQuery 2 транзации: пишущая и читающая. Параметры пишущей: write;nowait;rec_version;read_committed, свойство IdolationLavel установлено в ilCustom.

Нужно, чтобы только у нескольких TUniQuery работал механизм AutoCommit, поэтому у TUniConnection AutoCommit отключен.

Что я ещё забыл?
Akella
Вт 09 июл 2019 12:47
Форум: Universal Data Access Components
Тема: Как правильно отключаться от базы и завершать работу приложения?
Ответы: 21
Просмотры: 15545

Re: Как правильно отключаться от базы и завершать работу приложения?

Насколько я знаю, у Firebird нет никакого механизма автоматического создания/старта транзакций.
Поэтому за старт транзакций отвечают сами компоненты доступа (UniDAC, FireDAC либо FibPlus).
Например, у FibPlus есть свойства, отвечающие за Autostart transaction. И если отключить Autostart transaction у FibPlus, то при попытке открыть датасет появляется ошибка, что нет активной транзакции.
Поэтому я искал что-то подобное и у UniDAC, но не нашёл и подумал, что Autostart transaction в библиотеке UniDAC где внутри и не управляется программистом, ну типа оно просто есть.
Akella
Вт 09 июл 2019 12:34
Форум: Universal Data Access Components
Тема: Как правильно отключаться от базы и завершать работу приложения?
Ответы: 21
Просмотры: 15545

Re: Как правильно отключаться от базы и завершать работу приложения?

Я уже разобрался.

Cоздавалось несколько одинаковых компонент типа TUniConnection, а уничтожалась в итоге только одна компонента. Поэтому и оставались активные транзакции. Непонятно только почему всегда была активная транзакция, хотя в приложении было 5-10 или больше подключений, как показывал SQL-монитор.
Akella
Вт 09 июл 2019 10:54
Форум: Universal Data Access Components
Тема: Как правильно отключаться от базы и завершать работу приложения?
Ответы: 21
Просмотры: 15545

Re: Как правильно отключаться от базы и завершать работу приложения?

В общем, судя по SQL-монитору, создавалось несколько одинаковых Connection, а уничтожалось только одно.
Akella
Вт 09 июл 2019 10:35
Форум: Universal Data Access Components
Тема: Как правильно отключаться от базы и завершать работу приложения?
Ответы: 21
Просмотры: 15545

Re: Как правильно отключаться от базы и завершать работу приложения?

Хорошо было бы, если бы в исключении было бы больше информации.
ID подключения, ID транзакции, SQL запрос(ы), чтобы можно было бы быстрее такую проблему решить