• 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了。

  • 相关阅读:
    Linux练习题
    我们普通大学生和国内一流大学的学生差距到底在哪里?
    Python修复图像文件后缀名
    Linux查找/扫描局域网打印机IP
    修改分区后的 Grub rescue
    Linux Matlab mex gcc 版本
    UFLDL新版教程
    Linux之时间、地点、人物、事件、情节
    GMchess Linux下的中国象棋游戏
    Linux 终端 忽略大小写
  • 原文地址:https://www.cnblogs.com/aicro/p/1668969.html
Copyright © 2020-2023  润新知