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数据库,用OPE
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
这样在读取的时候,第二行数据就不会被忽略了
本文原创发布php中文网,转载请注明出处,感谢您的尊重!