読者です 読者をやめる 読者になる 読者になる

ADODB.RecordsetのGetStringメソッドのRowDelimiterパラメータ

ADO ASP

ソースはhttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpado260/htm/mdmthgetstringmethod(recordset)ado.asp

RowDelimiterについては、

省略可能です。行の区切りに使う区切り文字を指定します。指定しなければ、復帰改行が使用されます。

とあるが、動かしてみると「復帰改行」とはLF(0x0D)のことを指すらしい。いや、ADOがUnix上で動いているのならその動作は妥当ですが、Windowsですぜw CR+LF(0x0A 0x0D)ではないのはどうせテキストモードのfprintf()とかで書き出すから、1レコードにつき1バイトのメモリの節約になるとか考えてるわけではあるまいな??

そのままScripting.FilesystemObjectで書き出したファイルをメモ帳で開くとぜーんぶ1行につながってしまいます。(^^; 最初、秀丸で見てたから気づかなかった。(^^;;;

ディフォルト値に頼らずに明示的に行デリミタにvbCrLfを指定すれば済む話だけど、さも妥当なディフォルト値を用意しているように見せかけてトラップを仕込まんでくれ。orz

#そんな仕様がM$クオリティなのかも。

結構はまりそうなトラップだけど、みんなGetStringメソッドは使ってないのかしら?はてなダイアリー上では"ADODB.Recordset GetString"で検索すると、2004-12-08 - のんべんだらりぃ〜 for Blogしか見つからない。基本的に、GetStringメソッドデバッグ用なのかも知れん。