最新の開発については、編集 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];