Semenalidery.com

IT Новости из мира ПК
4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Odbc postgresql linux

Install PostgreSQL ODBC Driver on Linux

We had an interesting little project the other day. One of our statisticians needed to be able to connect to his PostgreSQL database using ODBC. The client was a CentOS 6 box, which already had PostgreSQL 9.3 installed on it. If you need instructions on installing PostgreSQL on a CentOS, Fedora, or Redhat server, you can find instructions in this earlier article: CentOS Install Postgres. Installing PostgreSQL isn’t required for installing the PostgreSQL ODBC drivers, but you will want to begin by installing the PostgreSQL repository.

Download the Postgresql Repository

The repository for postgresql makes installing their database much easier. Download the Postgres 9.3 repository and install it using rpm using the following steps:

That will install the PostgreSQL repository which will make it easier to install the ODBC drivers.

Install PostgreSQL drivers with Yum

You should now be able to install your unixODBC rpm and PostgreSQL drivers with yum.

If your repository is for a slightly different version of PostgreSQL, then you can use yum search to find the exact rpm to install:

Configure the PostgreSQL ODBC Driver in the Odbcinst.ini File

Our next task is to edit the /etc/odbcinst.ini file to configure the PostgreSQL driver. This tells unixODBC where it can find the files specific to connecting to PostgreSQL database servers. The following is the portion of my /etc/odbcinst.ini file. Make a similar section in your file:

Test Your ODBC Driver

Now that your driver is installed, we can test that the driver is installed using this command:

The above example shows us that we have ODBC drivers installed on this machine for connecting to both MySQL and PostgreSQL.

Configure Our ODBC Connections in /etc/odbc.ini

Next, we configure the connection information specfic to our PostgreSQL database. If you configure the /etc/odbc.ini file, it will work for all users on this machine. If we configure the $HOME/.odbc.ini file, it will be configured for our specific user only. This is a security feature that allows you to allow connections for only those users that merit it.

Connect to PostgreSQL with ODBC isql Command

Now, that we have our configuration complete, we can check to see if we can connect. unixODBC will have installed the isql command that allows us to login to our database using the ODBC configuration we just completed.

Success! We were able to connect successfully. I can now query the database directly by typing my SQL at the SQL> prompt.

unixODBC – isql Command Usage

We can use isql with the following usage and options:

Other Linux ODBC Commands

Find out which files are used by unixODBC:

Other Resources on unixODBC or PostgreSQL ODBC

There are many resources on the internet that can give you further information on PostgreSQL ODBC or unixODBC. Below are several links:

Установить соединитель ODBC для PostgreSQL на сервере Ubuntu 12.04

Я пытаюсь установить драйвер ODBC для PostgreSQL на Ubuntu Server 12.04. Целью является подключение R (которое также выполняется на сервере) к базе данных. Я как-то получил акции, потому что я не нашел подробного руководства о том, как это сделать.

Итак, первое, что я сделал, это установить драйвер ODBC базы данных MySQL с помощью

, как описано здесь . Теперь я думаю, что мне нужно включить ODBC в PostgreSQL. Поэтому, если вы хотите достичь этого, вы должны сделать это, когда вручную создаете PostgreSQL. Поскольку моя база данных уже построена и все настроено, я хотел сделать это позже. PostgreSQL-Manual утверждает, что:

Для установки ODBC вам просто нужно предоставить параметр —enable-odbc скрипту configure, когда вы строите весь дистрибутив PostgreSQL. Затем библиотека будет автоматически построена и установлена ​​вместе с остальными программами. Если вы забудете эту опцию или хотите позже построить драйвер ODBC, вы можете перейти в каталог src / interfaces / odbc и сделать и установить там.

Ok. Поэтому Source не поставляется с программой, если вы устанавливаете его с помощью apt-get, поэтому я загрузил источник из . Я выполнил шаги, описанные на веб-сайте, чтобы создать каталог. Теперь внутри этого каталога src / interfaces / нет подпапки под названием odbc. Поэтому я также не могу сделать драйвер.

Теперь я сделал это в googled, но я не нашел ни одной записи, которая имела аналогичную проблему. Так может кто-нибудь здесь, пожалуйста, помогите мне? Я не эксперт по базам данных. Я только не хочу, чтобы это работало с R и PostgreSQL. Thx заранее.

1 ответ

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

