CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  VFP

dbf只能修改。插入,不能删除

楼主pwife(大大)2006-03-03 20:09:51 在 其他数据库开发 / VFP 提问

一个dbf数据库,用C#连接,能insert、update,但不能delete,请问这是什么原因? 问题点数:0、回复次数:2Top

1 楼apple_8180(十豆三)回复于 2006-03-04 08:50:49 得分 0

应该可以DELETE,只是不能彻底删除。  
   
   
  请参考:  
  VB对FOXPRO数据库操作时能否Pack  
   
  *----------------------------------  
  出处:http://www.china-askpro.com/msg1/qa52.shtml  
   
  Q:我用VB对FOXPRO数据库操作,遇到这样一个问题:   只能对记录进行DEL,也就是在该条记录上打一个删除标记,但不能象在数据库中那样,用“PACK”把这条记录真正删除。当记录数较多时,   用DBGRID等控件做的程序都会出错。该怎样办呢?    
   
  A:VB中无法对DBF文件进行PACK,也就是说无法真正地从物理上删除记录。只能把ISAM的设置   Deleted设为On,这样相当于FoxPro的SET   DELETED   ON,也就是在VB中不显示有删除标记的记录,但是在Fox中仍然可以看到。当安装   Microsoft   FoxPro   数据库的驱动程序时,设置程序会在引擎的   Windows   注册表和   ISAM格式子键写入一些缺省值。Microsoft   FoxPro   初始化设置在HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\3.5\Engines\Xbase   文件夹包含用来访问外部   FoxPro   工作表的   Msxbse35.dll   驱动程序的初始化设置。其中的Deleted用以决定   Microsoft   Jet   数据库引擎如何处理已标记为删除的记录的二进制指示器。01   值对应   Microsoft   FoxPro   的   SET   DELETED   ON   命令,且指示   Microsoft   Jet   不再检索或定位已删除的记录。00   值对应   Microsoft   FoxPro   的   SET   DELETED   OFF   命令,且指示   Microsoft   Jet   对待一个删除的记录像对待任何其它的记录一样。缺省值是   00。在   Windows   95   和   Windows   NT   4.0   中的值是二进制类型,而在   Windows   NT   3.51   中是   REG_BINARY   类型。    
          如果要真的Pack,可以将保留的记录拷贝到一个临时数据库中,再覆盖原来的数据库。  
  A:我倒有一个没办法中的方法(不过此方法只适合你的DBF数据库是你个人使用,而非网上多用户使用):    
          将以下代码用V_FoxPro编译成可执行文件(PACK.EXE)    
          PARA   FILENAME    
            IF   .NOT.   FILE(FILENAME)   THEN    
            MESSAGEBOX   ("指定的数据库   '   "+FILENAME   +"   '   没有找到!")    
            RETURN    
            ENDIF    
             
            SET   EXCLUSIVE   ON    
            USE   (FILENAME)    
            PACK    
            USE    
          **   CLOSE   ALL    
          RETURN    
          当每次操作完DBF数据库后关闭连接(db.clos)    
          然后调用以上程序进行切底删除,方法如下:    
             
            ...    
            db.clos    
            shell   "path\pack.exe   paht\数据库名"    
             
          或者在Form_Unload事件执行(建议)    
          (我编写的一个管理系统就经常用此方法的,简单方便)    
  Top

2 楼pwife(大大)回复于 2006-03-04 10:37:57 得分 0

谢谢,换成用C#来操作,可以用pack   tablename来物理删除了。  
   
  只是,没分给了:(Top

相关问题

  • 用ADO。NET如何更新数据(插入、删除、修改)?
  • 关于BLOB的插入,修改和删除
  • 新手问一个关于sql插入、修改、删除的问题
  • Remoting(TCP)如何传递Datatable中修改(更新、删除、插入)了的数据?
  • 如何用VC++的ADO实现向SQLSERVR中存取图片,并进行操作(插入,删除,修改)
  • 如何在Web开发中对数据库进行插入,修改,更新,删除和显示操作?
  • 通过 Button在 Grid中插入 ,修改,删除!怎么实现呀(在线等,分不够再加)!!
  • 求c#的数据库编程 比如 查询 插入 修改 删除 操作代码或源程序,谢谢
  • 怎么防止用户在DbGrid中插入、删除数据,而只能修改数据。
  • 如何用VB.net访问ACESS数据库并对表进行读取,插入,修改,删除。

关键词

  • c#
  • 数据库
  • foxpro
  • vb
  • microsoft
  • 删除
  • 记录
  • dbf
  • pack
  • 程序

得分解答快速导航

  • 帖主:pwife

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo