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

raMZES
Пт 17 мар 2017 18:36
Форум: Universal Data Access Components
Тема: PG и сообщения об ошибках
Ответы: 2
Просмотры: 5295

Re: PG и сообщения об ошибках

Спасибо большое.
raMZES
Ср 15 мар 2017 19:12
Форум: Universal Data Access Components
Тема: PG и сообщения об ошибках
Ответы: 2
Просмотры: 5295

PG и сообщения об ошибках

Добрый вечер.
Подскажите пожалуйста, как в UniDAC получить DETAIL информацию об ошибке?

Как пример:
Изображение

Спасибо.
raMZES
Вс 28 фев 2016 20:33
Форум: Universal Data Access Components
Тема: UniDac. FB3. DatabaseInfo.
Ответы: 1
Просмотры: 3427

UniDac. FB3. DatabaseInfo.

Доброго времени суток.

Подскажите пожалуйста, как в UniDac получить статистику соединения (DatabaseInfo)?
В IBDac это делал с помощью IBCConnection.DatabaseInfo...

Спасибо.
raMZES
Пн 01 фев 2016 15:02
Форум: Universal Data Access Components
Тема: UniDac 6.2.9. PG 9.5. Знак % в запросе
Ответы: 3
Просмотры: 5088

Re: UniDac 6.2.9. PG 9.5. Знак % в запросе

Добрый день.

Прошу прощения. Все отлично работает.

По ошибке я подключился и пытался с помощью UniDac выполнить запрос к БД, которая расположена на другом тест-сервере. Там отсутствовало расширение для триграммного поиска - pg_trgm.
raMZES
Пт 29 янв 2016 19:49
Форум: Universal Data Access Components
Тема: UniDac 6.2.9. PG 9.5. Знак % в запросе
Ответы: 3
Просмотры: 5088

UniDac 6.2.9. PG 9.5. Знак % в запросе

Добрый вечер.

Подскажите пожалуйста, как выполнить запрос типа:

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

SELECT
     field_1, ... field_n
FROM
     table_x
WHERE 
     field_1 % 'текст'
Возвращается ошибка о несуществующем операторе. Хотя запрос отлично выполняется в инструментах PgAdmin, Navicat и др., а так же при использовании FireDac.

Спасибо.
raMZES
Чт 28 янв 2016 19:59
Форум: Universal Data Access Components
Тема: FireBird 3, LockMode, Транзакции
Ответы: 1
Просмотры: 3734

FireBird 3, LockMode, Транзакции

Доброго времени суток.

Тестирую UniDac v 6.2.9 и FireBird 3 WI-V3.0.0.32281.
У меня получается беда с транзакциями при LockMode = lmOptimistic и lmPessimistic.
Данные редактируются в гриде.

Старт транзакции есть, но я не наблюдаю подтверждения транзакции при попытке сохранить запись. Возможно, ошибка в коде UniDac.

По ссылке можно взять тестовый проект с БД для демонстрации проблемы.

Спасибо.
raMZES
Пт 15 май 2015 16:28
Форум: Universal Data Access Components
Тема: PG. UniDac 6.1.3. TUniQuery. Транзакции
Ответы: 6
Просмотры: 6641

Re: PG. UniDac 6.1.3. TUniQuery. Транзакции

Разобрался.

В PG если не указать BEGIN, то каждый отдельный оператор имеет неявную команду BEGIN перед оператором и, при успешной отработке оператора, команду COMMIT после оператора, а уровень изоляции и параметр read_only для "дефолтной" транзакции настраивается в файле конфигурации postgresql.conf

Прошу прощения за отнятое время.
raMZES
Пт 15 май 2015 11:13
Форум: Universal Data Access Components
Тема: PG. UniDac 6.1.3. TUniQuery. Транзакции
Ответы: 6
Просмотры: 6641

Re: PG. UniDac 6.1.3. TUniQuery. Транзакции

