ODBC读取CSV文件时候的Schema.ini

MSDN上说明很详细:http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353(v=vs.85).aspx

举个例子来说,test.csv文件内容如下

Type,V1,V2,Qty
19809,123,124,34

2ab23,343,435,22

23456,908,987,16

我遇到的情况是,SQL SERVER数据库,用OPENDATASET访问(out of scope),结果是Type这一列中只能够读取到第一、三行,而第二行的数据被忽略掉。猜测是因为默认Type列的类型是数值型(可能根据第一行判断),所以忽略了Type值不能够类型转换的第二行。

原来可以在CSV文件同目录下面写一个Schema.ini文件,在使用ODBC Text Driver的时候,根据其中定义的Data Type Format, Character Set等设置读取CSV文件。

在test.csv文件目录下创建Schema.ini,内容如下

[test.csv]
Format=Delimited(,)
ColNameHeader=True
MaxScanRows=0
CharacterSet=ANSI
Type=F1 Char Width 100
Year=F2 Integer
Week=F3 Integer
Qty=F4 Integer

这样在读取的时候,第二行数据就不会被忽略了

posted @ 2012-11-13 17:38  YF.G  阅读(845)  评论(0编辑  收藏  举报