Linux サーバーから php/Java を使用して、ネット経由でサードパーティの foxpro DB からデータを読み取るためのコード スニペット/ライブラリを探しています。利用可能なライブラリはありますか?php に Dbase ライブラリを使っている人もいるのではないでしょうか? それは動作しますか?
デフォルト (データベース名、ユーザー名、パスワード) 以外の Foxpro DB から必要なパラメーターは何ですか。DBF 名、接続文字列 ??
しばらく前、私は同じ解決策を研究していて、多くの行き詰まりにぶつかりました。私はphpで動作するソリューションが欲しかったのですが。
私が試したもののいくつかは
1でした。Xbaseドライバー:単純なDBFでうまく機能しましたが、DateTimeフィールドなどの新しいデータ型をサポートしていないため、このオプションは除外されました。
2. VFP ODBCドライバー:これは、古いVFPバージョンでの開発が停止し、新しい自動インクリメントフィールドをサポートしておらず、「テーブルではありません」などの奇妙なエラーが発生し続けるため、古いバージョンで作業している場合にうまく機能します。クレイジー。「VFPODBCドライバーは、自動インクリメントフィールドを持つテーブルをサポートしていません」
3.商用ツール:明らかに私には機能しない他の多くの商用オプションがあります
。4。DBFをcsvなどに変換する無料ツール(DBFからCSV)ですが、選択するだけで機能します。更新はできません。
最終的に私のために働いた最後のオプションは、 VisualFoxproOLEドライバーでした。
ここからOLEドライバをインストールできます。サンプルコードは次のようになります
$ conn = new COM( "ADODB.Connection"); $ conn-> Open('Provider = VFPOLEDB.1; Data Source = "C:\\ testDB.dbc";'); $ query = "SELECT * FROM TABLE1"; $ rs = $ conn-> Execute($ query)またはdie( "クエリのエラー:$query。"。$conn-> ErrorMsg()); while(!$ rs-> EOF){ echo "COL1:"を取得しました。$ rs-> Fields( "COL1")。":: COL2:"。$ rs-> Fields( "COL2")。"id:"。$ rs-> Fields( "ID")。"\ n"; $ rs-> MoveNext(); } $ query = "UPDATE TABLE1 set COL1 = \" AA \ "、COL2 =\"更新された値\""; $ conn-> Execute($ query);
phpのドキュメントは見つかりませんでしたが、MSDN ADO APIを参照して、特にトランザクションベースの操作を行う場合は同様のAPIを使用できます。
$ conn-> BeginTrans(); .. .. $ conn-> CommitTrans(); また $ conn-> RollbackTrans();
XBaseJはあなたが探しているものかもしれません。これはオープン ソースであり、非常に優れています。私は、顧客がまだ 15 年前の FoxPro アプリケーションを使用しているいくつかのアプリケーションで使用しています。
私が見つけた最善の方法は、FoxproデータベースへのリンクサーバーとしてMSSQLサーバーをセットアップすることです。MSSQLはfoxproと同じマシン上にあります。クエリはMSSQLサーバーに送信されます。無料のものを使用しています。私はおそらくあなたが扱っているのと同じ問題を抱えていました...ネットワークを介して現在のFoxproデータを取得しています。
データが作成された FoxPro のバージョンを教えてください。FoxPro for DOS テーブルは、データベース コンテナー (DBC) に含まれている場合、Visual FoxPro テーブルとは異なります。
DOS テーブルには互換性があるため、DBase ツールを使用してアクセスできる場合があります。
Visual FoxPro データにアクセスする例へのリンクを次に示します。FoxPro for DOS データでも動作するはずです。
リック・シューマー
同様の質問に対するこの回答を参照してください: https://stackoverflow.com/a/21945208/1456887
基本的: