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

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

Добавлено: 22 апр 2005, 08:52
sol
Подскажите, пож., возможно ли добавить свою таблицу в словарь базы данных, т.е. нужно сделать докомпиляцию словаря. Есть dicom, lot, unicom. Как пользоваться, какая командная строка? Версия Галактики, правда, старая- 5.2. Нужно очень, очень срочно.

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

Добавлено: 22 апр 2005, 10:41
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 чтобы настроиться на базу. В базе никого не должно быть.
Может быть предупреждение о том что синтаксис не совсем тот но сьесть должно.
И обрати внимание на имя схемы где располагается табла.

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

Добавлено: 22 апр 2005, 10:55
Johny
А при переходе на новые версии Г, проблем-то не будет?

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

Добавлено: 22 апр 2005, 12:16
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

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

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

...либо модифицировать конвертер.

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

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

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

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

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

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

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

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

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

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

Удачи.

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

Добавлено: 22 апр 2005, 14:17
sol
Спасибо за ответы, буду пробовать.
А то сначала попытался реализовать новый документ через внешние атрибуты, но это
слишком медленно работает.

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

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

Раньше так всегда делали. Хотя возможно проблем будет и больше при конвертации - могут поменять индексы или поля. Таблица то сконвертируется штатным конвертором, но Ваши разработки могут не работать. Хотя 3 года назад мы заложились на такие таблицы и еще не было проблем.

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

Добавлено: 22 апр 2005, 15:24
dp
Только нужно еще вспомнить что докомпиляция появилась только с версии Галактики 5.7 (в атлантисе 3.х). А для более ранних нужно _полность_ пересобирать словарь

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

Добавлено: 22 апр 2005, 17:02
sol
Вот теперь понял почему ничего не получается версия то- 5.2.
Таблицу конечно можно выбрать, но нужно не меньше 40 полей. Поставили задачу написать комплект первичных документов для сельского х.
Например, в учетном листе машиниста- тракториста почти 30 полей.

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

Добавлено: 22 апр 2005, 19:45
m0p3e
Использование стандартных неиспользуемых таблиц неудобно в плане поиска содержащих нужные поля и ( самое тяжелое ) нужных индексов. В паре доработок нужные нашел, но после добавления одной поиском уже не занимаешься. :)

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

Добавлено: 23 апр 2005, 00:06
sol
И все таки возможность добавить свою таблицу в словарь 5.2 есть без пересборки всего есть.
По моему через Delfi-5. вот только узнать бы как это делается.

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

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

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

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

Добавлено: 25 апр 2005, 17:08
sol
Рад бы перейти на новую версию, да только скорее придется тогда вообще отказаться от Галактики и перейти на 1С.

Добавлено: 02 июн 2005, 13:37
hope
А если база на MS SQL - как добавить свою таблицу?