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

  • 相关阅读:
    用.NET Compact Framework创建图像按钮
    .netCF中后台多线程与UI界面交互的冻结问题
    参考网站
    PPC全屏(C#)(转)
    推荐一个.net cf的开源网站
    在Windows Mobile中应用智能设备框架(Smart Device Framework)
    使用飞信框架(Remotesoft DOTNET Linker)使.net程序脱离.net框架运行
    .NET CF 能不能快一点?
    jquery中文指导:15天学会jquery]]
    .NET CF开发的源代码级优化器(C#)(Alpha)
  • 原文地址:https://www.cnblogs.com/aicro/p/1668969.html
Copyright © 2011-2022 走看看