|
|
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Леди и джентельмены! Шеф попросила создать малю-юсенькую прогу для облегчения жизни пользователям: поисковик по ФИО и выводом данных нужной записи в форму. Работы было меньше, чем на 40 мин: таблица всего одна, структурный индекс, даже БД не создавала. Все нормально, все работает. Теперь пробую делать EXE. Составляю проект, указываю файлы, делаю пометку "Запускать сразу". Прошла компиляция, прога запустилась. Все работает ОК. Закрываю, пробую запустить созданый EXE. Тут же сообщение Фокса: "Индекс не соответствует таблице. Удалите файл индекса и создайте индекс заново". Я пробовала и по-разному. Делала APP - работает. Переносила строку открытия файла из LOAD формы в main-файл Запуск.prg, создавала индекс программно - EXE срабатывает только при первом открытии сразу после компиляции. Что у меня не так? Благодарю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2005, 12:05:52 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Может быть, есть одноименные таблица и индекс есть еще и в других путях - и тот, что подключается не соответствует. Просмотри, какие пути доступны из программы (в т.ч. и в папке где стоит VFP) - возможно там такие же файлы. Или укажи в программе полные пути к файлу и индексу. Если таблица небольшая и локальная - так можно и удалять программно индекс и создавать при входе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2005, 12:20:38 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
CrispyМожет быть, есть одноименные таблица и индекс есть еще и в других путях - и тот, что подключается не соответствует. Просмотри, какие пути доступны из программы (в т.ч. и в папке где стоит VFP) - возможно там такие же файлы. Или укажи в программе полные пути к файлу и индексу. Если таблица небольшая и локальная - так можно и удалять программно индекс и создавать при входе. Я проверила поиском - файлов с таким названием больше нигде нет. Тогда переделала проект так, чтобы индекс создавался после запуска приложения, а при выходе из него уничтожался. Теперь при запуске EXE у меня выдается друго сообщение: Недопустимая длина ключа. Подсчитала сумму длины полей (все типа С), используемых в индексе - менее 100 символов. Самое интересное, что если экзешник я запускаю в самом Фоксе, то все нормально срабатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2005, 13:18:19 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Думаю, проблема именно с путями доступа. Сделай в стартовой проге сообщение: Код: plaintext Это будет путь к той таблице, с которой работает твоя прога. Возможно, при запуске из среды FoxPro используется одна таблица, а при запуске из EXE - другая. Или при вызове из EXE происходит переназначение путей доступа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2005, 14:50:56 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Кстати, для такого варианта, как вот этот твой - лучше и проще пользоваться обычным компактным индексом, создаваемым командой INDEX ON... TO MyIndex COMPACT - только не забывать, что он не открывается автоматически вместе с таблицей, и что при добавлении еще одного индекса - там уже нужно добавлять параметр: INDEX ON... TO MyIndex COMPACT ADDITIVE - чтобы иметь возможность переключаться между ними, либо же - открывать (пересоздавать) каждый индекс каждый раз заново. Правда в случае таких индексов - не открытый в данный момент индекс - не обновляется при изменении таблицы - надо его открывать и обновлять командой REINDEX (или пересоздвать - что будет удобнее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2005, 16:14:11 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Hi Лисонька! Может ненароком включила сам dbf внутрь exe-ника? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2005, 01:06:28 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Джентельмены! Я, наверно, что-то не так делаю с созданием самого проекта. Потому что я перепробовала все предложенные вами способы. Можете посмеяться надо мной, хотя лучше поучите. 1. Фокс расположен по умолчанию в Program Files, я при инсталляции ничего не меняла. 2. Папка 'с:\ Прога\' содержит: Запуск.prg; dbf-файла с индексным; файлы трех форм; файл курсора для мыши. Все. 3. В Фоксе 8: создаю новый проект - файл с:\Прога\Проект.pjx 4. В Data->Free Table делаю Add... для своего dbf-файла. 5. В Documents->Forms делаю Add... для своих трех форм. 6. В Code->Programs делаю Add для Запуск.prg и устанавливаю его Main 7. В Other -Other Files делаю Add для мышиного курсора. 8. Нажимаю Build... 9. Выбираю Win32 Executable; помечаю Run After Build 10. ОК -> Экзешник.exe 11. Происходит компиляция, прога запускается. 12. Закрываем прогу (вместе с Фоксом), теперь запускаем созданный экзешник. 13. Все. Приплыли... (((((((((((((((((((( Где делаю глупость? Балагодарю за разъяснения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 13:20:11 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
В общем сулчае, директория, где лежит файл EXE не обязательно будет директорией по умолчанию. Я бы посоветовал для начала выполнить поиск по ВСЕМУ диску на твоей машине файлов с тем же именем. Если есть то удалить или скопировать в какую-нибудь временную папочку созданную специально ради такого случая. И еще, обязательно надо запускать EXE сразу после компиляции? Может, именно эта опция глючит. Лично я так никогда не делал. Просто не знаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 13:35:51 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
ВладимирМИ еще, обязательно надо запускать EXE сразу после компиляции? Может, именно эта опция глючит. Лично я так никогда не делал. Просто не знаю... Ну, это я и так и так делала Не усянила, какой нужно файл поискать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 13:39:21 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
ЛисонькаНе усянила, какой нужно файл поискать? А тот, на который ругань идет. Т.е. надо поискать как индексный файл, так и собственно dbf-таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 14:21:30 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Просмотрела поисковиком еще раз весь диск, изменила все совпадающие с названиями файлов проекта . Вновь попыталась создать exe. Та же самая история. Может у меня дистрибутив Фокса корявый, к тому же SP 14 Мб до сих пор нет возможности скачать из-за лимита трафика - у нас оплата и-нета поминутная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 14:37:03 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Сделай тестовый проект из одного единственно файла PRG в котором примерно такой код Код: plaintext 1. 2. 3. 4. 5. 6. 7. ВСЕ. Больше ничего нет. Естесственно, замени MyTab на имя твоей таблицы. Скомпили EXE и несколько раз попробуй его запускать. Если проблем не будет, значит надо "копать" твой код. Точнее, твои формы. Что-то у тебя с ними не так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 14:54:45 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Попробовала на 7 сделать ЕХЕ. Ноль эффекта. Тогда изменила проект. Prg-файл не стала включать в него, SET MAIN пометила форму, которая должна открываться сразу после запуска проги. В ней установила DE с одним моим dbf. Сначала появляется сообщение: "Ошибка в файле ресурсов. Переписать его новым, пустым файлом?". Потом без разницы - выбираю я ДА или НЕТ - далее идет сообщение о несовпадении индекса. З.Ы. Последнее сообщение ВладимираМ еще не пробовала применить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 15:43:16 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Уважаемый Владимир! Сделала этот проверочник. Сначала выскакивает сообщение об индексе, а потом уже выходит Открыть не удалось. Копать мои формы? Но я уже открытие dbf (и со структурным индексом, и с вновь создаваемым каждый) пробовала осущестлять не через форму, а в prg-файле. Этот файл я нашла в Решениях или где-то в топиках, теперь он у меня такой: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 16:27:11 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
ЛисонькаСделала этот проверочник. Сначала выскакивает сообщение об индексе, а потом уже выходит Открыть не удалось. Копать мои формы? Нет. Будет копать файл. Раз проблемы проявляются уже просто при открытии таблицы безо всяких форм. В этом проверочном проекте из одного PRG сам файл DBF включен в проект? Если включен, то стоит ли в окне проекта слева от него значек перечеркнутого кружочка? А если этот файл исключить из проекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 16:48:50 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
ВладимирМСделай тестовый проект из одного единственно файла PRG в котором примерно такой код Код: plaintext 1. 2. 3. 4. 5. 6. 7. ВСЕ. Больше ничего нет. Естесственно, замени MyTab на имя твоей таблицы. Уважаемый ВладимирМ! Так оно вообще ерунда получается. Я попробовала просто запустить написанный Вами prg для какой-нибудь таблицы. Сообщение все равно выходит "Открыть не удалось"!! Я уже и пути перепроверила, и все на латиницу перевела, и после первой строки BROWS поставила (таблица в нем просмативается без проблем), а сообщение выходит "Открыть не удалось" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 16:48:53 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
ЛисонькаТак оно вообще ерунда получается. Я попробовала просто запустить написанный Вами prg для какой-нибудь таблицы. Сообщение все равно выходит "Открыть не удалось"!! Я уже и пути перепроверила, и все на латиницу перевела, и после первой строки BROWS поставила (таблица в нем просмативается без проблем), а сообщение выходит "Открыть не удалось" Так, ясненько. Т.е. таблица открылась, но с другим алиасом. Это значит, что таблица была открыта ДО запуска данной процедуры. Надо посмотреть, что собственно было открыто. Модифицируем программку Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 17:02:40 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Уважаемый ВаладимирМ! Эксперемент продолжается. DBF стояла в проекте с перечеркнутым кружком и удаляла я его. Ваш код запустила, но в строке Код: plaintext Затем сделал такой prg (при структурном индексе): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. Как и должно, вначале выдается сообщение "Ничего не открыто". Нажимаю ОК, выдается сообщение, что индекс не соответствует таблице. Выбираем кнопку "Продолжить". Выходит следующее: УЖЕ открыты таблицы. Алиас=Tab1 Таблица=c:\Поисковик \tab1.dbf Ни-че-го не понимаю!- как говаривал один из братанов-Колобков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 18:43:32 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
выложи проект с пустыми таблами там чего-то в классах в трех соснах ..... делов то ........... брррр............ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 18:59:02 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Лисонька Ваш код запустила, но в строке Код: plaintext Да, там перед циклом надо было просто проинициализировать переменную Код: plaintext 1. Не надо сейчас ничего лишнего писать в процедуру. Цель - понять почему "рушиться" индекс. Вот поэтапно и определяем. Сначала "голый" код открытия таблиц БЕЗ какихбы-то ни было форм. НЕ НАДО никаких поисковиков вставлять. Без них бы разобраться... Положи здесь во вложении твою табличку. Пустую. Без данных. Т.е. одну структуру. DBF+CDX (если есть, то и FPT) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 19:44:18 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
А не может ли быть так, что у табличного файла имя какое-нибудь замухрявистое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 08:45:13 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Джентельмены! Посылаю вам таблицу с индексом. Я только вот что сейчас вдруг подумала. Данная таблица создается моим скриптом из таблицы базы данных Access (скрипт запускается, разумеется, в Access'овской проге): SELECT КодКлиента AS nИдКлиент, Фамилия AS cФам ...INTO Клиенты IN "" [dBASE IV; DATABASE=C:\Поисковик;] ~ FROM (((((Клиенты LEFT JOIN Организации ON Клиенты.КодКомпании = Организации.КодОрганизации)... и т.д. Может, поэтому Фокс и ругается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 14:40:01 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
попробуй сделать, чтобы пути к проекту, ехешнику и таблице не содержали длинных имен, пробелов и русских букв вобщем как в старом ДОСе, не больше 8 латинских символов. Видал я такие чудеса у фокса, причем все работала, а потом перестало в один момент, долго бился пока не переложил прогу из c:\programm files\uchet в c:\uchet, как рукой сняло.... чудеса.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 15:21:14 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
ЛисонькаЯ только вот что сейчас вдруг подумала. Данная таблица создается моим скриптом из таблицы базы данных Access (скрипт запускается, разумеется, в Access'овской проге): SELECT КодКлиента AS nИдКлиент, Фамилия AS cФам ...INTO Клиенты IN "" [dBASE IV; DATABASE=C:\Поисковик;] ~ FROM (((((Клиенты LEFT JOIN Организации ON Клиенты.КодКомпании = Организации.КодОрганизации)... и т.д. Может, поэтому Фокс и ругается? А индекс где создаешь? Тоже в Access? Каким образом? И потом, это могло бы повлиять только в том случае, если бы происходило пересоздание таблицы между запусками EXE. А после того, как таблица была открыта и проиндексирована в FoxPro она уже никакого отношения к ACCESS не имеет. У тебя проблема может быть связана с русскими именами и текущей кодовой страницей (потерян файл CONFIG.FPW). Попробуй сделать следующее: 1) Создай текстовый файл CONFIG.FPW со строкой CODEPAGE=1251 и включи его внутрь тестового EXE. Т.е. на закладке проекта Other - Text Files должен быть этот файл и слева от него НЕ должно быть никаких иконок. Он должен стать частью EXE-файла. Поэкспериментируй с многократным запуском. Если это не поможет, то переходим к следующему пункту: 2) Переименую саму таблицу на имя английскими символами. Например, Customers.dbf Переименуй поля таблицы, чтобы все буквы были только и исключительно латинскими (без "каши" из русских и латинских букв). Создай индекс заново и снова поэкспериментируй смногократным запуском тестового EXE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 18:32:42 |
|
||
|
В EXE-файде Индекс не соответствует таблице
|
|||
|---|---|---|---|
|
#18+
Ур-ра-а! Заработало!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Стоило мне только включить Config.fpw в проект и проект начал работать. Прога запускается через ЕХЕ-шник на любой машине у пользователей. Благодарю всех, кто хотел мне помочь! Спасибо Учителю! Ну, раз уж наглеть, так наглеть на радостях до конца. Уважаемый Владимир! У меня запущено за последнии месяцы три проекта, все через EXE. Училась проектировать этот тип файлов по решениям в FoxClub'е, наверняка большая часть статей там Ваша. Так вот. По-моему, в статьях нигде твердо не прописано, что Config надо обязательно включать в проект в Text Files. Я и не включала, и проекты работают нормально. Я сейчас просто ради эксперемента изменила в них значения CODEPAGE и TITLE и запустила проги. Поменялся титул основного окна Фокса, вместо кириллицы - кракозёбры в Гриде. Значит, можно включать в проект Config, а можно и не включать, так получается? Благодарю. Елизавета Скрунскайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 20:25:17 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33330564&tid=1593163]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
462ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 856ms |

| 0 / 0 |
