1

有关最新进展,请参阅编辑 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 或尽可能设置类似的东西。作为记录,这是一台带有 Access 2007 和(我认为)Pervasive 10 的 Win7 机器。

同样,可能是一些愚蠢的事情,但如果有人有任何想法或意见,将不胜感激。:)

编辑:我想问题是问为什么 Access 说我的 SQL 查询是错误的,IE 为什么当我没有看到任何连接时它会抛出一个连接错误(JOIN 函数上的语法错误)?它突出显示 FROM (ODBC; 部分之后的第一个分号。

编辑 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 减少,那将是最终目标。:)

编辑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];
4

1 回答 1

2

想我想通了,它的工作原理。希望这对其他人有帮助。^^

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];
于 2011-10-06T11:08:04.897 回答