докомпиляция словаря

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

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

sol
Постоянный обитатель
Сообщения: 165
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Орловская обл. коммерческая организация

докомпиляция словаря

Сообщение sol »

Подскажите, пож., возможно ли добавить свою таблицу в словарь базы данных, т.е. нужно сделать докомпиляцию словаря. Есть dicom, lot, unicom. Как пользоваться, какая командная строка? Версия Галактики, правда, старая- 5.2. Нужно очень, очень срочно.
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Re: докомпиляция словаря

Сообщение oiko »

В текстовом файле пишешь приблизительно следуюшее:

CREATE TABLE user.Report "Мой отчет" USING "Report.dat"
WITH TABLE_CODE =10780
(
nrec:comp,
name:string[80],
databeg:date,
dataend:date,
klReport:byte
)
WITH INDEX
( Report01=nrec(Unique, Surrogate, Journal),
Report02=Name
);

затем dicom с командной строки с именем этого файла в качестве параметра
создай файл dicom.cfg можешь тупым копированием из galnet.cfg чтобы настроиться на базу. В базе никого не должно быть.
Может быть предупреждение о том что синтаксис не совсем тот но сьесть должно.
И обрати внимание на имя схемы где располагается табла.
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Re: докомпиляция словаря

Сообщение Johny »

А при переходе на новые версии Г, проблем-то не будет?
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: докомпиляция словаря

Сообщение m0p3e »

newtable.gd:

Create table D_MyTabl.MarkRange "Номера контрольных марок"
Using "MarkRang.dat"
With Table_Code = 31800
With Replace
(
#include firstrec.gd
Num : integer "Номер диапазона"
,pref : string [ 10 ] "Серия"
,sRange : longInt "Начало диапазона"
,eRange : longInt "Конец диапазона"
,enable : word "Статус"
)
With index
(
MarkRange_00 = Nrec (Unique, Surrogate, Journal)
,MarkRange_01 = Num (Unique)
)
;

firstrec.gd:
NREC : tNRec , // "номер записи"
LastUser : s20 , // "имя пользователя, последним изменившего запись"
LastTime : Time , // "время этой модификации"
LastDate : Date , // "дата последней модификации"
FilialNo : longint , // "Основная фирма или ее филиалы"

vip.exe newtable.gd
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: докомпиляция словаря

Сообщение m0p3e »

С переходом самое простое
1. Откопировать физически добавленные таблицы.
2. конвертировать БД.
3. докомпилировать и вернуть физ таблицы.

...либо модифицировать конвертер.
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: докомпиляция словаря

Сообщение ecasoft »

Самое главное тут КОД ТАБЛИЦЫ. Не залезьте в диапозон Галатики. КОД таблицы должен иметь уникатьный номер из диапозона пользователя ( в последнем примере правильнее).

Далее , для Первейсис:

1.описываете таблицу в файле, как показано выше.
2. компилируете ВИП-ом, как показано Выше.

Вы получили таблицу в словаре. Будут модифицированы файлы в каталоге DICT.

На всякий случай оставте копию DICT до декомпиляции. В случае для отмены модификации словаря просто восстановите DICT.

При конвертации.

3. Выполните конвертацию как написано в конверторе.

4. На новом словаре опять выполните пункт 2 (декомпилируйте новый словарь).

5. просто скопируйте каталог, где лежат Ваши таблицы данных (каталог DATA новой версии). Имя каталога, если использовать последний пример D_MYTABL (задается до точки в имени таблицы).

Удачи.
Некоммерческое общение в форуме
sol
Постоянный обитатель
Сообщения: 165
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Орловская обл. коммерческая организация

Re: докомпиляция словаря

Сообщение sol »

Спасибо за ответы, буду пробовать.
А то сначала попытался реализовать новый документ через внешние атрибуты, но это
слишком медленно работает.
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: докомпиляция словаря

Сообщение ecasoft »

еще есть путь - просто взять таблицу из контура, который не используется. Тогда вообще ничего делать не надо с декомпиляцией.

Раньше так всегда делали. Хотя возможно проблем будет и больше при конвертации - могут поменять индексы или поля. Таблица то сконвертируется штатным конвертором, но Ваши разработки могут не работать. Хотя 3 года назад мы заложились на такие таблицы и еще не было проблем.
Некоммерческое общение в форуме
dp
Местный житель
Сообщения: 216
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Беларусь, Минск
Контактная информация:

Re: докомпиляция словаря

Сообщение dp »

Только нужно еще вспомнить что докомпиляция появилась только с версии Галактики 5.7 (в атлантисе 3.х). А для более ранних нужно _полность_ пересобирать словарь
dP
sol
Постоянный обитатель
Сообщения: 165
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Орловская обл. коммерческая организация

Re: докомпиляция словаря

Сообщение sol »

Вот теперь понял почему ничего не получается версия то- 5.2.
Таблицу конечно можно выбрать, но нужно не меньше 40 полей. Поставили задачу написать комплект первичных документов для сельского х.
Например, в учетном листе машиниста- тракториста почти 30 полей.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: докомпиляция словаря

Сообщение m0p3e »

Использование стандартных неиспользуемых таблиц неудобно в плане поиска содержащих нужные поля и ( самое тяжелое ) нужных индексов. В паре доработок нужные нашел, но после добавления одной поиском уже не занимаешься. :)
sol
Постоянный обитатель
Сообщения: 165
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Орловская обл. коммерческая организация

Re: докомпиляция словаря

Сообщение sol »

И все таки возможность добавить свою таблицу в словарь 5.2 есть без пересборки всего есть.
По моему через Delfi-5. вот только узнать бы как это делается.
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: докомпиляция словаря

Сообщение ecasoft »

Да ..для 520 это все не подходит.Извиняюсь, не заметил версию. Там только подбор из существующих. Как вообще происходило в ранних версия? Компилятор создавал структуру для Паскаля и она инклюдилась в исходный текст пакаля. Затем уже программы работали по смещениям в структуре. Естественно никак без перекомпиляции исходников Паскаля туда изменения не затолкаешь.

Но вообще давно по-моему пора забыть о 520 то...это можно сказать уже и не Галактика..язык другой...функционал другой..построение базы другое. Сейчас большую часть пишут на использовании встроенных функций, а тогда все с нуля писали. Затраты на программирование на 520 намного выше.
Некоммерческое общение в форуме
sol
Постоянный обитатель
Сообщения: 165
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Орловская обл. коммерческая организация

Re: докомпиляция словаря

Сообщение sol »

Рад бы перейти на новую версию, да только скорее придется тогда вообще отказаться от Галактики и перейти на 1С.
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

А если база на MS SQL - как добавить свою таблицу?
Ответить