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

ViktorV
Чт 16 июн 2016 12:41
Форум: SQL Server Data Access Components
Тема: Проблема с параметрами TMSQuery
Ответы: 11
Просмотры: 21224

Re: Проблема с параметрами TMSQuery

Для исследования проблемы, пожалуйста, составьте и вышлите на viktorv*devart*com небольшой пример демонстрирующий проблему, включающий скрипты для создания объектов БД.
ViktorV
Ср 01 июн 2016 14:16
Форум: SQL Server Data Access Components
Тема: Не срабатывает событие OnConnectionLost
Ответы: 3
Просмотры: 13239

Re: Не срабатывает событие OnConnectionLost

Мы добавим данную информацию в документацию SDAC. Если у Вас возникнут дополнительные вопросы по использованию наших компонентов - обращайтесь.
ViktorV
Ср 01 июн 2016 11:57
Форум: SQL Server Data Access Components
Тема: Не срабатывает событие OnConnectionLost
Ответы: 3
Просмотры: 13239

Re: Не срабатывает событие OnConnectionLost

Чтобы включить обработчик события OnConnectionLost, установите свойство TMSConnection.Options.LocalFailover в True. Обратите внимание, чтобы использовать обработчик OnConnectionLost, вам нужно добавить юнит MemData в секцию USES вашего юнита. Пример использования OnConnectionLost:
procedure TForm1.Button1Click(Sender: TObject);
begin
MSConnection1.Options.LocalFailover := True;
MSConnection1.Open;
end;

procedure TForm1.MSConnection1ConnectionLost(Sender: TObject;
Component: TComponent; ConnLostCause: TConnLostCause;
var RetryMode: TRetryMode);
begin
RetryMode := rmReconnectExecute;
end;
В этом случае, при потере соединения SDAC попытается пересоединиться и перезапустить неудавшуюся операцию.
ViktorV
Чт 26 май 2016 14:11
Форум: SQL Server Data Access Components
Тема: Field: AccountSaldoCurr Fractional part was truncated: -566544288,49
Ответы: 1
Просмотры: 11798

Re: Field: AccountSaldoCurr Fractional part was truncated: -566544288,49

Спасибо за информацию. Мы исследуем данное поведение SDAC при использовании маппинга MONEY в BCD и сообщим Вам результат.
ViktorV
Ср 25 май 2016 11:09
Форум: Universal Data Access Components
Тема: MySql: битый текст исключения при отсутствии соединения
Ответы: 1
Просмотры: 3713

Re: MySql: битый текст исключения при отсутствии соединения

Спасибо за информацию. Мы исследуем данное поведение MyDAC при использовании Unicode и сообщим Вам результат.
ViktorV
Пн 23 май 2016 14:08
Форум: Universal Data Access Components
Тема: Некорректное поведение транзакций Firebird
Ответы: 3
Просмотры: 4352

Re: Некорректное поведение транзакций Firebird

1. Если свойство LockMode установлено в lmNone - блокировка записи не выполняется. При установке свойства LockMode в значение lmPessimistic запись, которую вы редактируете, будет заблокирована в момент вызова метода Edit. Если это свойство установлено в значение lmOptimistic, запись будет блокироваться непосредственно в момент вызова метода Post. Поэтому на сервере сохраняться изменения данных того пользователя, который последним вызвал метод Post, в независимости от того кто первый начал редактировать эти данные.
2. Это обычное поведение для наших компонентов. UpdateTransaction коммитится только в тот момент, когда нужно подтвердить изменение данных (например, при изменении или удалении записи в датасете). В остальных случаях UpdateTransaction будет завершена при закрытии соединения в зависимости от значения свойства DefaultCloseAction.
ViktorV
Вт 17 май 2016 08:40
Форум: Universal Data Access Components
Тема: Некорректное поведение транзакций Firebird
Ответы: 3
Просмотры: 4352

Re: Некорректное поведение транзакций Firebird

1. Последовательность событий при выполнении TUniQuery.Edit и TUniQuery.Append различается только в случае, когда свойство TUniQuery.Lock <> LmNone. Это корректное поведение для наших компонентов. При использовании отдельной пишущей транзакции и когда свойство TUniQuery.Lock <> LmNone, при вызове TUniQuery.Edit выполняется следующая последовательность событий:
- TUniTransaction.OnStart
- TUniQuery.BeforePost
- TUniTransaction.OnCommitRetaining
- TUniTransaction.OnCommit
- TUniQuery.AfterPost
2. Да, действительно, при включенной опции TUniQuery.Options.QueryRecCount стартуют обе транзакции и это тоже корректное поведение наших компонентов. При включенной опции TUniQuery.Options.QueryRecCount запрос на получение количества записей выполняется в контексте транзакции определенной в свойстве UpdateTransaction. Транзакция определенная в свойстве Transaction используется для открытия датасета (т.к. InterBase/Firebird требует активной транзакции для любой операции с данными).
ViktorV
Чт 28 апр 2016 15:08
Форум: Universal Data Access Components
Тема: Assertion failure при Execute Procedure в MySQL
Ответы: 1
Просмотры: 3573

Re: Assertion failure при Execute Procedure в MySQL

