Я пытаюсь прочитать таблицу foxpro, названную SCHEDULE.dbf. Данные считываются на PHP через соединитель данных, а затем отправляются на мою веб-страницу. Все это прекрасно работает, если я переименую Schedule.dbf. Любое имя, кроме расписания, похоже, работает. Однако, когда я запускаю его по имени «Расписание», я получаю сообщение «Ошибка SQL: [Microsoft] [ODBC dBase Driver] Индексный файл не найден. Сообщение SQL S0012 в SQLExecDirect». Моя единственная идея заключается в том, что Schedule является зарезервированным словом где-то, но я не могу найти его в любом списке. Я на полную потерю. Переименование таблицы на самом деле не является вариантом, поскольку оно является частью более крупной системы ввода и управления данными, которую я бы предпочел не изменять. Любые предложения?Проблема с FoxPro зарезервирована?
ответ
Я не могу сказать для dBASE (и я бы использовал поставщик OleDb от Microsoft специально для VFP, если это данные Foxpro, а не dBASE). В Foxpro система работает с парными (или даже тройными) файлами. Все соответствующие имена файлов необходимо переименовать, например, как
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)
Если вы пытаетесь просто переименовать .dbf, но не остальные (.FPT встречается только если столбец данных типа памятки или вообще), то он задушит открытие файла.
Дополнительно. Если таблица является частью контейнера базы данных (через VFP), и вы пытаетесь ее открыть, файл имеет дополнительную информацию заголовка, чтобы указать на базу данных, к которой она привязана. Если он не может найти его в базе данных, это также может привести к ошибке с ошибкой.
Контейнеры базы данных в VFP имеют суффиксные значения .DBC, .DCT и .DCX.
Вы поднимаете очень действительную точку, я использую dBase ODBC. Я попробую с FP OleDb! – Rich
Это исправило меня, большое спасибо! – Rich
Одна вещь, которую следует учитывать, - это зарезервированные слова, потому что они являются встроенной функцией VFP, и есть способы обойти их, чтобы сообщить VFP, что вы имели в виду это как файл, а не функцию. Например, у меня есть программа, которую я вызываю. Поэтому я не могу набрать «go()», и мне нужно набрать «do go». Если у меня есть параметры, мне нужно позвонить, тогда мне нужно ввести «do go with
Ошибка: «Файл индекса не найден». Соответствующий индексный файл .cdx отсутствует в том же каталоге, что и файл .dbf. Убедитесь, что он находится в том же каталоге, или вы можете использовать FoxPro для удаления индекса из таблицы.
Cdx присутствует и называется тем же. Почему это работает, когда я изменяю название расписания, чтобы сказать «Schedul»? Мне кажется, что cdx все равно не будет найден? – Rich
- 1. SQLSERVER/Foxpro Проблема с связанным сервером
- 2. Visual FoxPro с Mercurial?
- 3. LINQ с FoxPro?
- 4. Работа с Visual FoxPro OleDb
- 5. Разница между FoxPro и Visual FoxPro
- 6. Компилятор Foxpro
- 7. подзапросов Foxpro
- 8. C# с базой Visual FoxPro
- 9. Программирование/Databasing с Visual FoxPro
- 10. Загрузить файл (HTTP) с FoxPro
- 11. Использование таблиц Foxpro с nHibernate
- 12. Visual Foxpro 9.0
- 13. FoxPro Payeezy Gateway
- 14. LIMIT в FoxPro
- 15. Откуда я получаю FoxPro?
- 16. Вспомогательный запрос Foxpro complex
- 17. резервная копия FoxPro 'Zipped'
- 18. SET ОТНОШЕНИЕ К FOXPRO
- 19. OLEDB FOXPRO LOCK RECORD
- 20. Microsoft Azure + OleDB + FoxPro
- 21. Visual FoxPro Query
- 22. java odbc foxpro
- 23. Преобразование FoxPro в Sql
- 24. ADO OleDB Visual Foxpro
- 25. Копирование файлов FoxPro .DBF влияет на запущенное приложение FoxPro?
- 26. Visual FoxPro 9.0, написанные на FoxPro 2.6 таблицы
- 27. FoxPro Уникальный случайный номер
- 28. Visual FoxPro отчетов 2
- 29. Строка FoxPro, возвращенная с процедуры, усекается
- 30. ВСТАВИТЬ В FOXPRO
Существует ли 'schedule.cdx' в том же каталоге? Если это так, это, вероятно, испорчено. – DaveRandom
расписание.cdx есть. Не по-прежнему ли это ошибка, но когда я изменил имя Schedule to Schedul, не меняя имя cdx? – Rich