ODBC访问Excel表如何确认列的数据类型

现象:通过ODBC往数据库中导入Excel表,或者是在程序中使用ODBC访问Excel表时,可能某些行会产生数据类型不符的错误。

原因:Microsoft Excel ODBC 驱动程序默认扫描前8行的数据来确定每列中的数据类型。Microsoft Excel ODBC 驱动程序使用以下注册表项中TypeGuessRows键值来确定扫描多少行确定数据类型:

  •  Excel 97
    HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/3.5/Engines/Excel 
  •  Excel 2000 及更高版本
    HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Excel

解决方法:

  1. 更改TypeGuessRows键值,该值取值范围0-16,为0时表示扫描所有行数据。
  2. 手动将Excel表第一行数据改为字符型,例如为数值16时,改为a16,以使ODBC使用字符类型来访问所有数据。

参考链接:http://support.microsoft.com/kb/189897

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当使用pb(即PowerBuilder)读取Excel文件时,出现ODBC 37000错误,这是因为在ODBC连接字符串或SQL语句中存在问题导致的。 一种可能的情况是ODBC连接字符串的配置有误。在PowerBuilder中,我们可以使用ODBC连接字符串来访问不同类型的数据源,如Excel。通常,ODBC连接字符串需要指定Excel文件的路径、驱动程序和其他连接参数。如果其中有任何错误,如路径错误、驱动程序错误或其他参数错误,都会导致无法建立有效的连接,进而引发ODBC 37000错误。 另一种可能的情况是在执行SQL语句时存在问题。在PowerBuilder中,我们可以使用SQL语句来查询Excel文件中的数据。如果SQL语句语法有误,如名或名错误、查询条件错误或语句结构错误,都会导致执行失败,进而引发ODB 37000错误。 要解决这个错误,我们可以采取以下步骤: 1. 确认ODBC连接字符串的正确性。检查Excel文件的路径是否正确,确认使用的驱动程序是否适用于Excel文件,并检查其他连接参数是否正确配置。 2. 检查SQL语句的正确性。确保查询的名和名正确,查询条件合理,并检查语句的语法是否符合PowerBuilder的要求。 3. 使用PowerBuilder提供的调试工具来逐步调试代码,定位具体的错误位置,并逐步排查错误的原因。 总之,当使用pb读取Excel文件时遇到ODBC 37000错误,我们需要仔细检查ODBC连接字符串和SQL语句的正确性,以及进行逐步调试,才能找到并解决问题。 ### 回答2: PB是指PowerBuilder,而37000是ODBC驱动程序返回的特定错误代码。 当使用PowerBuilder的ODBC功能读取Excel文件时,可能会遇到"ODBC 37000"错误。这个错误通常示在执行SQL查询时发生了语法错误。 造成这个错误的原因可能有以下几种情况: 1. SQL查询语句中存在错误的语法或拼写错误。在使用ODBC读取Excel文件时,查询语句必须遵循正确的SQL语法。请检查查询语句中的每一个组件,确保语法正确无误。 2. Excel文件的名或名不正确。要读取Excel文件,必须提供正确的名和名。在编写查询语句时,确保名和名与Excel文件中的实际名称一致。 3. Excel文件可能被其他程序锁定。如果Excel文件正在被其他程序占用或锁定,PowerBuilder将无法读取文件中的数据。请确保Excel文件没有被其他程序打开或锁定。 4. ODBC驱动程序的版本不兼容。由于PowerBuilder是一个比较旧的开发工具,某些最新版本的ODBC驱动程序可能不与其兼容。请确保使用与PowerBuilder版本兼容的ODBC驱动程序。 解决这个问题的方法包括: 1. 仔细检查语法错误并修复查询语句中的错误。 2. 确认Excel文件中的名和名与查询语句中的名称一致。 3. 确保Excel文件没有被其他程序打开或锁定。 4. 尝试使用与PowerBuilder版本兼容的ODBC驱动程序。如果当前的驱动程序不起作用,尝试回滚到一个早期版本或升级到更新的PowerBuilder版本。 总之,"ODBC 37000"错误示在PowerBuilder中使用ODBC读取Excel文件时发生了语法错误。通过修复查询语句的语法错误、确认名和名的正确性,以及保证Excel文件没有被其他程序锁定,可以解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值