zoukankan      html  css  js  c++  java
  • ODBC导出Excel遇到的表名错误问题解决(excel 2007)

    之前在为公司里做数据导出的时候,遇到一个很监介的错误。我一开始以为Excel下面的Sheet1,Sheet2就是相应的表明,所以只是用Selcet * from Sheet1之类的语句。但是在C++的异常中却抛出了一个表名不存在的错误。

    后来查了一下,貌似是因为用ODBC的方法必须得每次都重新定义表,而表名不是Sheet1.

    转载:vc使用ODBC读excel找不到表的解决办法
        Excel工作簿要通过ODBC进行数据库操作,确实需要一点与其他数据库(例如:ACCESS,FORPRO)不同的设置. 
        因为表名不等于SHEET1,也不等于SHEET2,SHEET3。 
        要访问表 , 必须先定义一个表。 
        方法如下: 
        运行Microsoft Excel 2003, 打开要操作的工作簿, 左键拖拽,选取要定义成为表的区域, 从菜单中选择'插入 '->'名称'->'定义' 
         '定义名称'对话框出现后,键入表的名字, 
         例如:STUDENTS,存盘退出。 
        这样,你就可以在VC中,使用象SELECT * FROM STUDENTS 这样的SQL语句了。试试看
        如果不行,重复上面操作,看看定义表加进入没有

    但是现在2003已经不常用了,研究了一下2007,把新的位置告诉大家。

    运行Microsoft Excel 2007, 打开要操作的工作簿, 左键拖拽,选取要定义成为表的区域, 从菜单中选择'Formulas '->'Define Names 
         '定义名称'对话框出现后,键入表的名字,主要scope一定要选为整个workbook,并且注意一下refer to 看看有没有问题。

    另外,需要指出的是,从试验结果证明下来,如果excel的一个非头几行(试验下来是前3)的工作格中没有出现超长的数据(一般是多于两个整页面宽度),而在后面的工作咯中却有。那么GetFieldValue有可能会抛出SQL_NO_TOTAL的异常。而这个异常极难处理。我的解决办法是,故意在第一行的长单元格中补充数据,使其变得非常长,这样以后只要修改这一个就ok了。

  • 相关阅读:
    jquery获取网页在浏览器中可见宽度与高度
    mysql子查询
    ffmpeg 转码并截图的命令分析
    mysql find_in_set 与 in 的用法与区别,mysql范围搜索,mysql范围查询
    CSS一行显示,显示不下的用省略号显示
    js如何通过变量调用函数,函数名在变量里面
    jq自定义下拉菜单,在点击非当前下拉菜单区域时,关闭下拉菜单(点击事件的对象不是目标元素本身)
    解决JS浮点数(小数)计算加减乘除的BUG
    php裁剪图片
    百度蜘蛛ip段代表的不同含义
  • 原文地址:https://www.cnblogs.com/aicro/p/1668969.html
Copyright © 2011-2022 走看看