• 締切済み

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"; } ============================================

みんなの回答

回答No.1

Access では、末尾の半角スペースは保存時に削除されるというのが仕様です。 解決法としては、定型入力 プロパティを & と設定することで、 半角スペースも保存することができます。 アクセスファイルには半角スペースが保存されていますか? 安全に対処するのであれば保存時に半角スペースは別文字に変えておくのがいいと思います。 本質的な解決策ではないですが・・・・ 参考になりましたら。

kumabon
質問者

補足

ご回答ありがとうございます。 ACCESSは勉強中なので、参考になります。 ただ今回は業者が作ったDBで、下記のcreate文で テーブルを作成すると、同じテキスト型でも差があるようです。 create table ( AA char(5),  ←空白埋めあり BB text(5)   ←空白埋めなし ) char型で作成されたフィールドのデータで、 後ろについている空白の読込みができなくて困っています。

関連するQ&A