dts无法识别Excel中的数字列?(续)

在Edwards的指点下,查了这个kb
http://support.microsoft.com/default.aspx/kb/194124/EN-US/

原来是这样的:如果excel的某列既有数字值又有文本值,那么DAO的OpenRecordset方法就会返回Null。
然而我按照kb上的做法,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Excel
下添加了IMEX 值并设为1,还是无法解决问题。
2005里的SSIS分为Excel Source和OLE DB Source,Excel Source想必和2000是一样的,OLE DB Source是用Microsoft Jet 4.0/3.5 OLE DB Provider连Excel,我觉得底层还是和2000一样,都是用Jet读Excel,所以SSIS里也存在这个问题。
关于Jet,OLE DB和DAO的关系,我是这么理解的。Jet是一个底层的数据引擎,用来直接操作Excel,Access等数据源的数据。OLE DB和DAO都是对底层引擎的封装。OLE DB是一套COM组件,DAO貌似是个比较老的名次,以前用delphi的时候用到过,但没怎么研究,DAO也是COM吗?
posted on 2005-12-16 17:22  David  阅读(884)  评论(1编辑  收藏  举报