Запрос DSN-Less к распространяющейся БД через Access 2007? - PullRequest
1 голос
/ 05 октября 2011

См. Редактировать 3 для последних событий:

Предыстория:

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

Недавно я получил базу данных, которая, по-видимому, подключается (или используется для) к Pervasive Database.До того, как запросы в базе данных Access состояли из такого формата:

SELECT * FROM (ODBC;DRIVER={Pervasive ODBC Client Interface};
ServerName=####;ServerDSN=DB;ArrayFetchOn=;ArrayBufferSize=;OpenMode=1;
DecimalSymbol=.;ClientVersion=9.50.077.002;CodePageConvert=1252;
AutoDoubleQuote=0;)distributors;

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

ODBC;DSN=DATABASE;ServerName=######.#####;ServerDSN=DATABASE;ArrayFetchOn=1;
ArrayBufferSize=8;TransportHint=TCP:SPX;ClientVersion=10.10.125.000;
CodePageConvert=1252;PvClientEncoding=CP1252;PvServerEncoding=CP1252;
AutoDoubleQuote=0;

Я попробовал различные сочетания этих двух и обнаружил, что если я использую что-то вроде этого:

SELECT * FROM (ODBC;DRIVER={Pervasive ODBC Client Interface};DBQ=@DATABASE;
ServerName=#######.#####;ArrayFetchOn=1;ArrayBufferSize=8;
TransportHint=TCP:SPX;ClientVersion=10.10.125.000;CodePageConvert=1252;
PvClientEncoding=CP1252;PvServerEncoding=CP1252;AutoDoubleQuote=0;) distributors;

Я получаю синтаксическую ошибку в функции JOIN.Я был в состоянии играть с запросом, получая различные ошибки, но это та, с которой я сталкиваюсь больше всего.Идея / конечная цель состоит в том, чтобы база данных могла запрашивать распространяющуюся базу данных без необходимости использования каких-либо клиентских DSN или настройки чего-либо подобного, если это вообще возможно.Напомним, что это машина Win7 с Access 2007 и (я думаю) Pervasive 10.

Опять же, возможно, что-то просто глупое, но если у кого-то есть какие-либо идеи или предложения, это будет с благодарностью.:)

РЕДАКТИРОВАТЬ : Я думаю, что вопрос заключается в том, чтобы спросить, почему Access говорит, что мой SQL-запрос неверен, IE.Я не вижу никаких объединений?Он выделяет первую точку с запятой после FROM (ODBC; part.

EDIT 2 : играя немного больше, я обнаружил, что этот запрос в сочетании с определенным DSN дает мне результаты:

SELECT * FROM [ODBC;DRIVER={Pervasive ODBC Client Interface}
ServerName=#####.#####;DBQ=st;ArrayFetchOn=1;ArrayBufferSize=8;
TransportHint=TCP:SPX;ClientVersion=10.10.125.000;CodePageConvert=1252;
PvClientEncoding=CP1252;PvServerEncoding=CP1252;
AutoDoubleQuote=0].[distributors];

Однако, если есть способ сделать это без DSN, это будет конечной целью.:)

EDIT 3 : я нашел ответ.В некотором роде.

Я думаю, что если это настроено, это работает.Надеюсь, это поможет кому-то еще.^^

SELECT *
FROM [ODBC;DRIVER={Pervasive 
ODBC Client Interface};
ServerDSN=st;ServerName=######.#####;ArrayFetchOn=1;
ArrayBufferSize=8;TransportHint=TCP:SPX;ClientVersion=10.10.125.000;
CodePageConvert=1252;PvClientEncoding=CP1252;
PvServerEncoding=CP1252;AutoDoubleQuote=0;].[distributors];

1 Ответ

2 голосов
/ 06 октября 2011

думаю, если это настроено, это работает. Надеюсь, это поможет кому-то еще. ^^

SELECT *
FROM [ODBC;DRIVER={Pervasive 
ODBC Client Interface};
ServerDSN=st;ServerName=######.#####;ArrayFetchOn=1;
ArrayBufferSize=8;TransportHint=TCP:SPX;ClientVersion=10.10.125.000;
CodePageConvert=1252;PvClientEncoding=CP1252;
PvServerEncoding=CP1252;AutoDoubleQuote=0;].[distributors];
...