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

Stellar
Вт 27 апр 2021 15:13
Форум: Universal Data Access Components
Тема: Проблема подключения базы данных Oracle к MS SSMS с помощью Devart ODBC
Ответы: 3
Просмотры: 1858

Re: Проблема подключения базы данных Oracle к MS SSMS с помощью Devart ODBC

Вы можете посмотреть список установленных экземпляров MS SQL Server на компьютере с помощью утилиты Sql Server Configuration Manager, либо в списке служб компьютера.

https://prnt.sc/125dk5r
https://prnt.sc/125dl9t
Stellar
Чт 18 мар 2021 10:23
Форум: Universal Data Access Components
Тема: UniQuery-FetchRows и пагинация
Ответы: 10
Просмотры: 5793

Re: UniQuery-FetchRows и пагинация

При исcпользовани SmartFetch установите для опции FetchAll значение True (значение по умолчанию).
UniQuery1->SpecificOptions->Values["FetchAll"] = "True";
Stellar
Чт 18 мар 2021 09:36
Форум: Universal Data Access Components
Тема: UniQuery-FetchRows и пагинация
Ответы: 10
Просмотры: 5793

Re: UniQuery-FetchRows и пагинация

Если для TUniQuery/TUniTable активирован режим SmartFetch, тогда не нужно ограничивать загрузку записей в набор данных. Пример использования SmartFetch:

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

UniQuery1.SQL.Text := 'SELECT DEPTNO, DNAME, LOC FROM DEPT';
UniQuery1.FetchRows := 50;
UniQuery1.KeyFields := 'DEPTNO';
UniQuery1.FetchAll := True;
UniQuery1.SmartFetch.LiveBlock := True;
UniQuery1.SmartFetch.Enabled := True;
UniQuery1.Open;
В режиме FetchAll = False, UniDAC отправляет один запрос на сервер, для получения всех записей. Но загружает записи, в набор данных, по мере необходимости(при перемещении курсора). Если переместить курсор в конец набора данных, тогда все записи будут загружены в набор данных.
В режиме SmartFetch на сервер отправляется запрос, для получения ограниченного количества записей. Загружаемое количество записей определяется свойством FetchRows. Запрос получения записей будет иметь приблизительно такой вид:

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

// FetchRows = 50;
SELECT * FROM Dept WHEREE DeptNO > 0 AND DeptNO <= 50
При перемещении курсора, будет отправлен еще один запрос на сервер:

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

SELECT * FROM Dept WHEREE DeptNO > 50 AND DeptNO <= 100
Если для опции SmartFetch.LiveBlock установлено значение True, тогда предыдущие 50 записей будут удалены с набора данных.
Stellar
Чт 11 мар 2021 16:42
Форум: Universal Data Access Components
Тема: UniQuery-FetchRows и пагинация
Ответы: 10
Просмотры: 5793

Re: UniQuery-FetchRows и пагинация

Имелось ввиду, что документация содержит описание для параметров SmartFetch.
Stellar
Ср 04 ноя 2020 15:09
Форум: Universal Data Access Components
Тема: Бесконечная прокрутка
Ответы: 1
Просмотры: 1748

Re: Бесконечная прокрутка

Для получения данных из больших таблиц компоненты UniDAC имеет специальный механизм SmartFetch, который минимизирует использование памяти приложением. Когда режим SmartFetch включен, а для параметра LiveBlock установлено значение True, объем выделенной памяти соответствует количеству записей, определенных в свойстве FetchRows. Когда новые записи загружены, дополнительная память не будет выделена, и такие записи будут удалены из памяти.
Для организации быстрой навигации по огромному набору данных UniDAC в режиме SmartFetch выполняет предварительный запрос на сервер, для построения списка значений для ключевых полей. Этот список будет хранится в памяти, пока набор данных будет активным.

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

UniQuery1.SQL.Text := 'SELECT id, name FROM Table_Name';
UniQuery1.FetchRows := 100;
UniQuery1.SpecificOptions.Values['FetchAll'] := 'True';
UniQuery1.SmartFetch.Enabled := True;
UniQuery1.SmartFetch.LiveBlock := True;
UniQuery1.KeyFields := 'id';
UniQuery1.Open;
Stellar
Ср 08 июл 2020 15:42
Форум: Universal Data Access Components
Тема: UniQuery-FetchRows и пагинация
Ответы: 10
Просмотры: 5793

Re: UniQuery-FetchRows и пагинация

Был рад помочь, если у Вас возникнут какие-либо дополнительные вопросы о наших продуктах, пожалуйста свяжитесь с нами.
Stellar
Чт 02 июл 2020 12:50
Форум: Universal Data Access Components
Тема: UniQuery-FetchRows и пагинация
Ответы: 10
Просмотры: 5793

Re: UniQuery-FetchRows и пагинация

Для получения данных из больших таблиц компоненты UniDac имеет специальный режим SmartFetch, который минимизирует использование памяти приложением. Когда режим SmartFetch включен, а для параметра LiveBlock установлено значение True, объем выделенной памяти соответствует количеству записей, определенных в свойстве FetchRows. Когда новые записи загружены, дополнительная память не будет выделена, и такие записи будут удалены из памяти.

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