Излишне говорить, что команда PostgreSQL не может предоставлять инструкции для всех методов дистрибутива и упаковки, но я хочу, чтобы документы стали более ясными для новых пользователей, чтобы более поздние части исходных документов установки не применялись, если вы не установили из источника.

В этом случае вам нужно будет установить пакет для Ubuntu, который содержит драйвер postgresql odbc для unixodbc. apt-cache search postgres odbc показывает, что пакет называется . odbc-postgresql .

Кстати, вы можете предпочесть заглянуть в PL / R , который является R, встроенным в PostgreSQL.

Я собираюсь предложить патч к руководству Pg, чтобы решить эту проблему с новой путаницей пользователя.

В этом случае ручная поправка вам не поможет, потому что вы читаете 10-летнюю версию руководства . Смотрите ссылки на версии в верхней части страницы? Да. Вы читаете руководство для версии 7.2, выпущенное в 2002-02-04. (Досадно, что Google любит возвращать старые версии, но мы не можем много обойтись без других проблем).

Установка postgresql ubuntu 16.04

Реляционные системы управления базами данных являются ключевым компонентом многих веб-сайтов и приложений. Они обеспечивают структурированный способ хранения данных и организацию доступа к информации.

Postgresql — это объектно-реляционная система управления базами данных, которая все больше и больше вытесняет MySQL и производственных серверов. Ее преимущество в множестве дополнительных функций и улучшений, таких как надежная передача данных и параллелизация без блокировок чтения. Вы можете использовать эту СУБД из различных языков программирования, а ее синтаксис запросов PL/pgSQL очень похож на MySQL от Oracle.

Читать еще:  Скачать оптимизированные игры

В этой статье мы рассмотрим как выполняется установка Postgresql Ubuntu 16.04, а также как выполнить первоначальную настройку и подготовку к работе этой системы.

Установка Postgresql в Ubuntu 16.04

Это очень популярный сервер баз данных, потому программа есть в официальных репозиториях. Но если вы хотите получить самую новую версию, то придется добавить в систему PPA. Для этого выполните команды:

sudo sh -c ‘echo «deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main» >> /etc/apt/sources.list.d/pgdg.list’
$ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O — | sudo apt-key add —

Затем обновите списки пакетов, чтобы получить самую новую доступную версию:

sudo apt-get update

Установка Postgresl Ubuntu из PPA или официальных репозиториев выглядит одинаково:

sudo apt-get install postgresql postgresql-contrib

Когда установка будет завершена, можно переходить к настройке.

Настройка Postgresql в Ubuntu

Вы знаете как установить Postgresql Ubuntu, но этого недостаточно для начала полноценной работы. Первым делом, откройте терминал и переключите его на пользователя postgres с помощью команды:

sudo su — postgres

Эта учетная запись создается во время установки программы и на данный момент вы можете получить доступ к системе баз данных только с помощью нее. По умолчанию postgress использует концепцию ролей для аутентификации и авторизации.

Это очень похоже на учетные записи Unix, но программа не различает пользователей и групп, есть только роли. Сразу после установки Postgresql пытается связать свои роли с системными учетными записями, если для имени системной учетной записи существует роль, то пользователь может войти в консоль управления и выполнять позволенные ему действия. Таким образом, после переключения на пользователя postgres вы можете войти в консоль управления:

И посмотреть информацию о соединении:

Чтобы выйти наберите:

Теперь давайте рассмотрим как создать другие роли и базы данных.

Создание роли Postgresql

Вы уже можете полноценно работать с базой данных с помощью учетной записи postgres, но давайте создадим дополнительную роль. Учетная запись postgres является администратором, поэтому имеет доступ к функциям управления. Для создания пользователя выполните:

Скрипт задаст лишь два вопроса, имя новой роли и нужно ли делать ее суперпользователем.

Создание базы данных

Точно также как имена ролей сопоставляются с системными пользователями, имя базы данных будет подбираться по имени пользователя. Например, если мы создали пользователя segiy, то по умолчанию система попытается получить доступ к базе данных segiy. Мы можем ее очень просто создать:

Дальше, чтобы подключиться к этой базе данных нам нужно войти от имени одноименного пользователя:

sudo su — sergiy

Заходим в консоль и смотрим информацию о подключении:

Все верно сработало. Мы подключились с помощью роли segiy к базе segiy. Если нужно указать другую базу данных, вы можете сделать это с помощью опции -d, например:

psql -d postgres

