アクセス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 件のコメント:
コメントを投稿