2012年2月10日金曜日

ACCESS97のクエリーでは|(縦棒)が使えない!?


アクセス97で作られたデータベースでエラーが発生した。
発生箇所を調べてみると、テキストファイルを読み取ってデータベースへ追加している処理だった
そのテキストには|が含まれており、それを取り除くと問題なく処理された。

検証のためクエリーを開き次のようなSQLを書いた

INSERT INTO TEST ( DATA )
SELECT '123|456'

これを保存しようとしても
クエリー式’’123|456’’の文字列の構文エラーです。
と出てしまう
同じクエリーをAccess2000で試すとエラーがでない。どうやらJetDBの問題らしい


悩んでいても仕方が無いので、該当部分は’|’を’/’へ置き換える処理をしてからデータベースへ追加することで、とりあえず逃れた。

しかし、根本解決にはならないのでどうにかならないか、探ってみて次の方法ならうまくいくことがわかった。

INSERT INTO TEST ( DATA )
SELECT '123' & Chr$(124) & '456'

キャラクターコードとして渡すことで解決!!でも、とっても面倒(´Д`)ハァ…
JetのSQL構文解析のバグだと思うけど、どうなんだろう。

0 件のコメント:

コメントを投稿

デル株式会社

最近人気の投稿