我想在程序里面清除一个.dbf文件的资料
我试了用delete,pack一些方法都不能达到效果
文件的大小没有改变。
急呀,我以前没用过foxpro
在线等答案!!

解决方案 »

  1.   

    你建立一個 連接到 foxpro的數據源,然後,用 oledbcommand來操作,和操作 access一樣的。
      

  2.   

    楼上正解 不过要有vfp1.0的provider的支持 对dbf的操作用oledbcommand 都是通用的sql语句
      

  3.   

    谢谢谢谢!
    我是用odbc连接,读取select是没有问题。
    但是delete不起作用的,我查过一些资料,foxpro用delete只是有个字段标记它删掉了,
    但物理上并没有删除。
    在foxpro里是有pack和zap命令,但不知是在.net下不能用还是我用错了。
      

  4.   

    转自 cxmcxm(小陈)
    应该装oledb for vfp,可支持vfp的大部分命令 包括pack
    oledb for odbc不支持pack具体操作
    建一ado连接,选oledb for vfp,如果是数据库,连接到数据库,如果是自由表,连接到自由表所在目录,然后建一ado command或用ado连接的execute方法,执行以下命令
    pack vfp表名 
    即可将标记的记录删除。我在vb中试过没问题。
    注意pack命令要求独占打开表,如果有其它程序或其它机器正在使用表,则上述操作肯定失败。
    参考文章:
    如何pack表通过 Visual FoxPro ODBC 驱动程序 (VFPODBC.dll)
    http://support.microsoft.com/kb/q234756/
      

  5.   

    oledb for vfp 下载地址
    http://www.microsoft.com/downloads/details.aspx?FamilyId=E1A87D8F-2D58-491F-A0FA-95A3289C5FD4&displaylang=enFile Name: vfpoledb.exe 
    Version: 1.1 
    Date Published: 1/5/2006 
    Language: English 
    Download Size: 2.5 MB
      

  6.   

    注意文件的权限,NTFS格式的还要注意安全选项中的读取权限是否是针对EveryOne