2012-04-25 20 views
0

SCHEDULE.dbfという名前のfoxproテーブルを読み込もうとしています。データはPHPでデータコネクタ経由で読み込まれ、その後私のWebページにパイプされます。 Schedule.dbfの名前を変更すれば、これはすばらしく機能します。スケジュール以外の名前は動作しているようです。しかし、私がそれをScheduleという名前で実行すると、「SQLエラー:[Microsoft] [ODBC dBaseドライバ]インデックスファイルが見つかりません.SQL状態S0012 SQLExecDirect」というエラーメッセージが表示されます。私の唯一のアイデアは、スケジュールはどこかの予約語ですが、私はどのリストでも見つけることができません。 私は完全に迷っています。テーブルの名前を変更することは、大したデータ入力と管理システムの一部であり、むしろ変更するのではなく、実際にはオプションではありません。 提案がありますか?FoxPro予約語の問題?

+0

'schedule.cdx'は同じディレクトリにありますか?もしそうなら、おそらく壊れているでしょう。 – DaveRandom

+0

schedule.cdxがあります。 cdxの名前を変更せずにScheduleの名前をScheduledに変更しても、それでもエラーは発生しませんか? – Rich

答えて

0

dBASEについては言えません(FoxProデータでdBASEでない場合は、特にVFP用にMicrosoftのOleDbプロバイダを使用します)。 Foxproでは、システムはペア(またはトリプル)ファイルで動作します。あなただけの.DBFではなく、残りの部分を(データ列は、タイプメモまたは一般的である場合.FPTのみ発見された)の名前を変更しようとした場合、すべての対応するファイル名が、その後、そのよう

SCHEDULE.DBF (main data) 
SCHEDULE.CDX (compound index file for all indexes for given file) 
SCHEDULE.FPT (separate file if any memo/general data columns in the file) 

として、名前を変更する必要がありますそれはファイルを開くチョークになります。

さらに、テーブルが(VFPを介して)データベースコンテナの一部である場合、そのファイルを開くと、バインド先のデータベースを指す追加のヘッダー情報がファイルにあります。それがデータベースで見つからない場合は、誤った方向のエラーが発生する可能性があります。

VFPのデータベースコンテナには、.DBC、.DCT、および.DCXという接尾辞の値があります。

+0

あなたは非常に有効なポイントを上げます。私はdBase ODBCを使用しています。 FP OleDbで試してみましょう! – Rich

+0

これは私を固定しました、ありがとう! – Rich

+0

VFPに組み込まれている関数であるため、VFPには関数ではなくファイルとしての意味があることをVFPに伝える手段があるため、考慮する必要があるのは予約語です。たとえば、私は行くプログラムを持っています。だから私は "go()"とタイプすることはできませんし、 "do go"とタイプしなければなりません。私が呼び出す必要のあるパラメータがある場合は、 "do go with "と入力する必要があります。また、リテラルファイルとしてデータベースを呼び出す場合は、予約語の場合は最後に拡張子を追加してください。 –

0

"インデックスファイルが見つかりません" - 一致する.cdxインデックスファイルが.dbfファイルと同じディレクトリに存在しません。同じディレクトリにあることを確認するか、FoxProを使用してテーブルからインデックスを削除します。

+0

cdxが存在し、同じ名前が付けられています。スケジュールの名前を変更してスケジュールを言うと、なぜそれは機能しますか? cdxはまだ見つからないようですね? – Rich

関連する問題