goo blog サービス終了のお知らせ 

何となく歩いた結果

デジカメを持って色々な場所に出没し撮影した写真を公開。最近は東京の夜と里山をメインテーマに撮影中。システム開発の話題も。

MySQLとAccessのODBC接続 相性が悪い文字

2007-03-22 21:23:24 | ソフトにまつわる話
開発中の備忘録その2。

MySQLとAccessをODBC接続した場合に相性が悪い文字がある事がわかった。

― ソ Ы 噂 浬 欺 圭 構 蚕 十 申 曾 箪 貼 能 表 暴 予 禄 兔
喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀 藹 觸 軆 鐔 饅 鷭

これらの文字がフィールドの最後にあるとODBCエラーが発生しレコード保存できない。
2005年からODBCのバグが指摘されている。

とりあえず文字の最後に全角スペースを入力すれば回避できるとの事。

レコード保存前にチェックするロジックを入れるしかないという事か。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Linux MySQL と Access の ODBC接続 文字化け回避

2007-03-22 20:25:48 | ソフトにまつわる話
開発最中の備忘録として書いておく。

LinuxにインストールしたMySQL(MySQL - 5.0.27-Max)
文字セット: UTF-8 Unicode (utf8)。

このデータベースにWindowsからODBC経由で接続してAccess2000を使ってレコード追加や修正などを行いたいと思う。

ODBCは MySQL ODBC 3.51 Driver。

ODBCでの設定時エラーが表示されて接続できない。
これは、他のマシンから接続可能なユーザ登録がされていないからだ。
有効なユーザをMySQLのコマンドを使って追加する。

grant all privileges on *.* to ユーザ名@"%" identified by 'パスワード' with grant option;

今回はイントラネットでしかもテスト環境なのでアバウトにユーザを作成。

ODBC設定後、Access2000からテーブルをアタッチしても文字化けが発生。レコードの追加などもできない。

ODBCドライバのConnect OptionsタブのInitial Statementに

SET NAMES SJIS

の記述を書く。

どういうわけか設定を保存する時にWindowsのエラーで止まったがもう一度見てみたら正しく保存されていた。

再度試してみると無事に文字バケせずに接続可能になった。
3時間悩んだ…

Linuxについては「何となく歩いた結果 本館」にもまとめてあります(ブログリンク集ですが…)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする