处理超过 2G 的 DBF 表

今天看到一则如何处理超过 2G 大小 dbf 表的方法,这里是他的演示录像:http://devzone.advantagedatabase.com/jeremym/fox_large/foxprolarge.html,他演示了如何将数据插入到一个超过 2GB 的 dbf 表中,以及如何从中查询需要的记录,也看到了他生成的一个近 20GB 的 dbf 表。

总结如下:

1. 这样大的表是不可能直接使用 use 命令来打开的

2. 要使用他提供的 ODBC 驱动程序,从这里下载 http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=13&Product=14&Platform=6
此驱动的好处是支持 vfp9 的所有数据类型,包括 AutoInc, Varchar, VarBinary, BLOB 等;而 MS 的 ODBC 仅支持到 vfp6sp3 版本的格式,然后就居心叵测的强迫我们使用 OleDB 这种 ADO 方式来连接 Vfp 数据表。

3. 使用视图或 SPT 方法连接并执行 查询/插入/更新/删除 操作,完整的 spt 链接串的写法(使用自由表):
   'Driver=Advantage StreamlineSQL ODBC;' ;
+ 'AdvantageLocking=OFF;' ;               && OFF 使用兼容的锁方式,ON 使用 Advantage 独特锁(专利)方式
+ 'CharSet=ANSI;' ;                             && 或者 OEM
+ 'DataDictionary=True;' ;                   && 使用数据字典目录,自由表必须指定此项目
+ 'DataDirectory=g:/erp/datas;' ;        && 自由表所在目录
+ 'DefaultType=Visual FoxPro;' ;          && 其它可选项为 Advantage / Foxpro / Clipper
+ 'Locking=Record;' ;                          && 或者 File
+ 'MaxTableCloseCache=5;' ;             && 缓冲已关闭表的缓冲区最大数量
+ 'MemoBlockSize=64;' ;                    && 备注块大小
+ 'Rows=False;' ;                               && 是否显示已删除的行(False 相当于 set delete on)
+ 'TrimTrailingSpaces=False;' ;           && 是否截断尾随的空格
+ 'ServerTypes=1;' ;                           && 1/2/4 - [Local / Remote / Internet] Server,可组合使用
+ 'Compression=Never;'                      && 数据传送时的压缩方式 - Never / Always / Internet

 

当然对于大多数情况,这样大的数据表我不会使用 vfp 的本地数据库来存放,应该会升级到 sql server 等大型数据库。唯一的用途是当别人给我一个超过 2GB 的 dbf 表时,我可以用这个方法来处理它。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值