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;

この2つのさまざまな順列を試してみたところ、次のようなものを使用すると次のことがわかりました。

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 クエリが間違っていると言う理由を尋ねることだと思います。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 レスにする方法があれば、それが最終目標になります。:)

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];
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 に答える