特定のテーブルの.dbfおよび.cdxファイル拡張子の場合、おそらくVisual FoxProテーブルであり、特に「dBase」ではありません。
この場合、VFPは「appendfrom」コマンドを許可し、次のようになります...
SomeFile.txtタイプcsvから(yourTable)追加を使用します
ただし、XLS、DELIMITEDなどの他のインポートファイル形式も受け入れられます。
その場合、VFPでは、実行するコマンドを表す文字列を作成して、通常のPRGのように実行できるExecScript()コマンドも使用できます。VFPコマンドライブラリのすべてが利用できるわけではありませんが、必要なものは十分にあります。VFP OleDbプロバイダーを使用する必要があります。既に行っているように、接続を確立してください。次に、次のようなスクリプトを作成します...
String script = "[USE YourTable SHARED] +chr(13)+chr(10)+ "
+ "[APPEND FROM OtherTextSource TYPE CSV]";
次に、発行します
YourConnection.ExecuteNonQuery( "ExecScript( " + script + " ) " );
着信ソースの構造が予想されるテーブルと同じでない場合は、入力ソースと一致する順序で列を含む一時テーブル(VFPのカーソル)を作成することもできますが、列名とデータ型は同じです。それらが引き込まれるFINALテーブル、そしてそれを基礎としてfinalテーブルに追加します... VFPのカーソルはセルフクリーニングです。つまり、それらは閉じられるとすぐに消去される一時ファイルであり、接続を閉じるとそれらが解放されます。 .. そのような
String script = "[create cursor C_SomeTempArea( FinalCol1 c(20), "
+ "FinalCol7 int, AnotherCol c(5) )] +chr(13)+chr(10)+ "
+ "[APPEND FROM OtherTextSource TYPE CSV] +chr(13)+chr(10)+ "
+ "[SELECT 0] +chr(13)+chr(10)+ "
+ "[USE YourFinalTable] +chr(13)+chr(10)+ "
+ "[Append from C_SomeTempArea]"
次に、発行します
YourConnection.ExecuteNonQuery( "ExecScript( " + script + " ) " );
編集-フィードバックから
これはDBASEに基づいているため、VFP OleDb Managerをダウンロードして、上記との接続を行うことを検討しますが、最後にテーブルを使用して追加する代わりに、最後の部分のみを変更します...
削除する
+ "[USE YourFinalTable] +chr(13)+chr(10)+ "
+ "[Append from C_SomeTempArea]"
そしてintを入れます
+ "[COPY TO TEMPImport TYPE FOXPLUS]"
タイプFOXPLUSにコピーすると、DBASEがITOleDbプロバイダーを介して認識するディスク上の物理テーブルに配置されます。次に、dbaseへの接続に戻り、
insert into (YourTable) select * from TempImport
はい、新しいOleDbプロバイダーが含まれますが、汗をかくことなくそのようなインポートを実行した場合のVFPSCREAMSのパフォーマンス...