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

alexer
Пт 16 дек 2016 19:34
Форум: dbExpress драйверы
Тема: Не работает параметр coFetchAll=false для драйвера dbxpgs38.exe
Ответы: 6
Просмотры: 21458

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

У меня база весит 10 гигов, выслать не смогу, могу предоставить доступ.

Но я кажется понял в чем ошибка. Я задублировал процедуру в схеме PUBLIC и процедура нашлась.

В режиме coFetchAll=false драйвер видит только схему PUBLIC и не видит никаких других схем, как бы их не задавать (в опциях драйвера или в префиксе таблицы или процедуры).

Драйвер игнорирует все команды "set search_path ..." и "set schema ..." и ищет объекты в схеме Public.

Попробуйте написать в схеме XXX процедуру YYY и ZZZ, так чтобы YYY вызывала ZZZ.

ExecProc('YYY') выдаст ошибку:
SQL error: function ZZZ not found

PS

У меня в базе вообще нет схемы PUBLIC. Попробуете прогнать тесты драйвера без схемы Public.

В режиме coFetchAll=TRUE драйвер работает нормально, т.е. не надеится на схему Public, которая где -то в нем зашита!!!
alexer
Чт 15 дек 2016 16:48
Форум: dbExpress драйверы
Тема: Выдача ошибок в драйвере PostgreSQL
Ответы: 1
Просмотры: 16207

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

Работаю в PostgreSQL 9.4 (база в кодировке UNICODE) на Delphi 7. Вопроса 2.

1. При возникновении ошибок драйвер выдает только первую строку от сообщение от сервера:

SQL Server error: operator does not exist: integer = character varying

однако SQL Manager for PostgreSQL выдает более понятную диагностику

SQL Server error: operator does not exist: integer = character varying
LINE 1: select INV_PORT FROM data.D_B_TDBS where DOC=varchar '124669...
^
Можно не обрезать сообщение от сервера?

2. При выдачи на сервере исключения на русском языке, например:
RAISE EXCEPTION '%', 'Попытка продублировать код ISO'

Драйвер выдает абракадабру
SQL Server error: 'Ïîïûòêà ïðîäóáëèðîâàòü êîä ISO'

SQL Manager for PostgreSQL выдает правильно:
SQL Server error: Попытка продублировать код ISO

Если на сервере исключение выдать с перекодировкой
RAISE EXCEPTION '%', convert_from(Message::bytea, 'WIN1251')

то тогда все наоборот, драйвер выдает правильно, а SQL Manager for PostgreSQL - нет.

Как настроить драйвер на выдачу сообщений в правильной кодировке?
alexer
Пт 09 дек 2016 15:46
Форум: dbExpress драйверы
Тема: Не работает параметр coFetchAll=false для драйвера dbxpgs38.exe
Ответы: 6
Просмотры: 21458

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

Работаю в PostgreSQL 9.4. Для того, чтобы не подставлять схему в каждый запрос даю в connection команду q.sql.Add('set schema ''data'' '); q.ExecSql. Все прекрасно работает, но по умолчанию для драйвера почему-то установлена опция coFetchAll=true (читать все записи курсора на клиента)

Если установbть coFetchAll=false, то любая таблица, заданная без префикса схемы, перестает находится.

В поддержку написал письмо и выслал пример на Delphi-7. Ответа нет более 2-х недель.

Придется наверное самому написать анализатор SQL и подставлять схему в нужные места запросов, т.к. работать в режиме coFetchAll=true слишком медленно.

Кстати почему такое значение опции coFetchAll по умолчанию, например для ORACLE драйвера правила умолчания coFetchAll=false???
alexer
Пн 21 ноя 2016 15:33
Форум: dbExpress драйверы
Тема: Не работает параметр coFetchAll=false для драйвера dbxpgs38.exe
Ответы: 6
Просмотры: 21458

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

Попытка установить параметр coFetchAll=false приводит к ошибке "таблица не найдена" (dbх для Delphi-7).

Если одновременно установить coCursorWithHold=true, то становится лучше (таблицы находятся), но половина запросов заканчивается сообщением:

SQL Server Error: Assertion failure (D:\Projects\Delphi\Dac\PostgreSql\Source\PgSQLProtocol.pas, line 1342)

Работать в режиме coFetchAll=true, не есть целесообразно.

Подскажите, что делать?
alexer
Пт 29 май 2015 12:27
Форум: dbExpress драйверы
Тема: dbExpress драйвер для DB2
Ответы: 1
Просмотры: 15862

dbExpress драйвер для DB2

Есть ли возможность заказать у вас разработку dbExpress драйвера для СУБД DB2 ISeries (V7R1, V7R2).
Каковы сроки и стоимость такой разработки.