实际程序里相对复杂一些.用一个函数动态的返回connection private function setconnection(istrPath) as adodb.connection在程序里这样用 set gcn = setconnection(strPath) 然后用gcn操作dbf文件似乎就出现了问题
我现在把c:\tmp目录的文件都删除了 再用程序操作依然可以对abc表进行操作到底是怎么回事呢
没错,对数据库的操作并非直接写磁盘存储文件,而是编辑虚拟内存。这个虚拟内存是应用利用真实内存和磁盘缓存共同建立的。只有当你 Close 记录集时,数据才会更新到目标文件中。
private function setconnection(istrPath) as adodb.connection在程序里这样用
set gcn = setconnection(strPath) 然后用gcn操作dbf文件似乎就出现了问题
再用程序操作依然可以对abc表进行操作到底是怎么回事呢
事实上我甚至讲机器重启,缓存还是没有更新.
我觉得还是连接字符串里的 driver={microsft......foxpro driver }这个驱动的问题.
昨晚我换用了oledb作为驱动(provider = vfpoledb;),就没有发生过这个情况.
今天预备查一下foxpro driver的资料看看
gcn.CommandTimeout = 10000
gcn.CursorLocation = adUseClient
gcn.open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strpath & ";" & "Extended Properties=""DBASE IV;"";"
rs.open "select * from a", gcn, 3, 3
conn.Close