UniQuery1->FetchRows = 50;
UniQuery1->SpecificOptions->Values["FetchAll"] = "True";
UniQuery1->SmartFetch->Enabled = true;
UniQuery1->SmartFetch->LiveBlock = true;
UniQuery1->KeyFields = "id";
UniQuery1->Open();
Больше информации о SmartFetch опции Вы можете прочитать в нашей он-лайн документации:
https://www.devart.com/unidac/docs/?dev ... ptions.htm
Stellar
Чт 12 сен 2019 14:09
Форум: Universal Data Access Components
Тема: Момент окончания выполнения запроса на сервере
Ответы: 1
Просмотры: 5840

Re: Момент окончания выполнения запроса на сервере

По умолчанию, UniQuery не выполняет запросы в отдельном потоке. Соотвественно, во время выполения запроса основной поток "замораживается", до окончания выполнения запроса на сервере и получения результата от сервера.
Если у вашего приложения несколько потоков, тогда вам необходимо самостоятельно реализовать логику возможности закрытия приложения.
Stellar
Чт 25 апр 2019 15:27
Форум: Universal Data Access Components
Тема: Большое потребление памяти
Ответы: 1
Просмотры: 4653

Re: Большое потребление памяти

При активной опции SmartFetch, UniDAC выполняет предварительный запрос на сервер, для построения списка значений ключевых полей. Если первичным ключом является поле типа DECIMAL(10), тогда список значений первичных ключей не будет занимать большого объема оперативной памяти. В режиме SmartFetch UniDAC не выделяет буфер для всех записей К сожалению, мы не можем воспроизвети проблему с "out of memory" в режиме SmartFetch.
Пожалуйста, составьте небольшой пример для ее воспроизведения с использованием стандартных Data Controls (TDBGrid, TDBEDit и пр.) и пришлите нам для исследования. Пример вы можете прислать, используя форму контакта на нашем сайте: http://www.devart.com/company/contactform.html
Stellar
Пн 15 апр 2019 14:33
Форум: SQL Server Data Access Components
Тема: Обновление только что добавленной записи
Ответы: 1
Просмотры: 7923

Re: Обновление только что добавленной записи

К сожалению, мы не можем воспроизвести указанную вами проблему. Пожалуйста, составьте небольшой пример для ее воспроизведения с использованием стандартных компонент и пришлите нам для исследования, включая скрипты для создания объектов базы данных. Пример вы можете прислать, используя форму контакта на нашем сайте: http://www.devart.com/company/contactform.html
Stellar
Пн 18 мар 2019 17:31
Форум: Universal Data Access Components
Тема: UniDAC и MS SQL Always On
Ответы: 1
Просмотры: 5986

Re: UniDAC и MS SQL Always On

Для того, чтобы обеспечить клиентское соединение с базой данных определенной группы доступности, необходимо создать прослушиватель группы доступности. Прослушиватель группы доступности ― это виртуальное сетевое имя (VNN), к которому могут подключаться клиенты, чтобы получить доступ к базе данных из первичной или вторичной реплики группы доступности AlwaysOn. Прослушиватель группы доступности позволяет клиенту подключаться к реплике доступности, не зная имени физического экземпляра SQL Server, с которым устанавливается соединение.

Больще информации о подключении к прослушивателю группы доступности Always On:
docs.microsoft.com/ru-ru/sql/database-engine/availability-groups/windows/listeners-client-connectivity-application-failover?view=sql-server-2017
Stellar
Чт 07 мар 2019 16:43
Форум: Universal Data Access Components
Тема: UniConnection и БД на SQL сервере в зеркальном отражении
Ответы: 1
Просмотры: 5805

Re: UniConnection и БД на SQL сервере в зеркальном отражении

UniDAC поддерживает технологию SQL Server Always On, но собственной реализаций автоматического переподключения к резервному серверу, при разрыве соединения, UniDAC не имеет. Для того, чтобы использовать обработчик события OnConnectionLost, необходимо добавить модуль MemData и установить для свойства TUniConnection.Options.LocalFailover значение True. Вы можете сами реализовать подключение к резервному серверу, при разрыве соединения.

Подробнее о OnConnectionLost:
devart.com/unidac/docs/devart.dac.tcustomdaconnection.onconnectionlost.htm
Stellar
Пт 25 янв 2019 15:08
Форум: Universal Data Access Components
Тема: TUniTable.Post и запрос к linked-серверу
Ответы: 1
Просмотры: 4418

Re: TUniTable.Post и запрос к linked-серверу

Блокировка записи полезна при создании многопользовательских приложений. Это предотвращает изменение записи несколькими пользователями одновременно. При использовании LockMode равным lmNone изменениe записи будет выполняться без блокировки.
При попыткe выполнить изменение данных на linked-сервере из триггера Sql Server пытается начать распределенную транзакцию.
Это поведение сервера, на которое мы не можем повлиять.
Stellar
Пт 05 окт 2018 16:02
Форум: SQL Server Data Access Components
Тема: Табличные параметры
Ответы: 3
Просмотры: 7874

Re: Табличные параметры

Рады слышать, что проблема решена. Если у вас возникнут вопросы по использованию наших компонентов - обращайтесь.
Stellar
Вт 02 окт 2018 11:39
Форум: SQL Server Data Access Components
Тема: Табличные параметры
Ответы: 3
Просмотры: 7874

Re: Табличные параметры

Для загрузки данных из TMSTableData в табличный параметр необходимо будет продублировать данные, что приведет к потере производительности и увеличению используемой памяти приложения. Поэтому, мы не видим целесообразности подобного решения.
Вы можете попробовать добавить тег в TMSTableData, который будет признаком, можно ли удалять объект TMSTableData.