Страница 1 из 1

Создание таблицы: ошибки

Добавлено: 15 июн 2011, 16:04
zna
Здравствуйте, господа.
Возникла необходимость в хранении дополнительной информации к маршрутным картам (МК), т.к. имеющийся механизм МК неудобен. В некоторых случаях таблица создаётся нормально:

Код: Выделить всё

create table ParDetales "Детализация параметров МК"
   with replace
(
  NRec     : comp                           "Номер записи",
  cKatMc   : ref(KatMC)                     "Изделие",
  cMarshSp : ref(Marsh_Sp)                  "Техн.операция",
  Code     : string[10]                       "Код",
  Name     : string[50]                       "Наименование",
  cNormas1 : ref(Normas)                      "Норма1",
   cParVol1 : ref(ParamVol)                    "сПараметр1",
    Status   : string[1]                        "Статус",
  DateBeg  : date                             "Дата начала",
  DateEnd  : date                             "Дата окончания",
  cComp1   : comp                           "Объект1",
  cComp2   : comp                           "Объект2",
  cComp3   : comp                           "Объект3",
  cComp4   : comp                           "Объект4",
  cComp5   : comp                           "Объект5",
  cComp6   : comp                           "Объект6",
  Data1    : word                           "Целое1",
  Data2    : word                           "Целое2",
  Data3    : word                           "Целое3",
  Data4    : word                           "Целое4",
  Data5    : word                           "Целое5",
  Data6    : word                           "Целое6",
  Param1   : double                           "Параметр1",
  Param2   : double                           "Параметр2",
  Param3   : double                           "Параметр3",
  Param4   : double                           "Параметр4",
  Param5   : double                           "Параметр5",
  Param6   : double                           "Параметр6",
  Stroka1  : string[30]                       "Строка1",
  Stroka2  : string[30]                       "Строка2",
  Stroka3  : string[30]                       "Строка3",
  Stroka4  : string[30]                       "Строка4",
  Stroka5  : string[30]                       "Строка5",
  Stroka6  : string[30]                       "Строка6",
  Comment  : lVar                             "Описание"
)
with index
(
  Indx0         =  NRec(unique, surrogate, journal),
  Indx1         =  cKatMc + cMarshSp
);
но в других выдаются ошибки при создании таблицы, сначала первая, затем вторая:
Изображение
Что не так? Документацию читал, но в ней нет описания ошибок. Пробовал добавлять разные опции create table, безрезультатно.
В дальнейшем потребуется доработка структуры таблицы: добавление полей, индексов при наличии записей в ней. Второй вопрос: будут ли проблемы использования alter table?

Re: Создание таблицы: ошибки

Добавлено: 15 июн 2011, 16:36
n0where
Докомпиляция словоря?

Re: Создание таблицы: ошибки

Добавлено: 15 июн 2011, 16:50
zna
Нет, докомпиляцию не делал. Как я понял, это не обязательно, судя по мнению Фёдора Терсина (в какой-то теме он это описал). В некоторых случаях create table нормально создаёт таблицу, в некоторых- нет.

Re: Создание таблицы: ошибки

Добавлено: 15 июн 2011, 16:55
zna
А, вот, нашёл его тему:
forum.galaktika.ru/viewtopic.php?p=3045#p3045

Re: Создание таблицы: ошибки

Добавлено: 15 июн 2011, 17:30
edward_K
Ну кандидата 2 - ref и lVar - попробуйте для начала без ref - замените на comp.
Выигрыша вам это не даст, работу штатного функционала запорет и т.д. Лучше навесить программный тригер для контроля целостности с выдачей сообщений.

Re: Создание таблицы: ошибки

Добавлено: 16 июн 2011, 09:24
zna
Убрал ref и iVar- не помогло, ошибка 311. Интересно то, что первая попытка создать таблицу была успешной:
Изображение
Какие ещё соображения?

Re: Создание таблицы: ошибки

Добавлено: 16 июн 2011, 10:36
edward_K
хм. А удалить не забыли? В x$files она часом есть? Если есть, а физически ее уже нет, то удалять наверное через sql. Штатно - через консоль управления.
еще надо при создании таблицы указывать
With Table_CODE = 32755 (какой нибудь то уникальный номер после 32000)
можно еще
With TableOptions header, journal
или в списке полей #include firstrec.fld (вместо nrec)
А еще не указана компонентная принадлежность - перед именем таблы нужно типа d_user. Ну еще можно
Using "DETAILS.dat"
- для совместимости с первасивом - не все версии переваривают имена длиннее 8 символов.

Re: Создание таблицы: ошибки

Добавлено: 16 июн 2011, 11:38
zna
Нет, удалять первую таблицу PARDETALESS (с кодом 31970) я не стал, а в последующих попытках в скрипте (в первом посте) просто переименовал таблицу, обратите внимание, она называется PARDETALES.
edward_K, спасибо за подсказки, они увы, не помогли- ошибка 311 прёт в любом случае. Пробовал разные варианты из документации из описания оператора create table.
Удалось повторно создать таблицу только переименовав её - под именем PARDETALE. Я уже ничего не понимаю- неужели система где-то запоминает неудачные попытки создания таблицы под данным именем?