- 締切済み
Win32::ODBC。後ろスペースを切らずにデータを読み込みたい
ActivePerlからODBC経由でACCESSデータを取得するプログラムを作成しています。 作成中の下記プログラムですと、TABLE_AのKOUMOKU_A が ' '(半角スペース)がの場合 → ''(スペースなし) 'BBB '(後ろスペースあり)の場合 → 'BBB'(後ろスペースなし) で返ってきます。 登録されているすべての文字列を読み込みたいのですが、 何が原因で後ろスペースが切られるのかがわかりません。 ご存じのかた、ご教授願いますm(__)m 例) ============================================ use Win32::ODBC; $sql = "select KOUMOKU_A from TABLE_A;"; while ( $db->FetchRow() ){ undef %FIELDS; # データをハッシュに格納 %FIELDS=$db->DataHash(); print "'".$FIELDS{KOUMOKU_A}."'\n"; } ============================================
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 大野 悟(@ohnosatoru)
- ベストアンサー率56% (17/30)
回答No.1
Access では、末尾の半角スペースは保存時に削除されるというのが仕様です。 解決法としては、定型入力 プロパティを & と設定することで、 半角スペースも保存することができます。 アクセスファイルには半角スペースが保存されていますか? 安全に対処するのであれば保存時に半角スペースは別文字に変えておくのがいいと思います。 本質的な解決策ではないですが・・・・ 参考になりましたら。
補足
ご回答ありがとうございます。 ACCESSは勉強中なので、参考になります。 ただ今回は業者が作ったDBで、下記のcreate文で テーブルを作成すると、同じテキスト型でも差があるようです。 create table ( AA char(5), ←空白埋めあり BB text(5) ←空白埋めなし ) char型で作成されたフィールドのデータで、 後ろについている空白の読込みができなくて困っています。