Все сработало верно, при условии, что все компоненты были настроены как описано выше.

Создание таблиц

Теперь, когда вы знаете как подключится к базе данных Postgresql давайте рассмотрим как выполняются основные задачи. Сначала разберем создание таблиц для хранения некоторых данных. Для создания таблицы Postgresql используется такой синтаксис:

CREATE TABLE и мя таблицы (
имя_колонки1 тип_колонки ( длина ) ограничения ,
имя_колонки2 тип_колонки ( длина ),
имя_колонки3 тип_колонки ( длина )
);

Как видите, сначала мы задаем имя таблицы, затем описываем каждый столбец. Столбец должен иметь имя, тип и размер, также можно задать ограничения для данных, которые там будут содержаться. Например:

CREATE TABLE playground (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
color varchar (25) NOT NULL,
location varchar(25) check (location in (‘north’, ‘south’, ‘west’, ‘east’, ‘northeast’, ‘southeast’, ‘southwest’, ‘northwest’)),
install_date date
);

Мы создали таблицу детской площадки для описания оборудования, которое на ней есть. Сначала идет идентификатор equip_id, который имеет тип serial, это значит что его значение будет автоматически увеличиваться, ключ primary key значит, что значения должны быть уникальны.

Следующие колонки — обычные строки, для них мы задаем длину поля, они не могут быть пустыми (NOT NULL). Следующий столбец тоже строка, но она может содержать только одно из указанных значений, последний столбец — дата создания.

Вы можете вывести все таблицы, выполнив команду:

Здесь мы видим что кроме нашей таблицы, существует еще одна переменная — playground_equip_id_seq. В ней содержится последнее значение этого поля. Если нужно вывести только таблицы, выполните:

Вставка и удаление данных

У нас есть таблица, но пока что она пуста. Мы можем добавить в нее некоторые данные. Давайте добавим пункт, описывающий качели. Для этого используются такие команды:

INSERT INTO playground (type, color, location, install_date) VALUES (‘slide’, ‘blue’, ‘south’, ‘2016-04-28’);

INSERT INTO playground (type, color, location, install_date) VALUES (‘swing’, ‘yellow’, ‘northwest’, ‘2015-08-16’);

Заметьте, что имена столбцов не обязательно заключать в кавычки, а вот имена значений — обязательно. Теперь смотрим что получилось:

SELECT * FROM playground;

Удалять записи можно по любому критерию, например, удалим записи, поле type которых имеет значение slide:

DELETE FROM playground WHERE type = ‘slide’;

И снова смотрим что получилось:

SELECT * FROM playground;

Установка phppgadmin

Не всегда удобно управлять базой данных из терминала. Иногда нужно получить доступ ко всему через веб-интерфейс. Для этого есть программа phppgadmin, но для ее работы нужен веб-сервер Apache. Для установки программы наберите:

sudo apt install phppgadmin

Когда установка будет завершена откройте файл /etc/apache2/conf-available/phppgadmin.conf и закоментируйте строку:

А вместо нее добавьте:

Это необходимо, чтобы открыть доступ к этому адресу не только с локального компьютера, но и их других устройств сети. Заметьте, что вы не сможете войти под учетной записью postgres, это сделано из соображений безопасности. Когда завершите, перезагрузите Apahce:

sudo service apache2 restart

Выводы

Теперь установка Postgresql Ubuntu 16.04 завершена и вы даже прошли краткий экскурс в синтаксис PgSQL, который очень похож на привычный нам MySQL, но имеет некоторые отличия. Если у вас остались вопросы, спрашивайте в комментариях!

Links between Oracle and PostgreSQL, or There and Back Again

Date September 24th, 2015 Author Vitaly Agapov

Please don’t wait for any revelations from this article. This is just a compilation of some notes about configuring links between Oracle Database 11.2 and PostgreSQL 9.4. Everything written below is true for the case of Linux (RHEL/CentOS 7 to be exact) and I cannot guarantee its operability on other platforms or versions.

So let’s get to the point. In the first part of the article I will show how to configure the DB link from Oracle to PostgreSQL using ODBC driver and Oracle Heterogeneous Services (HS) agent. In the second part I will show how to access Oracle databases from PostgreSQL using foreign data wrapper (oracle_fdw).

Читать еще:  Как оптимизировать пк под игры

Accessing PostgreSQL from Oracle

Step 1. Install PgSQL ODBC driver on Oracle server

