资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

关于记录的删除问题?在线等....

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

有如下语句:  
          form1.Query1.Close;  
          form1.Query1.sql.Clear;  
          sqlnamestr:=delete   from   dataname  
          form1.Query1.SQL.Add(sqlnamestr;  
          form1.Query1.ExecSQL;  
  不能删除记录,但是只做了删除标记,而没有删除。  
  虽然用sql语句看不见,但是文件没有变小,用vfp打开,只做了删除标记。我用的是vfp的数据库。  
   
 

网友回答:

发表者:CompassButton

//   Pack   a   Paradox   or   dBASE   table  
  //   The   table   must   be   opened   exclusively   before   calling   this   function...  
  procedure   PackTable(Table:   TTable);  
  var  
      Props:   CURProps;  
      hDb:   hDBIDb;  
      TableDesc:   CRTblDesc;  
  begin  
      //   Make   sure   the   table   is   open   exclusively   so   we   can   get   the   db   handle...  
      if   not   Table.Active   then  
          raise   EDatabaseError.Create(Table   must   be   opened   to   pack);  
      if   not   Table.Exclusive   then  
   
          raise   EDatabaseError.Create(Table   must   be   opened   exclusively   to   pack);  
   
      //   Get   the   table   properties   to   determine   table   type...  
      Check(DbiGetCursorProps(Table.Handle,   Props));  
   
      //   If   the   table   is   a   Paradox   table,   you   must   call   DbiDoRestructure...  
      if   Props.szTableType   =   szPARADOX   then   begin  
          //   Blank   out   the   structure...  
          FillChar(TableDesc,   sizeof(TableDesc),   0);  
          //   Get   the   database   handle   from   the   tables   cursor   handle...  
   
          Check(DbiGetObjFromObj(hDBIObj(Table.Handle),   objDATABASE,   hDBIObj(hDb)));  
          //   Put   the   table   name   in   the   table   descriptor...  
          StrPCopy(TableDesc.szTblName,   Table.TableName);  
          //   Put   the   table   type   in   the   table   descriptor...  
          StrPCopy(TableDesc.szTblType,   Props.szTableType);  
          //   Set   the   Pack   option   in   the   table   descriptor   to   TRUE...  
          TableDesc.bPack   :=   True;  
          //   Close   the   table   so   the   restructure   can   complete...  
          Table.Close;  
          //   Call   DbiDoRestructure...  
   
          Check(DbiDoRestructure(hDb,   1,   @TableDesc,   nil,   nil,   nil,   False));  
      end  
      else  
          //   If   the   table   is   a   dBASE   table,   simply   call   DbiPackTable...  
          if   (Props.szTableType   =   szDBASE)   then  
              Check(DbiPackTable(Table.DBHandle,   Table.Handle,   nil,   szDBASE,   True))  
          else  
              //   Pack   only   works   on   PAradox   or   dBASE;   nothing   else...  
              raise   EDatabaseError.Create(Table   must   be   either   of   Paradox   or   dBASE     +  
   
                  type   to   pack);  
   
      Table.Open;  
   
  end;

发表者:lty

我记得这种数据库还有清除一下才可以彻底删除,可是很久不用了记不得用什么命令了。和FoxBase类似。关注一下。

发表者:ghchen

用事务看看


 

 
热门推荐笔记本: IBM笔记本
相关文章:
笔记本相关:
IT技术文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved