用asp连接DBF数据表,常用以下语句:
dbfpath=server.MapPath("data") '源目录
set conn=Server.Createobject("adodb.connection")
vStr="Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + dbfpath + ";Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO"
conn.Open vStr
set rs=conn.execute("select * from 数据表 where idh=300")
……
rs.close
set rs=nothing
如果该表不含自动增量的字段则上述代码没有问题,否则报“NOT A TABLE”错误。到网上查,发现遇到类似问题的例子蛮多的,但都没有很好的解决办法。最后还是DBF表的本家提供了解决方案,即使用vfpoledb.dll这个驱动。连接字符串改为:
vStr="Provider=VFPOLEDB.1;Data Source="+dbfpath+";Collating Sequence=MACHINE"
使用此驱动前,如果未安装VFP,则需将vfpoledb.dll文件复制到C:\Program Files\Common Files\System\Ole DB\文件夹下,即可支持此驱动。