Индексы в Таблице REF_OKDP

Администрирование баз данных (Pervasive.SQL, MS SQL, Oracle, утилита Support)

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

Ответить
aybeck_a
Сообщения: 8
Зарегистрирован: 22 мар 2011, 14:58
Откуда: Kazahstan- Astana
Контактная информация:

Индексы в Таблице REF_OKDP

Сообщение aybeck_a »

Добрый день!!!
Была произведена конвертация БД SQl2000 sp4 на SQl 2008 64 бит, После конвертации выводит ошибку: Индекс не найдет в таблице REF_OKDP. После конвертации запускали CREA_IDX, который выдал в логе
25/05/2011 19:12:27 [CONV]: Обрабатывается таблица REF_OKDP
и больше ни чего. Получается как бы индексы не создались. Таблица имеет 211 записей. В Среда SQL Server Management Studio видно только 1 индекс T$REF_OKDP0, хотя в старой БД их 5. Утилита chkmssql, с вкл проверкой индексов и тригеров ошибок не дает.
Semi-bit
Постоянный обитатель
Сообщения: 123
Зарегистрирован: 01 фев 2007, 12:45
Откуда: Магнитогорск
Контактная информация:

Re: Индексы в Таблице REF_OKDP

Сообщение Semi-bit »

А пробовали индексы пересоздать вручную? То есть, не с помощью интерфейсов, а DDL-запросами в SQL?
Скорее всего, где-то в скрипте конвертации произошла ошибка. Определения индексов можно взять из старой базы.
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
aybeck_a
Сообщения: 8
Зарегистрирован: 22 мар 2011, 14:58
Откуда: Kazahstan- Astana
Контактная информация:

Re: Индексы в Таблице REF_OKDP

Сообщение aybeck_a »

Побывал прямым запросом в SQL:
CREATE UNIQUE NONCLUSTERED INDEX [T$REF_OKDP0] ON [dbo].[T$REF_OKDP]
(
[F$NREC] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
не помогло.
Таблица всего содержит 5 индексов.
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Индексы в Таблице REF_OKDP

Сообщение n0where »

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

Create table D_KATAL.REF_OKDP "справочник ОКДП"
  Using "ref_OKDP.dat"
  With Table_Code = 1469
  With replace With TableOptions Corpo, Branched
  (
    NREC             : Comp         "Номер записи",
    ATL_LASTDATE     : Date         "Дата последней модификации",
    ATL_LASTTIME     : Time         "Время последней модификации",
    ATL_LASTUSER     : ref(X$USERS) "Код пользователя",
    ATL_ORIGINOFFICE : Word         "Номер офиса, в котором занесена запись",
    ATL_OWNER        : Comp         "Код владельца записи",
    ATL_BRANCH       : Comp         "Филиал",
    NAME             : String[80]   "наименование",
    KOD              : String[20]   "код",
    ISLEAF           : Word         "признак нижнего уровня",
    LKOD             : Word         "длина кода",
    KGARM            : String[20]   "код гармонизированной системы",
    TNV              : String[20]   "код товара ТНВЭД (реж. регул)"
  )

  with index
  (
    REF_OKDP01 = NREC(Unique,Surrogate,Journal),
    REF_OKDP02 = KOD,
    REF_OKDP03 = LKOD+KOD,
    REF_OKDPLM = ATL_LASTDATE+ATL_LASTTIME,
    REF_OKDPLU = ATL_LASTUSER
  );
Последний раз редактировалось n0where 02 июн 2011, 15:32, всего редактировалось 2 раза.
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Semi-bit
Постоянный обитатель
Сообщения: 123
Зарегистрирован: 01 фев 2007, 12:45
Откуда: Магнитогорск
Контактная информация:

Re: Индексы в Таблице REF_OKDP

Сообщение Semi-bit »

aybek_a писал(а):Пробовал прямым запросом в SQL:
...
не помогло.
Не совсем понял, как именно не помогло :?: Ошибка не исчезла, или же попытка создать индекс выдала ошибку? В первом случае ошибка наверняка возникает из-за того, что Вы создавали не тот индекс, отсутствие которого её вызывает. Во втором случае - не могу подсказать. Пожалуйста, опишите подробнее результаты Ваших действий.

n0where
надо бы ещё референсные индексы добавить :)
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
aybeck_a
Сообщения: 8
Зарегистрирован: 22 мар 2011, 14:58
Откуда: Kazahstan- Astana
Контактная информация:

Re: Индексы в Таблице REF_OKDP

Сообщение aybeck_a »

n0where
Не подскажите как с этим кодом работать? запускать в саппорте или SQL? Если не затруднит можно ли по подробнее!!!
aybeck_a
Сообщения: 8
Зарегистрирован: 22 мар 2011, 14:58
Откуда: Kazahstan- Astana
Контактная информация:

Re: Индексы в Таблице REF_OKDP

Сообщение aybeck_a »

Semi-bit писал(а):
aybek_a писал(а):Пробовал прямым запросом в SQL:
...
не помогло.
Не совсем понял, как именно не помогло :?: Ошибка не исчезла, или же попытка создать индекс выдала ошибку? В первом случае ошибка наверняка возникает из-за того, что Вы создавали не тот индекс, отсутствие которого её вызывает. Во втором случае - не могу подсказать. Пожалуйста, опишите подробнее результаты Ваших действий.

n0where
надо бы ещё референсные индексы добавить :)
В SQL создать индексы получилось, а вот ошибка повторяется. Создаю индексы как в тестовой они идентичны.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Индексы в Таблице REF_OKDP

Сообщение edward_K »

просто sql-лем создать мало.
Лучше удалить таблицу и пересоздать средствами атлантиса( сапорт - консоль управления, vip - как в конверторе)
aybeck_a
Сообщения: 8
Зарегистрирован: 22 мар 2011, 14:58
Откуда: Kazahstan- Astana
Контактная информация:

Re: Индексы в Таблице REF_OKDP

Сообщение aybeck_a »

n0where писал(а):

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

Create table D_KATAL.REF_OKDP "справочник ОКДП"
  Using "ref_OKDP.dat"
  With Table_Code = 1469
  With replace With TableOptions Corpo, Branched
  (
    NREC             : Comp         "Номер записи",
    ATL_LASTDATE     : Date         "Дата последней модификации",
    ATL_LASTTIME     : Time         "Время последней модификации",
    ATL_LASTUSER     : ref(X$USERS) "Код пользователя",
    ATL_ORIGINOFFICE : Word         "Номер офиса, в котором занесена запись",
    ATL_OWNER        : Comp         "Код владельца записи",
    ATL_BRANCH       : Comp         "Филиал",
    NAME             : String[80]   "наименование",
    KOD              : String[20]   "код",
    ISLEAF           : Word         "признак нижнего уровня",
    LKOD             : Word         "длина кода",
    KGARM            : String[20]   "код гармонизированной системы",
    TNV              : String[20]   "код товара ТНВЭД (реж. регул)"
  )

  with index
  (
    REF_OKDP01 = NREC(Unique,Surrogate,Journal),
    REF_OKDP02 = KOD,
    REF_OKDP03 = LKOD+KOD,
    REF_OKDPLM = ATL_LASTDATE+ATL_LASTTIME,
    REF_OKDPLU = ATL_LASTUSER
  );
Ругается:
16:32:01 │ Ошибка: Поле "ATL_LASTDATE" в таблице REF_OKDP уже есть! (стр.8, поз.69 в table.lot)
│ ATL_LASTDATE : Date "Дата последней модификации",
│ ^
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Индексы в Таблице REF_OKDP

Сообщение edward_K »

1. посмотрите доку
2. если в лом посмотрите конвертор 712-810 - там где лоты по созданию индексов,таблиц и т.п.
3. чтобы выполнить один в один то что вам дали, таблу нужно сначала грохнуть.
Semi-bit
Постоянный обитатель
Сообщения: 123
Зарегистрирован: 01 фев 2007, 12:45
Откуда: Магнитогорск
Контактная информация:

Re: Индексы в Таблице REF_OKDP

Сообщение Semi-bit »

edward_K писал(а):3. чтобы выполнить один в один то что вам дали, таблу нужно сначала грохнуть.
Перед тем, как грохнуть, не поленитесь выгрузить её хотя бы в дбф :)
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
aybeck_a
Сообщения: 8
Зарегистрирован: 22 мар 2011, 14:58
Откуда: Kazahstan- Astana
Контактная информация:

Re: Индексы в Таблице REF_OKDP

Сообщение aybeck_a »

Запрос выдает ошибку
Ошибка: Индексы с префиксом REF_ системные их можно только удалять.
oiko
Местный житель
Сообщения: 418
Зарегистрирован: 29 мар 2005, 17:49

Re: Индексы в Таблице REF_OKDP

Сообщение oiko »

Дык они на мой вкус и не нужны. Ссылочную целостность не поддерживают.
Зачем их придумали спросите у разработчиков.
aybeck_a
Сообщения: 8
Зарегистрирован: 22 мар 2011, 14:58
Откуда: Kazahstan- Astana
Контактная информация:

Re: Индексы в Таблице REF_OKDP

Сообщение aybeck_a »

Вопрос решен выходом нового конвертора CONVERTER_810_810_CONV_81005.
Ответить