[pgsql-jp: 25371] Re: Access2000->ODBC->Postgres7.13 接続での不具合

Sekiguchi pgsqlml @ aptech.co.jp
2002年 3月 21日 (木) 20:03:23 JST


関口・自己レスです。

みなさま色々ご教示ありがとうございます。
更新できないレコードが特定しました。
対応策は有りませんが・・・

本テーブルは全てアルファベティカルなデータと申し上げて
おりましたが、実はウムラウト付きの特殊文字が入っていました。
ヨーロッパ圏やロシア圏での名前や所属には、ウムラウト付きの
情報が必要であるために、charset=iso-8859-1の範囲の文字を
php上では受け付けており、DBにも書き込んでおりました。
(文字コード表ですと、&hC0以降の文字です。)

特殊文字が入っているレコードでは、ACCESS+ODBCではデータ更新が
出来ないようです。(特殊文字と言う表現が良いかはわかりませんが)

英語版のWindows2000&Office2000で試験してみようと思っております。
(当然、ODBCも英語版となりますが・・・)

この様なデータを、日本語環境でハンドリングされている方は
いらっしゃいますでしょうか?

----コメント引用-----
◆ODBCの日本語化版を提供して頂いております、片岡裕生さんのページに
 実数型での問題が指摘されていましたので、一部引用させていただき
 想像の域ですが、今回の障害のトリガではと考えます。

<MS-Accessで身に覚えのない「データの競合」が発生してしまいます。>

色々と原因があるのですが、特に以下の点を確認してください。

※カラムのデータ型に浮動小数点数(実数)を使っていると発生すること
があります。PostgreSQLでは浮動小数点数をサーバ・クライアント間で
正確に転送することができません(厳密には誤差が発生することがあり
ます)。
このためMS-Accessは、知らないところでデータが勝手に変わったと判断し
てしまい、この問題が起きてしまいます。残念ながら決定的な対策はあり
ません。 なお、ODBCドライバオプションの“Row Versioning”をオンに
すると解決できるかもしれません。
----------------------
実数フィールドでは有りませんが、これに似た現象ではないかと思います。
ウムラウトなどの特殊なデータが入っていると、同様な事象でDBに存在する
データとの比較が出来ず、既にデータ更新が行われているとアクセスは認識
してしまうのでは・・・?と思います(詳しくは判りませんが)

処置なしの感じもしますが・・・
良い情報など御座いましたら、ご教示いただければ幸です。

-- 
sekiguchi
mailto:pgsqlml @ aptech.co.jp




pgsql-jp メーリングリストの案内