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

Добавлено: 20 сен 2007, 13:33
Marina
Да, спасибо техподдержке и вам. Пример получила, буду разбираться, как освобожусь немного

Добавлено: 26 окт 2007, 11:39
Юрий
Александр писал(а): Кстати вы затронули очень интересный вопрос по формированию id что тщательно всеми скрывается по каким то таинственным соображениям.
Ничего секретного нет. Конец id это филиал плюс рабочее место.
А последний порядковый номер идентификаторов содержится в таблице cd_Sequence правда возникает вопрос кокой из SeqID нужно наращивать? Ответ прост - включил тарсировку базы и посмотрел SeqID который тебе нужен. Вот и все...

Добавлено: 26 окт 2007, 11:55
Александр
мне это было интересно с точки зрения своих хп, не являясь специалистом в SQL я просто забрал из верхнего адресного пространства 10.000 id и работаю с ними в своих массивах (при этом однозначно уверен что случайно не собъю какой либо из счетчиков id самой Лоции)
вообще гак они генерят id - их личное дело
но вот если бы ты мне сказал какую хп Лоции и с какими параметрами вызывать под это дело, для определенного вида объекта(типа связи и т.п.), я бы был тебе во век благодарен :wink:

ps
вообще мне не нравится что их счетчики оставляют дыры при уничтожении объектов, но с другой стороны мы с Лоцией подсчитали что id шников на все про все нам хватит минимум на 18446744073709,551616 лет работы

вот саму бы их функцию попользовать - но ведь не отдают же :wink:

Добавлено: 26 окт 2007, 12:07
Юрий
Есть функция cd_upSequence но она только увеличивает счетчики идешников сами идешники собирает клиент и SecID жестко зашит в программе для объектов связей и тд.

Добавлено: 26 окт 2007, 12:10
Александр
Юрий, а пример вызова с параметрами можешь изобразить, например для строкового значения заданного атрибута?? Для нулевого филиала и нулевого рабочего места?? с возвратом полученного id??

Добавлено: 26 окт 2007, 12:23
Юрий
Могу да-же круче груповое заполнение идентификаторов

при условии что таблица содержит поле с порядковым номером ind1

30 - филиал
6 - рабочее место

declare @con1 int
select @con1=count(*)+1 from #tmp_val_str_new
declare @P1 numeric(28,10)
exec archiv2.lsdbo.cd_upSequence 2004, 30006, @con1, @P1 output, 'N'
select @con1=@con1-1
select @p1=@P1-@con1
update #tmp_val_str_new set id=(@P1+ind1)*100000+30006

Добавлено: 26 окт 2007, 12:31
Александр
отлично :P а можешь дать пару комментариев по общему смыслу, в плане что храним во временной таблице, и ...
что такое 2004? (вообще часто встречается 2004 или там 2002 но я так и понял кто это)

Добавлено: 26 окт 2007, 12:41
Юрий
2004 - это SeqID для значений атрибутов
2002 - для таблицы Attrib_value
и т.д. Я думаю SQL профилиром все умеют пользоваться.

Во временной таблице храним аналог таблицы LSDBO.Value_String но с учетом что должна быть колонка ind1 которая автоинкрементится и получаются порядковые номера.

после генерации id просто копируем таблицу в базу и у нас набор новых значений атрибута(ов)

Вопросы?

Добавлено: 26 окт 2007, 12:42
Александр
знаешь и еще один момент, не знаешь ли ты точного соответствия номера счетчика типу объекта там связи или еще чему
т.е. например 2002-строковые значения атрибутов ну и т.д.
и для SeqID какие номера и для чего
и в каких комбинациях они работают между собой?

и второй момент - сколько разрядов вообще идет на филиал и по какой формуле считается хвост? № филиала+рабочее место??

Добавлено: 26 окт 2007, 12:50
Юрий
Соответствия у меня есть в проге но просто влом выбирать из SQL инструкций готовой таблицы нет. Если надо мне я профилиром смотрю.

на филиал 2 на рабочее место 3 формула - филиал*100+рабочее место

Добавлено: 26 окт 2007, 13:02
Александр
ладно и последний вопрос, как я понял для получения достаточно cd_upSequence и номера счетчика, а что такое SeqID нужно ли мне для генерации id что-то знать о этой структуре или процедуре- или это какая то служебная вешь или все таки с ней тоже нужно работать?

Добавлено: 26 окт 2007, 13:08
Юрий
SeqID - колонка в таблице cd_Sequence
Его значение и есть 2004, 2002 - это коды групп идентификаторов(счетчиков) Они зашыты в Lotsia жестко и не составляются но в этом я не уверен.
Будем говорить - я зашиваю их жестко чтобы знать какой счетчик наращивать.

Re: Party API PartyDocImport

Добавлено: 05 окт 2009, 10:19
Nomad
Если у кого-нибудь все-таки получилось использовать PartyDocImport в VBA, опубликуйте пожалуйста пример, как это должно выглядеть.