当前位置:编程学习 > C#/ASP.NET >>

VC6.0 ODBC 直接操作EXCEL的问题!

请教各位大侠,我参考了网上下载的一个通过ODBC 直接来操作EXCEL的程序,可是我希望往EXCEL里面加入一条记录的时候,总是提示“操作必须使用一个可更新的查询”,不知道是什么原因!

我是做硬件驱动的,VC也是自己才刚刚学,问题可能很初级,呵呵,大家别笑话我,代码下下面!

     ...   //这里省略了一些得到路径的代码

    // 创建进行存取的字符串
    sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s", sDriver, sFile);

     // 打开数据库(既Excel文件)
        database.Open(NULL, false, false, sDsn);

       //执行插入操作
  //sql="insertinto数据表(字段1,字段2,字段3…)values(值1,值2,值3…)" 
      sSql = "INSERT INTO Exceldemo (Name,Age,Address) VALUES ('李理解1',27,'湖南')";
      database.ExecuteSQL(sSql);

 sSql = "UPDATE Exceldemo Name='李理解1',Age=27,Address='湖南'";
     database.ExecuteSQL(sSql);

运行的时候提示“操作必须使用一个可更新的查询”,自己google了很久了,都是讲ODBC操作ACCESS的,直接讲操作EXCEL的总是那几个例子!
谢谢!
--------------------编程问答-------------------- 进来学习的,友情up --------------------编程问答-------------------- 参考:
通过ODBC直接创建Excel文件并在表中插入数据(暂定文件名:Demo.xls)   //创建并写入Excel文件   
  void   CRWExcel::WriteToExcel()   
  {   
      CDatabase   database;   
      CString   sDriver   =   "MICROSOFT   EXCEL   DRIVER   (*.XLS)";   //   Excel安装驱动   
      CString   sExcelFile   =   "c:\\demo.xls";                                 //   要建立的Excel文件   
      CString   sSql;   
            
      TRY   
      {   
          //   创建进行存取的字符串   
          sSql.Format("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",   
                                  sDriver,   sExcelFile,   sExcelFile);   
    
          //   创建数据库   (既Excel表格文件)   
          if(   database.OpenEx(sSql,CDatabase::noOdbcDialog)   )   
          {   
              //   创建表结构(姓名、年龄)   
              sSql   =   "CREATE   TABLE   demo   (Name   TEXT,Age   NUMBER)";   
              database.ExecuteSQL(sSql);   
    
              //   插入数值   
              sSql   =   "INSERT   INTO   demo   (Name,Age)   VALUES   (''徐景周'',26)";   
              database.ExecuteSQL(sSql);   
    
              sSql   =   "INSERT   INTO   demo   (Name,Age)   VALUES   (''徐志慧'',22)";   
              database.ExecuteSQL(sSql);   
    
              sSql   =   "INSERT   INTO   demo   (Name,Age)   VALUES   (''郭徽'',27)";   
              database.ExecuteSQL(sSql);   
          }               
    
          //   关闭数据库   
          database.Close();   
      }   
      CATCH_ALL(e)   
      {   
          TRACE1("Excel驱动没有安装:   %s",sDriver);   
      }   
      END_CATCH_ALL;   
  }   
--------------------编程问答-------------------- 我也想了解,谢谢LZ.
补充:.NET技术 ,  VC.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,