infrasys 发表于 2009-09-01 22:03

Delphi 编程去掉dbf的删除标记

数据库为dbf文件,
数据记录被逻辑删除,做上del标记。
SQL2000访问不了带有删除标记的记录。
请问我该如何操作才能访问带有删除标记的记录,
delphi中用ADO操作。

diepics 发表于 2009-09-02 13:02

显示或不显示被软删除记录

----   当DBF   数   据   库   中   的   记   录   被   软   删   除   后,   缺   省   情   况   下   在TDBGrid   等   数   据   库   构   件   中   是   看   不   见   这   些   记   录   的   .   我   们   可   以   用BDE   函   数   来   控   制   是   否   显   示DBF   数   据   库   中   被   软   删   除   的   记   录,   就   象   在Foxpro   中   利   用   语   句   Set   Delete   ON/OFF   那   样   .   
   
          要   用   到   的   函   数   名   为DbiSetProp,   函   数   原   型   为   
                function   DbiSetProp   (   hObj   :   hDBIObj;   iProp   :   Longint;   iPropValue   :   Longint):   DBIResult;   
   
----   该   函   数   用   来   设   置DBI   对   象   中   某   个   属   性   的   值.   
                其   中,hObj   为DBI   对   象   名   称,   我   们   这   里   为   数   据   表TTable   的   句   柄;   
                                    iProp   为   属   性   名   称,   我   们   用   的   是   软   删   除   属   性curSOFTDELETEON;   
                                    iPropValue   为   属   性   值,   我   们   用True   或False   表   示   是   否   使   软   删   除   的   记   录   被   显   示   .   
   
          下   面   就   是   一   个   典   型   的   例   子   .   
    同   样,   应   在uses   语   句   加   上DbiTypes,DbiProcs,DbiErrs.   
   
{显示DBF数据表中的软删除记录,DbfTable包含了数据表的信息,DeleteOn   表示是否显示,True表示显示   }   
function   SetDbfDelete(   DbfTable   :   TTable   ;   DeleteOn   :   boolean   )   :   boolean;   
var   
      errResult   :   DBIResult;   
begin   
            result   :=   false;   {操作失败时,返回False   }   
   
            {如果数据表没有打开,则操作失败   }   
            if   (   not   DbfTable.active   )   then   
                  exit;   
   
            {进行设置显示操作   }   
            errResult   :=   DbiSetProp(   hDBIObj(DbfTable.Handle),   curSOFTDELETEON,LongInt(   DeleteOn   ));   
            if   errResult   =   DBIERR_NONE   then   {没有错误,则操作成功   }   
            begin   
                            result   :=   true;   
                            DbfTable.refresh;   
            end;   
end;
页: [1]
查看完整版本: Delphi 编程去掉dbf的删除标记