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

AndreyZ
Пт 17 мар 2017 12:10
Форум: Universal Data Access Components
Тема: PG и сообщения об ошибках
Ответы: 2
Просмотры: 4213

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

В UniDAC детали ошибки, которую генерирует PostgreSQL можно получить из св-ва EPgError.DetailMsg. Чтобы использовать EPgError, добавьте юнит PgErrorUni в раздел uses. Например:

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

uses ..., PgErrorUni;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    UniQuery1.SQL.Text := 'INSERT INTO displayscale_table(displayscale_scale) VALUES (1)';
    UniQuery1.ExecSQL;
  except
    on E: EUniError do begin
      if (E.InnerError is EPGError) then
       ShowMessage('DETAIL: ' + EPgError(E.InnerError).DetailMsg);
    ...
    end;
  end;
end;
AndreyZ
Ср 21 дек 2016 12:33
Форум: dbExpress драйверы
Тема: Не работает параметр coFetchAll=false для драйвера dbxpgs38.exe
Ответы: 6
Просмотры: 17250

Re: Не работает параметр coFetchAll=false для драйвера dbxpgs38.exe

Мы получили ваш пример с дампом. Установка параметра соединения coFetchAll=false не является причиной указанных вами ошибок. Delphi 2006 и более ранние версии имеют ограничение для установки расширенных опций драйвера, в т.ч. и опции SchemaName. Поэтому в Deplhi 7 строка кода

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

SQLConnection1.Params.Values['SchemaName'] := 'data';
не установит data текущей схемой для соединения.

О том как использовать расширенные опции в dbExpress driver for PostgreSQL для Delphi 7 - Delphi 2006, вы можете прочесть в Readme.html файле. Этот файл находится в папке, куда был установлен dbExpress driver for PostgreSQL.

Для решения проблемы вам необходимо установить расширенные опции драйвера FetchAll и SchemaName в событии AfterConnect соединения. Например:

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

procedure TForm1.SQLConnection1AfterConnect(Sender: TObject);
const
  coFetchAll = TSQLConnectionOption(301); //boolean
  coSchemaName = TSQLConnectionOption(28); // string
begin
  SQLConnection1.SQLConnection.SetOption(coFetchAll, Integer(False));
  SQLConnection1.SQLConnection.SetOption(coSchemaName, Integer(PChar('data')));
end;
А для выполнения SQL запросов достаточно использовать такой код:

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

  SimpleDataSet1.Active:=false;
  SQLConnection1.Connected:=false;
  SimpleDataSet1.DataSet.CommandText := 'select data.f_AsInteger('12345') from data.duals';
  SQLConnection1.Connected:=true;
  SimpleDataSet1.Active:=true;
AndreyZ
Пн 19 дек 2016 10:27
Форум: Universal Data Access Components
Тема: Определить СУБД
Ответы: 2
Просмотры: 3110

Re: Определить СУБД

Описанная вами задача относится к поведению пользовательского приложения, а не функциональности UniDAC. Для каждого отдельного случая порядок подключения к СУБД может быть разный; кол-во серверов для одной СУБД(основные, резервные) тоже может быть разным и т.д.

Вы можете самостоятельно реализовать необходимое поведение пользовательского приложения, исходя из требований к вашему проекту.
AndreyZ
Пт 16 дек 2016 13:23
Форум: dbExpress драйверы
Тема: Не работает параметр coFetchAll=false для драйвера dbxpgs38.exe
Ответы: 6
Просмотры: 17250

Re: Не работает параметр coFetchAll=false для драйвера dbxpgs38.exe

Мы получили ваш пример на почту, однако воспроизвести описанное вами поведение не удалось:

1. Мы получали ошибку 'SQL Server Error: отношение "od_operators" не существует.' при выполнении строки кода:

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

  SimpleDataSet1.Active:=true; 
2. Вместо сообщения об ошибке 'SQL error: function bitand(integer, integer) not found', мы получили в гриде одну запись со значением 0 при выполнении следующего кода:

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

SimpleDataSet1.DataSet.CommandText := 'select data.f_Setin(1,1) '; 
SimpleDataSet1.Active:=true; 
Пожалуйста, пришлите нам дамп тестовой базы, сделанный стандартной утилитой pg_dump (она входит в стандартную поставку pgAdmin).
AndreyZ
Пт 16 дек 2016 11:37
Форум: dbExpress драйверы
Тема: Выдача ошибок в драйвере PostgreSQL
Ответы: 1
Просмотры: 12940

Re: Выдача ошибок в драйвере PostgreSQL

1. 'LINE 1: select INV_PORT FROM data.D_B_TDBS where DOC=varchar '124669...' - эту часть сообщения генерирует парсер SQL Manager for PostgreSQL на основе информации, которую возвращает PostgreSQL:

- номер ошибки;
- текст ошибки 'operator does not exist: integer = character varying';
- № строки, № позиции в строке и место возникновения ошибки в текстовом формате;

Драйвер же возвращает в приложение только номер и текст ошибки, т.к. ограничения технологии dbExpress не позволяют передавать в приложение дополнительную информацию.

2. Мы воспроизвели описанное вами поведение и исследуем его. Мы сообщим вам о результатах.
AndreyZ
Ср 14 дек 2016 09:53
Форум: dbExpress драйверы
Тема: Не работает параметр coFetchAll=false для драйвера dbxpgs38.exe
Ответы: 6
Просмотры: 17250

