Найдено 212 результатов
- Чт 16 июн 2016 12:41
- Форум: SQL Server Data Access Components
- Тема: Проблема с параметрами TMSQuery
- Ответы: 11
- Просмотры: 21224
Re: Проблема с параметрами TMSQuery
Для исследования проблемы, пожалуйста, составьте и вышлите на viktorv*devart*com небольшой пример демонстрирующий проблему, включающий скрипты для создания объектов БД.
- Ср 01 июн 2016 14:16
- Форум: SQL Server Data Access Components
- Тема: Не срабатывает событие OnConnectionLost
- Ответы: 3
- Просмотры: 13239
Re: Не срабатывает событие OnConnectionLost
Мы добавим данную информацию в документацию SDAC. Если у Вас возникнут дополнительные вопросы по использованию наших компонентов - обращайтесь.
- Ср 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 попытается пересоединиться и перезапустить неудавшуюся операцию.
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 попытается пересоединиться и перезапустить неудавшуюся операцию.
- Чт 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 и сообщим Вам результат.
- Ср 25 май 2016 11:09
- Форум: Universal Data Access Components
- Тема: MySql: битый текст исключения при отсутствии соединения
- Ответы: 1
- Просмотры: 3713
Re: MySql: битый текст исключения при отсутствии соединения
Спасибо за информацию. Мы исследуем данное поведение MyDAC при использовании Unicode и сообщим Вам результат.
- Пн 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.
2. Это обычное поведение для наших компонентов. UpdateTransaction коммитится только в тот момент, когда нужно подтвердить изменение данных (например, при изменении или удалении записи в датасете). В остальных случаях UpdateTransaction будет завершена при закрытии соединения в зависимости от значения свойства DefaultCloseAction.
- Вт 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 требует активной транзакции для любой операции с данными).
- TUniTransaction.OnStart
- TUniQuery.BeforePost
- TUniTransaction.OnCommitRetaining
- TUniTransaction.OnCommit
- TUniQuery.AfterPost
2. Да, действительно, при включенной опции TUniQuery.Options.QueryRecCount стартуют обе транзакции и это тоже корректное поведение наших компонентов. При включенной опции TUniQuery.Options.QueryRecCount запрос на получение количества записей выполняется в контексте транзакции определенной в свойстве UpdateTransaction. Транзакция определенная в свойстве Transaction используется для открытия датасета (т.к. InterBase/Firebird требует активной транзакции для любой операции с данными).
- Чт 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. Чем больше голосов наберет Ваше предложение, тем быстрее мы рассмотрим возможность ее реализации.
На данный момент UniDAC не поддерживает возможность отключить проверку параметров хранимой процедуры. Если Вы хотите, чтобы мы добавили данную поддержку, пожалуйста, напишите об этом на нашем User Voice форуме: https://devart.uservoice.com/forums/104 ... 939-unidac. Чем больше голосов наберет Ваше предложение, тем быстрее мы рассмотрим возможность ее реализации.
- Чт 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 различается.
- TUniQuery.BeforePost
- TUniTransaction.OnStart
- TUniTransaction.OnCommit
- TUniQuery.AfterPost
Пожалуйста, составьте и вышлите на viktorv*devart*com пример демонстрирующий описанное вами поведение, при котором последовательность событий при выполнении TUniQuery.Edit и TUniQuery.Append различается.
- Вт 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.
Для определения запуска необходимой вам транзакции вы можете использовать обработчик события TUniTransaction.OnStart. Пожалуйста, используйте данный обработчик события для логирования старта транзакции, определенной в свойстве TUniQuery.UpdateTransaction, и сообщите нам стартует ли данная транзакция после подтверждения изменений вызванных методом TUniQuery.Append.
- Пт 18 мар 2016 10:58
- Форум: Universal Data Access Components
- Тема: Возвращаемый параметр процедуры Firebird
- Ответы: 5
- Просмотры: 6308
Re: Возвращаемый параметр процедуры Firebird
Рады слышать, что проблема решена. Обращайтесь к нам, если у Вас возникнут вопросы по UniDAC.
- Чт 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);
- Чт 10 мар 2016 08:10
- Форум: Universal Data Access Components
- Тема: Возвращаемый параметр процедуры Firebird
- Ответы: 5
- Просмотры: 6308
Re: Возвращаемый параметр процедуры Firebird
Для доступа к параметрам хранимой процедуры с помощью TUniSQL, вы можете вызвать метод TUniSQL.CreateProcCall перед вызовом TUniSQL.Execute. Например;
Более подробную информации об этом методе Вы можете получить в UniDAC помощи: https://www.devart.com/unidac/docs/Deva ... tring).htm
Также, вы можете в UniSQL.SpecificOptions установить в True опцию DescribeParams и вызвать метод TUniSQL.Prepare. Например;
Код: Выделить всё
UniSQL.CreateProcCall('Stored_proc_name');
UniSQL.ParamByName('In_param').AsInteger := 3;
UniSQL.Execute;
ShowMessage(UniSQL.ParamByName('Out_param').AsString);
Также, вы можете в 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);
- Пт 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;
- Ср 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