CSDN论坛里时不时有朋友问起怎么把xls、dbf文件导入远程MySQL、Oracle等数据库,想当年我也为这个问题忙活了好一阵。如果十几、二十个文件,手工搞掂也就算了,上百个文件、二三十G,那怎么可能!免不了琢磨着搞个程序来做导入。
因为熟悉VFP,而且后面的工作还要用到VFP,所以整个程序就用VFP编了。
要点如下:
一、SQL数据库插入数据的标准办法是Insert
Insert Into table_name [( Fieldname1 [, FieldName2, ...])] Values ( eExpression1 [, eExpression2, ...])]
或者
Insert Into table_name [( Fieldname1 [, FieldName2, ...])] Select SelectClauses
前者先要表达式赋值,后要一行一行循环,费事。后者在SQL圈里打转,从SQL外导数到SQL内,行不通。
心里想着最好是能有一条语句,从SQL外文件导入到SQL内,就好象VFP的Append From。Append是VFP自己的命令,可以从数组也可以从文件一次过追加记录。另外,VFP对SQL命令Insert还有一个扩展:
Insert Into dbf_name From Arrary Arrayname
也支持从数组追加数据。
但这两种方法不是SQL标准,不适用于SQL环境,不能用来直接向MySQL、Oracle传送数据。
于是想到远程视图(View),变通一下,Append到视图。
一测试,发现远程视图要把数据先下载下来,这就不好了,目的是上传,下载干啥?而且VFP文件有2G的限制,视图里的数据肯定要放到个临时文件里,没上传就先超2G了。
后来到CSDN里请教,承蒙happyflystone、wanbolantian、十豆三等几位朋友出手相助、指点迷津,于是改用游标。
VFP通过游标适配器(CursorAdapter)打开游标&#x