Спасибо за ответ.
AndreyZ писал(а): Пожалуйста уточните, после того как вы для этой транзакции установили сво-во ReadOnly в True, вызвали метод StartTransaction и изменяете данные в датасете - вы получаете сообщение об ошибке 'в транзакции в режиме "только чтение" нельзя выполнить UPDATE.'?
Я метод StartTransaction не вызываю. Пожалуйста подскажите, для чего?
TUniTransaction с включенным ReadOnly. Открываю TUniQuery. В в DBGrid пробую изменить данные. Данные меняются. Почему, если TUniTransaction, в контексте которой работает открытый TUniQuery, запущена с включенным ReadOnly?
AndreyZ писал(а): Для этого вам необходимо для транзакции, которая связана с датасетом TUniQuery, вызывать метод StartTransaction перед открытием этого датасета.
Для чего это делать, если я открыл TUniQuery в TUniTransaction с ilRepeatableRead?
Запустилась транзакция с нужным мне уровнем изоляции. Я смотрю данные. С этим уровнем, сколько бы запросов я не делал, все-равно должны быть одни и те же данные, пока я не завершил и не запустил эту транзакцию.

TUniQuery не может ведь читать данные просто так. Она же работает в контексте транзакции.
В контексте какой транзакции запускается TUniQuery (которому указано использовать TUniTransaction с ilRepeatableRead), когда я его открываю?


Спасибо.
raMZES
Чт 14 май 2015 20:10
Форум: Universal Data Access Components
Тема: PG. UniDac 6.1.3. TUniQuery. Транзакции
Ответы: 6
Просмотры: 6641

Re: PG. UniDac 6.1.3. TUniQuery. Транзакции

AndreyZ писал(а):Для того чтобы начать транзакцию, вызовите метод TUniTransaction.StartTransaction.
Это понятно. В контексте какой транзакции работает TUniQuery? Я явно указал использовать определенную TUniTransaction, но это свойство игнорируется.
AndreyZ писал(а): изменения, которые вы внесли в приложении 1, не будут видны в приложении 2 до тех пор, пока вы не вызовите в приложении 1 метод TUniTransaction.Commit .
В том то и дело, что во втором приложении, в котором указан уровень изоляции RepeatableRead, закоммиченные данные других транзакций не должны быть видны, пока я не завершил и заново не запустил эту транзакцию.

Это из документации PG.

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

13.2.2. Repeatable Read Isolation Level

The Repeatable Read isolation level only sees data committed before the transaction began; it never sees either uncommitted data or changes committed during transaction execution by concurrent transactions.

Здесь же получается, что я указал в TUniTransaction уровень изоляции RepeatableRead, а он работает как ReadCommited.
raMZES
Ср 13 май 2015 16:35
Форум: Universal Data Access Components
Тема: PG. UniDac 6.1.3. TUniQuery. Транзакции
Ответы: 6
Просмотры: 6641

PG. UniDac 6.1.3. TUniQuery. Транзакции

Добрый день.

Возможно я делаю что-то не так, поскольку UniDac только начинаю осваивать. Тестирую на СУБД PostgreSQL 9.4.1

Есть:
TUniConnection
TPostgreSQLUniProvider
TUniTransaction
TUniQuery
TUniDataSources
и т.д.

К TUniQuery подцеплен TUniTransaction. Он же подцеплен и к TUniConnection. В TUniQuery написаны INSERT, UPDATE, DELETE запросы.

При добавлении\редактировании\удалении данных в DBGrid не видно, чтобы TUniQuery как-то использовал подцепленную к нему TUniTransaction.

Не важно, указал ли я то, что TUniTransaction должна быть ReadOnly, данные все равно изменяются\удаляются.

В другом приложении (тестовом, параллельно запущенном) для TUniTransaction указываю уровень изоляции ilRepeatableRead, но при повторном запросе, без завершения и старта транзакции, dвидны добавленные\измененные данные из первого приложения.

Подскажите пожалуйста, как правильно работать с транзакциями при помощи UniDac с Pg.

