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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

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

Сообщение 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?
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

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

Сообщение n0where »

Докомпиляция словоря?
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

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

Сообщение zna »

Нет, докомпиляцию не делал. Как я понял, это не обязательно, судя по мнению Фёдора Терсина (в какой-то теме он это описал). В некоторых случаях create table нормально создаёт таблицу, в некоторых- нет.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

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

Сообщение zna »

А, вот, нашёл его тему:
forum.galaktika.ru/viewtopic.php?p=3045#p3045
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

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

Сообщение edward_K »

Ну кандидата 2 - ref и lVar - попробуйте для начала без ref - замените на comp.
Выигрыша вам это не даст, работу штатного функционала запорет и т.д. Лучше навесить программный тригер для контроля целостности с выдачей сообщений.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

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

Сообщение zna »

Убрал ref и iVar- не помогло, ошибка 311. Интересно то, что первая попытка создать таблицу была успешной:
Изображение
Какие ещё соображения?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

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

Сообщение edward_K »

хм. А удалить не забыли? В x$files она часом есть? Если есть, а физически ее уже нет, то удалять наверное через sql. Штатно - через консоль управления.
еще надо при создании таблицы указывать
With Table_CODE = 32755 (какой нибудь то уникальный номер после 32000)
можно еще
With TableOptions header, journal
или в списке полей #include firstrec.fld (вместо nrec)
А еще не указана компонентная принадлежность - перед именем таблы нужно типа d_user. Ну еще можно
Using "DETAILS.dat"
- для совместимости с первасивом - не все версии переваривают имена длиннее 8 символов.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

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

Сообщение zna »

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