タイトル : Re: ADOでのCSVの読込 投稿日 : 2010/10/28(Thu) 16:17 投稿者 : 魔界の仮面弁士
> ここで問題なのは、下記のようなデータがあると > PA9632が空白となってしまいます。 一般的には、CSV と同じディレクトリに schema.ini ファイルを用意して、 その列が(数値型ではなく)文字列型であることを明示することになります。 schema.ini は Text ODBC ドライバの設定画面で作成することもできますし、 メモ帳等で自作しても OK です。 この schema.ini の指定が無い場合には既定の型判定が行わていれます。 もし、この既定の動作を変更したいのであれば、レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Text\ の下に、文字列(REG_SZ)キー「ImportMixedTypes」を用意してください。 その値を "Text" にすれば、テキスト型固定で読み込まれるようになります。 ただし、このレジストリ設定は、PC 全体に対して及ぶことになります。 他のアプリに影響を与えず、自アプリの既定の動作のみを変更したい場合には、 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Text\ImportMixedTypes を、HKEY_LOCAL_MACHINE 内の任意の場所、たとえば HKEY_LOCAL_MACHINE\SOFTWARE\IMA\Project1\1.0\Text\ImportMixedTypes として用意しておき、接続文字列に "Jet OLEDB:Registry Path=SOFTWARE\IMA\Project1\1.0;" を追加するという手法もあります。 > ADOの仕様でNGで有れば これは ADO の機能では無く、JET I-ISAM の機能です。そのため、 DAO を使って読み込んだ場合にも、同様に schema.ini が必要になります。 (ちなみに DAO では、DBEngine.IniPath でレジストリキーを指定できます) |