Спасибо.
raMZES
Вт 19 ноя 2013 10:41
Форум: InterBase Data Access Components
Тема: Lazarus 1.0.12. IBDac 5.1.4. Query.LocateEx. Как?
Ответы: 8
Просмотры: 18976

Re: Lazarus 1.0.12. IBDac 5.1.4. Query.LocateEx. Как?

Добрый день.

Спасибо. При устранении проблемы обратите внимание на кодировку столбцов. С OCTETS поиск не работает, хотя у Вас в справочной информации рекомендуется использовать именно ее для уменьшения задержек при сохранении зашифрованной информации.

Если можно, после устранения, напишите здесь в какой версии исправлено.
raMZES
Пн 18 ноя 2013 20:54
Форум: InterBase Data Access Components
Тема: Lazarus 1.0.12. IBDac 5.1.4. Query.LocateEx. Как?
Ответы: 8
Просмотры: 18976

Lazarus 1.0.12. IBDac 5.1.4. Query.LocateEx. Как?

Доброго времени суток.

Ранее функцией LocateEx не пользовался. Но в данном случае придется, т.к. данные будут зашифрованы.

Как написано в справке,пишу код, при нажатии на кнопку фильтра btnFilter (cbbSearch - комбобокс):

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

procedure TfMain.btnFilterClick(Sender: TObject);
var
  filterfield: string;
begin
  // --------------------------------------------------------
  //Поле поиска
  // --------------------------------------------------------
  case cbbSearch.ItemIndex of
    0: filterfield := 'EMPLOYEE_NAME';
    1: filterfield := 'EMPLOYEE_TABNUM';
    2: filterfield := 'EMPLOYEE_ADDRESS';
    3: filterfield := 'EMPLOYEE_BIRTHDAY';
    4: filterfield := 'EMPLOYEE_PHONE';
  end;
  // --------------------------------------------------------
  //Пробуем фильтровать
  // --------------------------------------------------------
  fDM.QEmployee.LocateEx(filterfield, edtFilter.Text,
    [lxPartialKey, lxCaseInsensitive]);
end;
Но поиск не работает. Если можете, подскажите.
Здесь можно взять начальную стадию проекта с БД (1,71 МБайт)

Спасибо.
raMZES
Ср 06 ноя 2013 14:14
Форум: Universal Data Access Components
Тема: Lazarus. SQLite. Direct mode.
Ответы: 3
Просмотры: 4758

Re: Lazarus. SQLite. Direct mode.

Понятно. Спасибо. Значит и шифрование на платформах, отличных от Win32, работать тоже не будет без сторонних библиотек.
raMZES
Вт 05 ноя 2013 17:16
Форум: Universal Data Access Components
Тема: Lazarus. SQLite. Direct mode.
Ответы: 3
Просмотры: 4758

Lazarus. SQLite. Direct mode.

Доброго времени...

В справке по UniDAC нашел SQLite-specific option Direct.
Из справки продукта:
If the Direct option is set to True, LiteDAC (почему-то здесь указан LiteDAC) connects to the database directly using embedded SQLite3 engine and does not use SQLite3 client library.
Lazarus. Linux. UniDAC 5.1.4. В свойствах компонента указывал Direct=Ttue, однако этот параметр в свойствах компонента не сохраняется. В событии BeforeConnect пишу:

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

UniConnection.SpecificOptions.Values['Direct'] := 'True';
Однако, все равно "вылазит" ошибка об отсутствии библиотеки sqlite3.so.
По возможности, подскажите.

Заранее благодарен.
raMZES
Ср 05 сен 2012 16:29
Форум: InterBase Data Access Components
Тема: Информация IBCDatabase.DatabaseInfo[TransactionInfo]
Ответы: 6
Просмотры: 11202

Re: Информация IBCDatabase.DatabaseInfo[TransactionInfo]

Спасибо за разъяснение и потраченное Вами время. Ваше сообщение можно опубликовать на форуме http://www.ibaseforum.ru в созданной мной теме?