Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
Помогите, пожайлуста. При запуске программы на выполнение пишет ошибка № 15 программа выполнила недопустимую операцию и будет закрыта. Когда команду убираю на открытие базы, проходит без ошибки дальше, но потом все равно на каком-то другом этапе снова на эту же ошибку выходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 08:41 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
Какой Fox? Ошибка №15 Not a table. Пытаешься открыть файл, который не является таблицей FoxPro. Попробуй открыть таблицу в среде Fox'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 09:04 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
Visual FoxPro 5.0. База действительно Dos. Но ведь когда в Foxе такие базы открываешь, он спрашивает какая кодировка и преобразует сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 09:10 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
Just a guess :) Старые версии VFP очень плохо реагировали, если имя диска написано кириллицей. Т.е. если вместо латинской C:\ (це) написать русскую С:\ (эс) P.S. Это отностится только к имени диска. Названия директрий можно писать любыми буквами. В 7-ке этот глюк исправили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 09:57 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
По поводу кодировки - она здесь ни причем, преобразования не происходит, только выставляется признак кодовой страницы в заголовке файла. Таблица FPD должна открываться в VFP. Таблица точно открывается в среде (проверь в VFP и в FPD). Проверь пути к таблице (правильно ли указаны). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 12:44 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
Пути все проверила - все то же. Дело в том, что база, на которой ошибка эта появляется - уже четвертая, три предыдущие открываются без проблем. К тому же она достаточно большая по сравнению с предыдущими открывающими ся базами. Возможно, что-то с памятью стало. Как это проверить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 07:54 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
Что значит большая? У меня открываются таблицы по 300 Мб и все Ok. Вопрос: таблица открывается в среде VFP? Приведи пример кода на открытие. Попробуй упаковать таблицу, сделай ReIndex. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 09:13 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
PRIVATE TT,SS,DD,CH,C,B,N,F,ii,ot,OK,S,K,KF,N1,N2,N3,n4,n5,n6,SN1,SN2,SN3,sn4,sn5,sn6,CHS declare aa[12],as[12],sss[100] public mm,CE set console off set device to print set print on set printer to MISTAKE set printer to ndfl_1 *set device to screen men2=1 select 1 use srab index on val(tabn) to sr1 select 3 use doxod index on val(tabn) to dox6 select 2 use dox_mes set relation to val(tabn) into 1 index on str(val(tabn),4)+str(mes,2) to dox5 select 5 use base_ Если закомментировать последнюю строку, то проходит дальше - иначе "Программа выполнила недопустимую операцию". База в VFP открывается и просматривается. Раньше все работало нормально. Что же случилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 09:49 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
Если таблица открывается в среде, то открой ее, пересоздай (как угодно: select * from base_, create table и append from). Создай заново индексы и попробуй после этого с ней работать. Естественно, если надо работать с ней в Fox под Dos все это надо проделать в FPD. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 09:56 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
to bdv9 >Попробуй упаковать таблицу, сделай ReIndex. Pack и reindex делаются на уже открытой таблице, человек же говорит, что таблица не открывается ! Fox for DOS здесь ни причем, VisualFox открывает DOS-ские dbf-ы без проблем (единственно, если не совпадает кодовая страница, русские буквы могут отображаться крокозябриками). Если этот файл не открывается из-под среды (VFP), то значит он не откроется и из-под FPD. 99% - что данная таблица просто поломалась, например: "сбился" счетчик числа записей в заголовке таблицы и т.п. Если из-под среды он открывается нормально, но ругается в программе, то единственное, что могу предположить : у там есть 2 файла base_.dbf , один из них - нормальный, его ты открываешь из-под среды, а второй - какой-то "левый", к нему пытается обратиться программа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 14:35 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
2 andrew_Pr Все что ты написал насчет Pack и ReIndex я знаю. А вот того, что таблица не открывается в среде Fox никто не говорил (более того даже наоборот). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 15:53 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
to bdv9 виноват, не внимательно читал, беру свои слова обратно. Кстати, был у меня с свое время похожий глюк. Правда на оборот, fox слетал, когда я открывал файл из-под среды, через OpenFileDialog, через Use открывался без проблем. И эта ошибка не была связана с каким-то конкретным файлом, а возникала от случая к случаю. Вылечилась то ли после сервиспака, то ли вообще после апгрейда компьютера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 17:10 |
|
||
|
Программа выполнила недопустимую операцию и будет закрыта
|
|||
|---|---|---|---|
|
#18+
Я как-то столкнулся с ошибкой 15, давно, правда, так я сразу вставил блок в обработчик. поскольку в тот случай таблица фактически была пустая, я просто открыл файл на низком уровне и обнулил счетчик числа записей, после чего таблица прекрасно открылась камандой USE. После этого я поставил эксперимент, что будет, если я в HEX-редакторе увеличу или уменьшу количество объявленных записей. Эксперимент удался, пробовал в среде FPD26. До сих пор проверка счетчика записей у меня стоит при каждом открытии таблиц. И еще маленькое замечание по приведенному выше тексту 1. Я давно и навсегда отошел от того, что таблицы открываются где попало. Все открытия таблиц сведены в единую функцию, которая и отвечает за их открытие. 2. Я не приветствую привязку открытых таблиц к номерам зон. Перед открытием у меня стоит SELECT 0 всегда. 3. Никогда не открываю таблицы простейшей комбинацией USE Table Обязательно указываю полное выражение USE &cTable ALIAS &cAlias INDEX &cIndex SHARED (ну или EXCLUSIVE, но указываю обязательно) cTable - Переменная, содержащая обязательно полный путь к базе, всегда именно полный, а не просто имя таблицы. cAlias - имя открываемого алиаса и cIndex - полное имя индексного файла, если он есть. Функция вызывается очень просто: cAnswer = OpenDbf (cAlias, cKey, mKey) Что это означает: Фактически везде я делаю сознательный акцент на то, что открывается не таблица, сама как таковая, а открывается алиас, при этом имя таблицы и имя алиаса редко, но может не совпадать. cAnswer - содержит результат открытия - циферку, но в символьном виде '-1' - ошибка '1' - алиас был открыт ранее '2' - таблица открыта EXCLUSIVE '3' - таблица открыта SHARED. cAlias - Имя открываемого алиаса cKey - Переменная, содержащая способ открытия, может отсутствовать. По началу это было только одно из двух Exclusive или Shared, сейчас функция поумнела, и этих слов у меня больше. mKey - дополнительный параметр, используется редко и обычно означает за какой год открыть таблицу. Пример открытия 1, простейший: If VAl ( OpenDbf (cAlias) ) < 1 RETURN '-1; Ошибка открытия '+ cAlias EndIf Собственно если таблица не открыта, то и продолжать не стоит. Пример открытия 2 - открытие нескольких таблиц: nKey = 0 DO CASE CASE VAl ( OpenDbf (cAlias1) ) < 1 .or. !USED(cAlias1) CASE VAl ( OpenDbf (cAlias2) ) < 1 .or. !USED(cAlias2) CASE VAl ( OpenDbf (cAlias3) ) < 1 .or. !USED(cAlias3) CASE .T. nKey = 1 ENDCASE IF nKey < 1 * Закрыть открытые таблицы, для чего тоже есть отдельная функция: = DEUSE(cAlias1) + DEUSE(cAlias2) + DEUSE(cAlias3) RETURN '-1; Ошибка открытия '+ cAlias1 +' '+ cAlias2 +' '+ cAlias3 ENDIF Что касается полного пути, то эта функция сама знает где его брать, и собственно говоря надо сосредотачиваться на написании самой функции, а не пытаться вспоминать, где эти пути находятся, и если не указан способ открытия, функция сама знает, что подставлять по умолчанию. Там-же подключается и собственный обработчик ошибок, проверка на наличие, и если нет, но нужен FPT-файл, создается, и если нет, но нужен индекс , создается, и если нет самой таблицы, тоже создается, если не проставлена кодовая страница, проставляется, проверка, не открыт-ли файл другой программой, соответствует-ли структура таблицы текущей реализации программы, если нет - происходит конвертация, и т.д. Собственно говоря внештатные ситуации сейчас возникают редко, но если возникают, то вплоть до того, пока я ее не отработаю, все остальные дела откладываю в сторону. Вообще-то менеджер базы банных это большой разговор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 08:49 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32308745&tid=1597649]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
170ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 275ms |
| total: | 509ms |

| 0 / 0 |