Re: Не работает параметр coFetchAll=false для драйвера dbxpgs38.exe

К сожалению, мы не получали подобных писем с примером. Пожалуйста, пришлите этот пример на почту andreyz*devart*com .
AndreyZ
Вт 22 ноя 2016 13:22
Форум: dbExpress драйверы
Тема: Не работает параметр coFetchAll=false для драйвера dbxpgs38.exe
Ответы: 6
Просмотры: 17250

Re: Не работает параметр coFetchAll=false для драйвера dbxpgs38.exe

Мы не смогли воспроизвести описанные вами проблемы. Постарайтесь составить небольшой пример для их воспроизведения и прислать нам через форму контакта на нашем сайте: https://www.devart.com/company/contactform.html . При помощи стандартной утилиты pg_dump создайте дамп тестовой базы и включите в пример. Также сообщите полную версию PostgreSQL, на котором воспроизводятся проблемы.
AndreyZ
Вт 22 ноя 2016 11:43
Форум: PostgreSQL Data Access Components
Тема: CachedUpdate
Ответы: 11
Просмотры: 19339

Re: CachedUpdate

Мы не смогли воспроизвести указанную вами проблему, согласно вашим инструкциям. Постарайтесь составить небольшой пример для воспроизведения проблемы и прислать его нам через форму контакта на нашем сайте: https://www.devart.com/company/contactform.html . В пример включите DDL для тестовых таблиц.

Также уточните, воспроизводится ли указанная проблема на нашем демо-проекте PgDacDemo? Для этого в PgDacDemo, в юните MasterDetail перед открытием Detail датасета добавьте run-time код:

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

procedure TMasterDetailFrame.btOpenClick(Sender: TObject);
begin
...
  quDetail.CachedUpdates := True; // добавьте код сюда
По умолчанию, папка с демо-проектами PgDAC находится в общих документах, в подпапке Devart. Например, если вы используете RAD Studio Berlin 10.1, то по умолчанию путь к демосам PgDAC будет "C:\Users\Public\Documents\Devart\PgDAC for RAD Studio 10.1" .
AndreyZ
Ср 26 окт 2016 09:37
Форум: Universal Data Access Components
Тема: OID as BLOB
Ответы: 1
Просмотры: 2454

Re: OID as BLOB

Пожалуйста, уточните более подробно, какую именно задачу вы имеете в виду и для какой СУБД? Если у вас есть небольшой тестовый пример, пожалуйста пришлите его нам, используя форму контакта на нашем сайте http://www.devart.com/company/contactform.html
AndreyZ
Вт 18 окт 2016 13:39
Форум: Universal Data Access Components
Тема: Скачать unidac express
Ответы: 3
Просмотры: 3694

Re: Скачать unidac express

Пожалуйста, напишите на andreyz*devart*com версию RAD Studio, для которой вам необходим UniDAC Express и мы вам ее вышлем.
AndreyZ
Вт 18 окт 2016 10:58
Форум: Universal Data Access Components
Тема: Скачать unidac express
Ответы: 3
Просмотры: 3694

Re: Скачать unidac express

Чтобы скачать предыдущие версии UniDAC, перейдите по этой ссылке: https://secure.devart.com/Default.aspx и залогиньтесь. Перейдите на страницу загрузки, внизу этой страницы вы увидите раздел Previous Versions и ссылку, по которой вы сможете скачать предыдущие версии UniDAC.
AndreyZ
Ср 07 сен 2016 11:41
Форум: SQL Server Data Access Components
Тема: Лицензия
Ответы: 1
Просмотры: 9647

Re: Лицензия

Мы не планируем изменять текущие ограничения пробной версии SDAC. 60 дней использования продукта вполне достаточно для ознакомления и тестирования.

Если вам не хватило времени на ознакомление с продуктом, то в виде исключения мы можем выслать продленную версию SDAC. Для этого вам надо обратиться в поддержку https://www.devart.com/company/contactform.html .
AndreyZ
Пт 20 май 2016 11:56
Форум: Oracle Data Access Components
Тема: Локальная сортировка полей объекта
Ответы: 6
Просмотры: 7947

Re: Локальная сортировка полей объекта

Мы получили составленный Вами пример. Для использования свойства IndexFieldNames Вы можете использовать имя поля без префикса :

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

OraQuery1.IndexFieldNames := 'num';
AndreyZ
Пт 20 май 2016 09:17
Форум: Oracle Data Access Components
Тема: Локальная сортировка полей объекта
Ответы: 6
Просмотры: 7947

Re: Локальная сортировка полей объекта

Для дальнейшего исследования, пожалуйста, пришлите по адресу maximg* devart * com скрипт на создание объектов БД, используемых в Вашем примере
AndreyZ
Чт 19 май 2016 11:31
Форум: Oracle Data Access Components
Тема: Локальная сортировка полей объекта
Ответы: 6
Просмотры: 7947

Re: Локальная сортировка полей объекта

Вы можете использовать для локальной сортировки свойство IndexFieldNames. В этом случае значением этого свойства будет название поля набора данных, сортировку по которому Вы желаете получить. В приведенном Вами примере запрос вернет не набор данных, а объект типа "LPU"."BL_BEG_INFO". Поэтому при указании в свойстве IndexFieldNames значения «e.num» Вы получаете соответствующую ошибку.