Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 用wxDb(ODBC)连接Excel sheet
【标  题】:用wxDb(ODBC)连接Excel sheet
【关键字】:wxDb,ODBC,Excel,sheet
【来  源】:http://www.cublog.cn/u/8057/showart.php?id=117825

用wxDb(ODBC)连接Excel sheet

Your Ad Here 碰到个活要读取Excel文件中的数据,搜了一下Excel有ODBC驱动可以使用,碰巧wxWidgets又有ODBC模块,真是可以省掉不少事情。本以为可以轻松搞定,不料一直没有能连接上,郁闷了一阵子,后来在RTFS的原则下终于调试出,原来是wxDb的一个bug,修复和提交patch后,问题解决。

bug submission:
https://sourceforge.net/tracker/?func=detail&atid=309863&aid=1494705&group_id=9863

使用范例:
wxString s = wxT("DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';DBQ=")+filename;
wxDbConnectInf dbi;
dbi.SetConnectionStr(s);
dbi.AllocHenv();
db = new wxDb(dbi.GetHenv());
db->Open(&dbi);//this line failed if not patched


在后面提取数据的时候,需要提供table名字,Excel比较特殊,不是直观的关系型数据库那样可以看到table的存在。方法是:
选定数据区域,菜单->插入->名称->定义,里面输入的名字就是table名称。

提取table的例子:
if(db->TableExists(wxT("ryzl"))){
                 UWORD n;
                 wxDbColInf *cols = db->GetColumns(wxT("ryzl"),&n);
                 if(cols == NULL){
                     wxMessageBox(wxT("no no get"));
                 }else{
                     wxMessageBox(wxString::Format(wxT("we got %d"),(int)n));
                 }
             }else{
                   wxMessageBox(wxT("table ryzl not exists"));
             }


debug命令体会用二进制编码:【上一篇】
Lucene实践(三)排序及多字段查找:【下一篇】
【相关文章】
  • excel 模板
  • 如何用Java得到Excel中Formula的值
  • EXCEL技巧集锦
  • 利用SQL*Loader将 Excel 数据导出到 Oracle 数据库中
  • OleContainer操作Excel以二进制方式读写数据库
  • 搜索Excel中的内容
  • [转载]Jakata Poi HSSF:纯java的Excel解决方案
  • [转载]jsp页面显示数据导出到excel表中
  • excel password
  • 导出SQLServer数据到Excel中
  • 【随机文章】
  • Correct device path after disk replacement
  • 在linux7.1上安装jdk+tomcat+oracle9i笔记
  • 如何用PS改变物体质感
  • HP惠普服务器配件全线产品型号参数
  • C#中Finalize方法的问题
  • Apache+Servlet+Jsp环境设置(中)
  • sql发邮件
  • 希网预防垃圾邮件的策略
  • 如何将 Java程序最小化的托盘区
  • 试用Web-Harvest
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.