К сожалению, мы не смогли воспроизвести Assert ошибку при попытке выполнить хранимую процедуру пользователем, который не обладает правом на просмотр тела процедуры. Пожалуйста, составьте и вышлите нам небольшой пример демонстрирующий проблему на viktorv*devart*com, включающий скрипты для создания объектов БД.
На данный момент UniDAC не поддерживает возможность отключить проверку параметров хранимой процедуры. Если Вы хотите, чтобы мы добавили данную поддержку, пожалуйста, напишите об этом на нашем User Voice форуме: https://devart.uservoice.com/forums/104 ... 939-unidac. Чем больше голосов наберет Ваше предложение, тем быстрее мы рассмотрим возможность ее реализации.
ViktorV
Чт 31 мар 2016 08:50
Форум: Universal Data Access Components
Тема: Автоматический старт транзакции Firebird
Ответы: 3
Просмотры: 4951

Re: Автоматический старт транзакции Firebird

При использовании отдельной пишущей транзакции как при вызове TUniQuery.Edit, так и при вызове TUniQuery.Append выполняется одинаковая последовательность событий:
- TUniQuery.BeforePost
- TUniTransaction.OnStart
- TUniTransaction.OnCommit
- TUniQuery.AfterPost
Пожалуйста, составьте и вышлите на viktorv*devart*com пример демонстрирующий описанное вами поведение, при котором последовательность событий при выполнении TUniQuery.Edit и TUniQuery.Append различается.
ViktorV
Вт 29 мар 2016 13:18
Форум: Universal Data Access Components
Тема: Автоматический старт транзакции Firebird
Ответы: 3
Просмотры: 4951

Re: Автоматический старт транзакции Firebird

При использовании свойства TUniQuery.UpdateTransaction для модификации данных будет использоваться транзакция указанная в этом свойстве. Тогда, при подтверждении изменений вызванных как методом TUniQuery.Edit, так и методом TUniQuery.Append автоматически стартует вышеуказанная транзакция и сразу же вызывается ее метод Commit. Обратите внимание, транзакция будет стартовать не при выполнении методов TUniQuery.Edit (TUniQuery.Append), а при вызове метода TUniQuery.Post.
Для определения запуска необходимой вам транзакции вы можете использовать обработчик события TUniTransaction.OnStart. Пожалуйста, используйте данный обработчик события для логирования старта транзакции, определенной в свойстве TUniQuery.UpdateTransaction, и сообщите нам стартует ли данная транзакция после подтверждения изменений вызванных методом TUniQuery.Append.
ViktorV
Пт 18 мар 2016 10:58
Форум: Universal Data Access Components
Тема: Возвращаемый параметр процедуры Firebird
Ответы: 5
Просмотры: 6308

Re: Возвращаемый параметр процедуры Firebird

Рады слышать, что проблема решена. Обращайтесь к нам, если у Вас возникнут вопросы по UniDAC.
ViktorV
Чт 17 мар 2016 12:38
Форум: Universal Data Access Components
Тема: Возвращаемый параметр процедуры Firebird
Ответы: 5
Просмотры: 6308

Re: Возвращаемый параметр процедуры Firebird

Для получения значения OUT параметра вам следует изменить ваш код на следующий:

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

  UniSQL->SQL->Add("Execute procedure procName ("+IntToStr(In_param)+")");
  UniSQL->SpecificOptions->Values["InterBase.DescribeParams"] = "True";
  UniSQL->Prepare();
  UniSQL->Execute();
  ShowMessage(UniSQL->ParamByName("PO")->AsString);
ViktorV
Чт 10 мар 2016 08:10
Форум: Universal Data Access Components
Тема: Возвращаемый параметр процедуры Firebird
Ответы: 5
Просмотры: 6308

Re: Возвращаемый параметр процедуры Firebird

Для доступа к параметрам хранимой процедуры с помощью TUniSQL, вы можете вызвать метод TUniSQL.CreateProcCall перед вызовом TUniSQL.Execute. Например;

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

  UniSQL.CreateProcCall('Stored_proc_name');
  UniSQL.ParamByName('In_param').AsInteger := 3;
  UniSQL.Execute;
  ShowMessage(UniSQL.ParamByName('Out_param').AsString);
Более подробную информации об этом методе Вы можете получить в UniDAC помощи: https://www.devart.com/unidac/docs/Deva ... tring).htm
Также, вы можете в UniSQL.SpecificOptions установить в True опцию DescribeParams и вызвать метод TUniSQL.Prepare. Например;

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

  UniSQL.SpecificOptions.Values['InterBase.DescribeParams'] := 'True';
  UniSQL.Prepare;
  UniSQL.ParamByName('In_param').AsInteger := 3;
  UniSQL.Execute;
  ShowMessage(UniSQL.ParamByName('Out_param').AsString);
ViktorV
Пт 04 мар 2016 15:19
Форум: MySQL Data Access Components
Тема: Schema
Ответы: 2
Просмотры: 19722

Re: Schema

Для создания новой БД и подключения к ней, вы можете использовать следующий код:

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

  MyConnection.Database = 'mysql';
  MyConnection.Connect;
  MyConnection.ExecSQL('CREATE DATABASE IF NOT EXISTS `new_database` CHARACTER SET utf8 COLLATE utf8_general_ci', []);
  MyConnection.Database = 'new_database';
  MyConnection.Connect;
ViktorV
Ср 02 мар 2016 14:17
Форум: MySQL Data Access Components
Тема: UniDAC
Ответы: 1
Просмотры: 18362

Re: UniDAC

MySQL сервер не представляет возможность получения информации об изменениях совершенными другими пользователями без запроса к серверу. Для быстрого получения изменений, совершенными другими пользователями, вы можете использовать TCustomDADataSet.RefreshQuick метод. Обратите внимание для работы данного метода необходимо, чтобы таблица имела уникальные ключевые поля и поле типа TIMESTAMP. Более подробную информации об этом методе Вы можете получить в MyDAC помощи: https://www.devart.com/mydac/docs/?deva ... olean).htm