Страница 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 - как добавить свою таблицу?