我的SQL是这样写的:alter table [demo$] add('姓名' TEXT)
这样为什么不对啊?请高手指点一下啊
另外顺便问下,操纵EXCEL在MFC中有没有现成的类?

解决方案 »

  1.   

    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)";
      sSql="alter table [demo$] add(学分 TEXT)";
                  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; 
    源代码是这样的,请教高手,指点错误
      

  2.   

    sSql="alter table demo add 学分 TEXT";
      

  3.   

    你好,你增加字段的语句sSql="alter table demo add 学分 TEXT";这样可以增加吗?为什么我这样写会跳出无效的操作错误啊?
      

  4.   

    请问sSql="INSERT INTO [demo$](Name,Age) VALUES('徐景周',26)";和
    sSql="INSERT INTO demo (Name,Age) VALUES('徐景周',26)";有什么不同,好像用后一种语句也是可以插入值的,只是如果用后一种语句插入值就不能用sSql="alter table demo add 学分 TEXT";增加字段了,会跳出无效的操作错误。如果用前一种语句插入值就可以用sSql="alter table demo add 学分 TEXT";增加字段。虽然也会跳出错误,但是可以字段是增加上去的。