VC+ODBC删除EXCEL一行记录出现有关问题

VC+ODBC删除EXCEL一行记录出现问题?
CDatabase database;
  CString sSql;
  CString sItem1, sItem2;
  CString sDriver;
  CString sDsn;
  CString sFile,sPath;


//获取主程序所在路径,存在sPath中
GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
  int nPos;
nPos=sPath.ReverseFind ('\\');
sPath=sPath.Left (nPos);

sFile = sPath + "\\Demo.xls"; // 将被读取的Excel文件名

  // 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls)" 
  sDriver = GetExcelDriver();
  if (sDriver.IsEmpty())
  {
  // 没有发现Excel驱动
  AfxMessageBox("没有安装Excel驱动!");
  return;
  }
   
  // 创建进行存取的字符串
  sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s", sDriver, sFile);

  TRY
  {
  // 打开数据库(既Excel文件)
  database.Open(NULL, false, false, sDsn);
   
  // 设置删除记录的语句
  // sSql = "DELETE FROM [Sheet1$] WHERE 学号=110101171";//(1)
sSql="UPDATE [Sheet1$] SET 学号=100 WHERE 学号=110101171";//(2)

database.ExecuteSQL(sSql);
  // 关闭数据库
  database.Close();

  }
  CATCH(CDBException, e)
  {
  // 数据库操作产生异常时...
  AfxMessageBox("数据库错误: " + e->m_strError);
  }
  END_CATCH;

错误分析:
  1、若用语句(1)那么会出现错误:无法从指定数据表中删除。查找原因发现是:http://topic.****.net/u/20080116/20/4eb4553c-24e2-4178-bd02-2b6adb520d98.html。因为Excel工作表中的行与真正的关系型数据库的行是有些不一样的,所以如果通过编程来访问Excel工作表的数据,那么检索,插入,更新应该是没有问题的,但要是删除的话,就会有一些限制。
  2、采用1中所附帖子的方法利UPDATE语句更新,只不过把要删除的那行所有字段值赋值为NULL。类似这样的写法:
UPDATE dept$@hsxls_link SET NAME = NULL, dept_no = NULL WHERE dept_no = 3;
当然,你要知道的是,这一行并没有真正删除掉,所以通常在select的时候要进行一定的筛选,例如:
SELECT * FROM dept$@hsxls_link WHERE dept_no IS NOT NULL;
这也就是上面的语句(2) 。。。。。但运行报错:操作必须使用一个可更新的查询


请教!!!



------解决方案--------------------
链接字符串出现问题,
楼主怎么不直接用ADO访问阿