If you have only default repositories configured then install this package containing PostgreSQL repo-file: http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm.

Step 2. Configure ODBC

ODBC (Open Database Connectivity) is a standard API for interacting with any DBMS independently of the operating systems or databases themselves. If you have any issues, questions or maybe you are too curious then refer to the ODBC documentation here: http://www.unixodbc.org/odbcinst.html. This documentation was really helpful during my experiments with all these databases.

Foremost we should define the driver in file /etc/odbcinst.ini. To do that add or edit such a section in this file:

Check if the driver configured:

Then we configure the ODBC data source in file /etc/odbc.ini:

All parameters including ReadOnly should not be set as “Yes” to be switched on or they will not be working. They should be set as 1.
Username and Password are optional and can be removed. We will use them only for checking the connectivity. The actual username and pasword will be set in Oracle while creating the db link. Also Debug, CommLog and Trace parameters can be turned on while testing.

If there is no writing access to /etc to edit files then the connection can defined in

/.odbc.ini file. And also the Driver parameter can contain the path to the driver library file rather than reference to driver description in odbcinst.ini.

Check the data source:

And check the ODBC connection with isql utility:

If everything is Ok then we will be able to issue SQL statements and get the appropriate responces. After this check the credentials could be removed from odbc.ini if needed.

Step 3. Configure HS agent to use ODBC link

Create init file for new HS instance – $ORACLE_HOME/hs/admin/initPSQL.ora

As for HS_LANGUAGE then this value is the only one the got it working finally. If I set it as AMERICAN_AMERICA.AL32UTF8 then nothing works. So… Let’s just keep it now.

Step 4. Configure listener

Add this to listener.ora and set the right ORACLE_HOME and SID (PSQL in my case):

Add this record to tnsnames.ora:

To check the tnsnames we can issue command “tnsping PSQL”.

Then we reload the listener:

Note that the listener should be always reloaded after changing the odbc ini-files to catch the changes.

Step 5. Create db link

Now we can create a synonym for the table:

But we should take into consideration that all identifiers in Oracle are automatically converted to uppercase and in PostgreSQL they otherwise converted to lowercase. This causes some troubles because we cannot just select:

And we are forced to use quotes:

Accessing Oracle from PostgreSQL

Step 1. Setup oracle_fdw

oracle_fdw is a third-party software. It is an extension for PostgreSQL which implements Foreign Data Wrapper for accessing Oracle databases. Its source code can be taken from
https://github.com/laurenz/oracle_fdw/releases/ and you can build and RPM using this spec-file: https://github.com/agapoff/RPM-specs/tree/master/oracle_fdw

Step 2. Configure foreign server

Run this under psql:

And seems like that is all. It is obviously much easier to access Oracle from PgSQL than vice versa. And there are no problems with uppercase and lowercase – data wrapper does all the work.

So Long, and Thanks for all the Fish.

Comments

5 комментариев на “Links between Oracle and PostgreSQL, or There and Back Again”

  1. Jan Robertson

Hi Vitaly, this is a very clear and useful manual for the project I am working on now. I still have one problem and that is how to build oracle_fdw. My build raises numerous errors and I suspect that I am missing something. My question is: do you have a rpm for this fdw that I can install on centos 6? It would be very helpful to me.

M: +31 6 51917568

I have RPM for CentOS7 and for CentOS5:

You can try to use one of them.

When connecting to Postrgresql fro Oracle, there are some table identifiers and column identifiers > 30 cahracters. Oracle does not like chars > 30, so any ideas on how to over vcome, get round?

You may try to create a synonym-like view in PgSQL:

CREATE VIEW short AS SELECT * FROM some_long_name;

And then just create a synonym in Oracle:

create synonym some_pg_table for «short»@PG_LINK;

This might work

Hi Vitaly, thanks for this useful manual… maybe you have a RPM for PostgreSQL 11 on CentOS 7? I have a lot of problems building it from the git source.

Параметры ODBC драйвера PostgreSQL

  • CommLog (C:psqlodbc.log): Логирует в файл обмен информацией с сервером. Может быть полезен при отладке.
  • MyLog (C:mylog_xxxx.log): Записывает в файл отладочную информацию. Обычно её просят прислать разработчики драйвера, если Вы сообщаете о найденном баге.
  • Disable Genetic Optimizer: Отключает генетический оптимизатор при установлении соединения с сервером. Это сделано только для удобства, чтобы не указывать соответствующий параметр в свойствах соединения вручную. Данный параметр был добавлен разработчиками драйвера, когда они обратили внимание, что сервер не в состоянии успешно оптимизировать некоторые запросы.
  • KSQO (Keyset Query Optimization): Включение этого параметра позволяет серверу безаварийно выполнять некоторые запросы. Ряд приложений, в частности MS Access, используют «keyset» запросы примерно такого вида:

SELECT . WHERE (a=1 AND b=1 AND c=1) OR (a=1 AND b=1 AND c=2) .

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

  • Recognize Unique Indexes: Этот параметр контролирует работу функции ODBC SQLStatistics() в части информации, которую та возвращает об уникальных индексах. Если он установлен, то MS Access может автоматически распознать первичный ключ. Только в этом случае присоединённые таблицы будут обновляемыми.
  • ReadOnly (default): Новые источники данных наследуют значение этого параметра для установки атрибута «ReadOnly» («Только для чтения»).
  • Use Declare/Fetch: Если опция включена (по умолчанию), драйвер автоматически создаёт и использует курсор для поддержки SELECT операторов SQL, сохраняя при этом 100 строк в кэше. Это даёт большое преимущество, особенно если Вы заинтересованы только в чтении, а не обновлении записей. Драйвер не забирает столько памяти, сколько потребовалось бы для буферизации всего результата.

    Однако, в этом случае таблица постоянно остаётся открытой, что может вызвать снижение производительности при обновлении записей. Кроме того, данный параметр является наследием стиля совсем старого драйвера podbc32. Сейчас модель распределения памяти значительно улучшена и производительность без использования курсора, как минимум, лучше, чем в старом драйвере.

    При использовании же MS Access, важно помнить, что он применяет свои собственные алгоритмы работы с результатом запроса. Поэтому, установка данной опции, вероятно, даст ожидаемый эффект не во всех случаях.
    Parse Statements: Когда эта опция включена, драйвер будет анализировать переданную ему команду SQL, чтобы идентифицировать таблицы и поля с целью получения информации о точности, допустимости NULL, о псевдонимах и т.д. Затем эти данные будут использованы в функциях драйвера SQLDescribeCol, SQLColAttributes и SQLNumResultCols.

    До версии 6.4 сервера, это был единственный способ получения сведений о точности для результата запроса.

    Если анализатор не мог справиться с полем (это могла быть функция, выражение и т.п.), он возвращался к старомодной методике выполнения команды и получения информации непосредственно из результирующего множества.

    Синтаксический анализатор достаточно «умён» и способен распознавать множество вещей, таких как псевдонимы полей и таблиц, идентификаторы в кавычках, объединения и многое другое. Он может корректно обработать поле-функцию или выражение независимо от сложности, но даже не пытается в этом случае определить тип данных и точность таких столбцов.
    Unknown Sizes: Этот параметр контролирует функции SQLDescribeCol и SQLColAttributes в случае возникновения проблем с определением точности (имеется ввиду количество знаков) полей символьных типов данных (varchar, text и unknown). Первоначально это было сделано, чтобы обойти неспособность сервера версии до 6.4 правильно возвращать ширину varchar-полей.

    • Maximum : Всегда возвращается максимальная точность (количество знаков) типа данных.
    • Dont Know : Возвращается величина «Don’t Know» и приложению позволяется самому строить дальнейшие предположения.
    • Longest : Возвращает размер самой длинной строки в любом столбце любой записи в выборке. Остерегайтесь этой опции при использовании курсоров, так как размер кэша может давать не самое лучшее представление о длине самой длинной колонки в кэше.

    В случае MS Access наиболее безопасно использовать значение Maximum .
  • Data Type Options: Влияет на отображение некоторых типов данных:

    • Text as LongVarChar : Тип данных TEXT отображается в SQLLongVarchar (в MS Access — это поле Memo), иначе — в SQLVarchar.
    • Unknowns as LongVarChar : Неизвестные типы (массивы и т.п.) отображаются в SQLLongVarChar (для MS Access в случае полей BYTEA и LO — это поле OLE объекта), иначе — в SQLVarchar
    • Bools as Char : Тип Boolean отображается в SQL_CHAR, иначе — в SQL_BIT.

    В случае MS Access, первые два флажка должны быть установлены, а третий — сброшен.
  • Cache Size: При использовании курсоров — это строковый размер кэша кортежей. Если курсоры не используются, то данный параметр определяет, под какое количество кортежей следует иметь уже выделенную память в каждый момент времени. В обоих случаях, значение по умолчанию — 100 строк.
  • Max Varchar Максимальное количество знаков для типов Varchar. Значение по умолчанию 254 соответствует строке в 255 символов, включающей завершающий нуль-символ. Если установить значение, превышающее 254, то MS Access будет воспринимать поля с таким размером как Memo и не даст использовать индексы по ним.
  • Max LongVarChar: Максимальное количество знаков для LongVarChar (в MS Access — это Memo). Значение по умолчанию 4094 соответствует 4095 символам, включая завершающий нуль-символ. Вы даже можете указать здесь значение -4, которое является стандартным для ODBC обозначением величины SQL_NO_TOTAL.
  • SysTable Prefixes: Дополнительные префиксы в именах таблиц, которые должны считаться системными. Драйвер уже воспринимает имена, начинающиеся с «pg_» как имена системных таблиц. Здесь Вы можете добавить собственные префиксы, разделенные точкой с запятой (;), такие как «dd_» который присутствует по умолчанию для таблиц словаря данных.
  • Connect Settings: Это команды, которые будут переданы серверу при успешном подключении. Для разделения команд следует использовать точку с запятой (;). Эти команды будут сопровождать каждый запрос, даже если он возвращает записи. Однако, в таком случае результат может быть потерян.
  • Row Versioning: Позволяет приложениям определять при попытке записи изменённой строки, что данные были модифицированы другим пользователем. Это также ускоряет процесс записи изменений, так как в условие WHERE не нужно включать каждый столбец. Для реализации данного механизма драйвер использует системное поле «xmin». Продукты Microsoft, кажется, успешно используют эту опцию.
  • Disallow Premature: Эта опция компенсирует определённый недостаток функциональности сервера, а именно подготовленные (prepared) запросы, которые PostgreSQL не поддерживал до версии 7.3. Когда приложение уже выполнило prepare-часть запроса, драйвер не знает, как получить информацию о полях результата.

    При использовании данной опции, драйвер открывает курсор на основе переданного запроса и выполняет команду «fetch backward», после чего закрывает курсор. Данные при этом, конечно, не возвращаются, но информация о результирующем множестве уже может быть получена обычным путём.

  • Show System Tables: Заставляет драйвер воспринимать системные таблицы как обычные. Установите этот флажок, если хотите получить доступ к системным таблицам.
  • OID Options:

    • Show Column — Включить служебное поле OID в список полей. Может быть полезно, если таблица не содержит первичного ключа или он состоит из слишком многих частей и неудобен для использования.
    • Fake Index — Эта опция позволяет «подделать» уникальный индекс по полю OID. Данная опция полезна, когда реального уникального индекса по полю OID нет, а приложение этого требует.
  • Protocol:

    • 6.2: Заставляет драйвер использовать Postgres 6.2 протокол, который имеет иную последовательность байтов, протокол и другие семантические отличия.
    • 6.3: Заставляет драйвер использовать Postgres 6.3 протокол. Он совместим и с 6.3 и с 6.4 серверами.
    • 7.X, 6.4+: Заставляет драйвер использовать протокол, совместимый с серверами версий 6.4 и старше.
  • Как видите, параметров много. Как лучше ими распорядиться, чтобы приложения MS Access могли работать с сервером PostgreSQL максимально корректно? В конференциях не утихают дебаты по этому вопросу, постоянно обнаруживаются новые и новые нюансы настройки тех или иных опций. Однако, для начала, необходимо установить следующие значения (некоторые по умолчанию уже заданы как надо):

    • Установить флаг «Disable Genetic Optimizer».
    • Установить флаг «KSQO».
    • Установить флаг «Recognize Unique Indexes».
    • Снять флаг «ReadOnly».
    • В группе «Data Type Options» установить флаги «Text as LongVarChar» и «Unknowns as LongVarChar», а также снять флаг «Bools as Char».
    • «Max Varchar» задать равным 254.
    • «Max LongVarChar» задать равным 8190.
    • В группе «Unknown Sizes» указать «Maximum».
    • В группе «Protocol» выставить версию Вашего сервера.

    Также, я всё-таки рекомендую попробовать установить флаг «Use Declare/Fetch» и не описанный здесь флаг «True is -1».

    Ссылка на основную публикацию
    Adblock
    detector