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

Создание словаря БД с нуля.

Добавлено: 18 май 2006, 11:36
Maverick
Собственно интересует данный данный контент ибо моих скудных знаний не хватает и не могу понять, где собака зарыта.

Пытаюсь собрать с нуля словарь БД, который описан в доке (RPP)
Собственно ниже код:

vip.cfg

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

[Compilers]
  ErrorLevel=2
  WriteListing=ON
  IncludesPath:=%iProject%

[Dicom]
  BuildTables=ON
dictypes.def

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

set type
 (
  tNREC = COMP // Тип описания GUID записи таблицы
 );
project.dic

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

Create Dictionary PROJDICT "Проекты"
using
  "DICT", "D_DICT"       // директорий для словаря
   With Replace;
#include dictypes.def
#include tables.gd
dicom.bat

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

set iProject=C:\Work\Dic
C:\Atl303\EXE\vip.exe /c:%iProject%\vip.cfg %iProject%\project.dic
в итоге при запуске dicom.bat получаю бАААльшую каку в виде:

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

11:31:15 │ Создаем словарь PROJDICT "Проекты" "DICT" "D_DICT"
11:31:18 │ Словарь PROJDICT "Проекты" версии 303 построен.
11:31:18 │  Ошибка: Ошибка при открытии include файла (стр.5, поз.22 в C:\Work\Dic\project.dic)
         │ #include dictypes.def

Кто может подсказать где собака порылась? Говорю сразу -
а) явно задавать пути пробовал, не помогло
б) данная БД к БД Галактики отношения не имеет, т.е. Database задавать на существующую БД не поможет

Re: Создание словаря БД с нуля.

Добавлено: 18 май 2006, 11:53
WiRuc
Несмотря на то, что вы пробовали подставлять пути, я думаю проблема в
vip.cfg

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

[Compilers]
  ErrorLevel=2
  WriteListing=ON
  IncludesPath:=%iProject%

[Dicom]
  BuildTables=ON
Я бы попробовал указать здесь непосредственно C:\Work\Dic
IncludesPath = C:\Work\Dic
Кстати, обратите внимание, у вас присваивание делается через := (не знаю, можно ли так делать)

Добавлено: 18 май 2006, 16:41
Maverick
1. Использование переменных окружения прекрасно понимается в CFG файлах. Но на всякий случай пробовал явно пути указывать - не понимает все равно
2. := вместо = - естественно описАлся, когда на форум выкладывал )) в файле естественно стоит =

Однако наверное никто словарик не создавал... (((

Добавлено: 18 май 2006, 18:44
sth73
вот так вроде работает у меня

dicom.bat:

set ATLANTIS=c:\atlantis\
set DATABASE=c:\data
set dicom=c:\dicom\
%Atlantis%\exe\vip.exe /c:%dicom%vip.cfg %dicom%dict.dic

vip.cfg:

[database]
databasename=%DATABASE%
/I:%dicom%
Compilers.ErrorLevel=0
Compilers.WriteListing=ON
Dicom.BuildTables=Off
/F

dict.dic:

$G+
$R+

Create Dictionary DICT "test"
using
"DICT", "D_DICT"
With Replace;
Set Directory For Pascal "..\PASDICT"; // каталог для Паскаль - заготовок

#include dict.gd
#include refer.dic

create pascal;

Добавлено: 19 май 2006, 11:22
Maverick
2 sth73

Вы знаете, 1 в 1 сделал как у Вас... все равно ругается на ошибку при открытии файла.

Я уже того.. крыша едет от непоняток... ((

Добавлено: 19 май 2006, 12:24
KATZ
Maverick писал(а):... все равно ругается на ошибку при открытии файла.
Бывает, сообщение об ошибке не отражает ее истинную причину. Может, стоит попробовать директиву #include заменить содержимым включаемого файла?

Добавлено: 19 май 2006, 12:34
sth73
а на какой инклуд теперь ругается?
у меня dict.dic, dict.gd и refer.dic лежит в одном каталоге с dicom.bat

и действительно, иногда бывает, что ругается реально не на то, что пишет в диагностике... может и в этот раз также?

Добавлено: 22 май 2006, 16:15
Maverick
Вы знаете, убрал из project.dic все инклуды, скопировав абсоютно все содержимое из них в него...
В общем - ругается на первую же строчку после директивы описания словаря : если есть объявление словарных типов - то на set type, если идет прямое описание таблицы - то на оператор создания таблицы (((

в общем где-то собака порылась, а где - понять не могу... (((

Добавлено: 22 май 2006, 17:57
sth73
хм...
ну наверное только и остается, что выкидывать помаленьку код из project.dic и смотреть что получится..

кстати, может быть есть смысл создать новый proj.dic и написать туда нужный код руками? А то бывает, что если скопировать что-то через буфер в исходник, то мусор некий попадает и компилятор на этом спотыкается.. то есть я имею в виду, может и не в синтаксисе тут дело?

Добавлено: 25 май 2006, 16:41
siteadmin
все создано ручками. ничего не копировалось. та же самая песня. ругается на первое же описание после оператора создания словаря.

Добавлено: 26 май 2006, 12:40
KATZ
Тут выдалось немного свободного времени, решил попытаться создать "с нуля" словарь описанным способом (так, для общего развития, ибо на практике это едва ли может пригодиться).
Сначала брал VIP.EXE из "Галактики", в которой установлены почти все текущие патчи. Этот компилятор вывалил аналогичную ошибку. А еще у меня случайно нашелся "Атлантис" 3.03.22 от ноября 2004 года без каких-либо патчей. Как ни странно (а может, наоборот, закономерно), раритетный VIP.EXE отработал нормально и словарь создал.

Re: Создание словаря БД с нуля.

Добавлено: 29 май 2006, 12:08
Vitaliy
А если попробовать убрать описание путей в dic-файле?, т.е что то типа:

Create Dictionary xxxx "yyyy";
! Описание типов
#include dictypes.def
!Описание таблиц
#include zzz.GD

Добавлено: 05 июн 2006, 11:39
siteadmin
нет-нет и еще раз нет.
просто какой-то страннейший трабл.
1)все перенес в один файл.
2)все переложил в текущий каталог.
компилил непропатченным атлантисом.
та же самая ошибка.

пора сушить ласты.

Добавлено: 05 июн 2006, 11:42
Vitaliy
Так на какой строке ошибка?

Добавлено: 05 июн 2006, 11:47
siteadmin
на первой же, идущей после

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

Create Dictionary PROJDICT "Проекты"  using  "DICT", "D_DICT"  With Replace;