用vb操作dbf文件是不是不能删除某一条记录?也不能改变和添加字段?

解决方案 »

  1.   

    FoxPro删除一个记录分两步:先用DELETE建立一个删除标志,然后使用PACK真正地物理删除。 
        VB在操作FoxPro数据库时,其Delete方法只是类似DELETE命令建立一个删除标志,VB不支持Pack操作,所以无法从物理上删除记录。但是,在FoxPro中浏览数据时,你可以在每条记录前看见删除标志。如果你要进行物理删除,只能在FoxPro中执行PACK命令。 
    DBF文件不是一个标准的数据库文件,只相当于标准数据库文件中的一个数据表,所以为了使用DBF文件,可以把所有的DBF文件放在一个目录下,这样把目录名看成标准数据库,每一个DBF文件相当于标准数据库中的数据表。下面函数中的Directory是DBF所在的目录名。
    Function CreateDbfRecordset( 目录名, DBF文件名或Select语句 )
    Dim conn,Driver,SourceType,DBPath
    ’建立Connection 对象
    Set conn = Server.CreateObject
    (“ADODB.Connection”)
    Driver=“Driver={Microsoft Visual FoxProDriver};” SourceType = “SourceType=DBF;”
    DBPath=“SourceDB=” & Server.MapPath(“目录名”)
    ’调用Open 方法打开数据库
    conn.Open Driver & SourceType & DBPath
    Set CreateDbfRecordset = Server.CreateObject(“ADODB.Recordset”)
    ’打开DBF文件
    CreateDbfRecordset.Open “DBF文件名或Select语句”, conn, 2, 2
    End Function
      

  2.   

    也就是说也不能添加字段了,至少我的程序再添加字段这就出错,而如果是mdb文件就很好
      

  3.   

    http://www.china-askpro.com/msg32/qa36.shtml
      

  4.   

    建立Connection  对象 
    Set  conn  =  Server.CreateObject("ADODB.Connection") 
    Driver  =  "Driver={Microsoft  Visual  FoxPro  Driver};" 
    SourceType  =  "SourceType=DBF;" 
    DBPath  =  "SourceDB="  &  Server.MapPath(  "Dbf"  ) '  调用Open  方法连接数据库 
    conn.Open  Driver  &  SourceType  &  DBPath Set  rs  =  Server.CreateObject("ADODB.Recordset") 
    '  打开数据源,参数二为Connection对象 
    rs.Open  "Select  *  From  sample",  conn,  2,  2