dbfpath = "d:\dbf\a.dbf";
OdbcConnection oconn = new OdbcConnection();
string connStr = @"Driver={Microsoft FoxPro VFP Driver (*.dbf)};SourceType=DBF;SourceDB=" + dbfpath + ";Exclusive=Yes;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=YES";
oconn.ConnectionString = connStr;oconn.Open();
OdbcCommand cmd = new OdbcCommand();
cmd.Connection = oconn;
cmd.CommandText = "set exclusive on;pack " + dbfpath ;
cmd.ExecuteNonQuery();
oconn.Close();
我这段代码,执行到cmd.ExecuteNonQuery();之后程序就假死了...
然后结束调试,用Foxpro打开a.dbf之后发现记录都没有了,也就是说被正常的物理删除了...但不知道为什么程序就假死了....dbf文件的权限是everyone有完全控制权限
Standard Security:"Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;" Workgroup:"Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;SystemDB=C:\mydatabase.mdw;" Exclusive:"Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd="
几种ODBC的连接。。不必要的不写的好。
"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" + dbfpath + ";"其实意思是一样的。。把不必要的去掉。