Как одним запросом получить полное имя файла док. архива?

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
Ответить
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Как одним запросом получить полное имя файла док. архива?

Сообщение Александр »

Никто не покажет SQL примерчик
Начальные условия
-есть id карточки документа id_card
-в электронном открытом архиве есть документ привязанный к этой карточке - с расширением xml
Нужно получить полный путь (полный путь+полное имя файла) к нулевой версии файла, чтобы передать его потом в виде строки в vbscript
как это можно сделать в одном запросе? а то в таблицах потерялся уже :wink: :wink: :wink:

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Как одним запросом получить полное имя файла док. архива?

Сообщение Александр »

что-то типа вот такого

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

select top(1)(select path from lsdbo.storage_v v where v.id=f.storage_id)+file_path+file_name 
  from LSDBO.File_V f,
       LSDBO.object_reference_view o 
 where f.object_reference_id=o.ID 
       and f.object_reference_id=(
  тут ищу(своей функцией) все дочерние (от родителя 100001241400044) карточки документов
  select id from lsdbo.ric_get_objChild(100001241400044,'Docs,Doc'
) 
  where description='Схема проезда')
ну тут номера версии нет в имени файла.... и расширение не учитывается...
вместо этого

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

\\crm\Base_for_Lotsia\Departments\Документы\Схема проезда\Григорьева Елена Андреевна\51R00.doc
выводит такое

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

\\crm\Base_for_Lotsia\Departments\Документы\Схема проезда\Григорьева Елена Андреевна\51R.doc
да и сам запрос вроде не очень оптимальный...
в общем нужна помощь :wink: да и имя файла хотел увидеть не кодированное а первоначальное (чтобы дальше отдать правильный путь к файлу и дополнительно исходное - название файла) - ... но это вообще не знаю как достать...

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: Как одним запросом получить полное имя файла док. архива?

Сообщение Anderyt »

если быстро - то:

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

select top 100 s.path+f.file_name 
from lsdbo.file_v f, lsdbo.storage_v s
where
f.storage_id = s.id
это вот эти таблицы :-)
но в имя файла нужно еще вставить номер версии, так как в таблице file_v хранится имя для документа, а не для версии документа..
там надо видимо как то страку разрезать, я не соображу пока... ну, наверное ты сам додумаешь ;-)
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Как одним запросом получить полное имя файла док. архива?

Сообщение Александр »

:wink: :wink: :wink: :wink:
6700 файлов эт круто конечно :wink: (у тебя наверно их тысячи!!!!) :wink:
ладно... может Юрий или СК и Disillusioned что подскажут....
все равно спасибо!
глубоко запрятали!!!! - думал есть стандартная процедура (запрос)

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: Как одним запросом получить полное имя файла док. архива?

Сообщение Anderyt »

а если это:

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

select top 100 s.path+substring(f.file_name, 1,charindex('.', f.file_name)-1)+'00'+substring(f.file_name, charindex('.', f.file_name),len(f.file_name))
from lsdbo.file_v f, lsdbo.storage_v s
where
f.storage_id = s.id
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: Как одним запросом получить полное имя файла док. архива?

Сообщение Anderyt »

Anderyt писал(а):там надо видимо как то страку разрезать, я не соображу пока...
"страку"...
копец... на покой, срочно на покой!
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Re: Как одним запросом получить полное имя файла док. архива?

Сообщение Старик Крупский »

Сейчас не скажу - дома базы под рукой нет. Но по-моему в табличке File_ver есть колонка ver_label. Наверное, это и есть номер версии. Так что, наверное, File1.id = File_ver.file_id - и "все в твоих руках", как поет Анжелика Варум :D

Anderyt: "стрАка" - в отпуск пора. Раньше за тобой такого не замечал :lol:
"Лучше меньше, да лучше" (C)
Юрий
Активный участник
Сообщения: 239
Зарегистрирован: 13 янв 2005, 14:30
Используемое ПО: Lotsia PDM PLUS LT
Откуда: Украина, Донецк
Контактная информация:

Re: Как одним запросом получить полное имя файла док. архива?

Сообщение Юрий »

Держи

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

select st1.id storage_id, st1.Path, 
'fn1'=case 
when patindex('%.%_',fl1.file_name)=0 then fl1.file_name+fv1.ver_label
else substring(fl1.file_name, 1, patindex('%.%_',fl1.file_name)-1)+
fv1.ver_label+substring(fl1.file_name, patindex('%.%_',fl1.file_name),
 len(fl1.file_name)-patindex('%.%_',fl1.file_name)+1) 
 end,
 --fn1,
 fl1.object_reference_id object_id, fl1.id file_id, fv1.id ver_id, fv1.orig_filepath
from LSDBO.File1 fl1
inner join LSDBO.file_ver fv1 on fl1.id=fv1.file_id
inner join LSDBO.Storage st1 on fl1.storage_id=st1.id 
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Как одним запросом получить полное имя файла док. архива?

Сообщение Александр »

ЭТО ТО ЧТО НУЖНО!!!
Спасибо! :wink:

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Ответить