Не совсем понятно как программно добавить еще файлов из папки в существующий объект Blob.(в нем должны храниться только ссылки на файлы из папки) пробовала сначала Получить DataSet по SYS объекта ds
потом получить значение поля BLOB GetFieldValueBlob() не описана в справке. tb вроде получил и даже показал количество файлов в галерее Далее с помощью
tb.Items.Add путь, 1, путь - вроде что то добавил в галерею далее это tb
записать это tb в ds SetFieldValue но ничего не записалось
как и значение tb через UpdateBaseRecordEx UpdateBaseRecord
ругается на список полей, то на неверные параметры, то просто вылетает... Видимо неправильно выгружаю из ds. Если не через DataSet - то как ???
Aly написал: Не совсем понятно как программно добавить еще файлов из папки в существующий объект Blob.(в нем должны храниться только ссылки на файлы из папки) SFil ="D:\zulData\1\primer.pdf"
Set Db=CreateObject("Zb.ZbDatabase") Db.Open "Имя" Set tbldef0 = CreateObject("Zb.ZbBlob") ' объявление -cоздание Set tab1= Db.Queries.Default.SelectByKey (idsb) 'DataSet DN =tab1.GetFieldIndexByName (0, "GZ_Doc_Blob")'номер поля GZ_Doc_Blob
Set tbldef0=tab1.GetFieldValueBlob(DN,1) ' существующее значение поля??? как строка tbldef0.Items.Add SFil, 1, SFil '(добавляем новый объект : имя объекта оно же ссылка) tab1.SetFieldValue DN,tbldef0 ' новое значение поля в DataSet ' не работает ничего не добавляет. Даже если создать в памяти Data Set и добавить запись. Db.Queries.Default.UpdateFromDataset tab1, "GZ_Doc_Blob" 'не работает
Dataset - это ответ. В него ничего уже добавлять не надо. Нужно получить объект IzbBlob blob из датасета GetFieldValueBlob Далее, IZbBlobItems items = blob->Items Далее items.Add (это если поле является галереей) А дальше создать VT_ARRAY|VT_VARIANT в него записать blob, как VT_UNKNOWN И потом QueryInfo->UpdateBaseRecordEx с этим параметром
Все это у нас пока недоописано. Нужно описать все методы. Написать пример. Либо добавить какие-то для пользователя упрощенные методы. Типа "Добавить файл в галерею"
Вот нашел старый пример. Не знаю, на сколько рабочий. Тестировать нужно
Код
Sub BlobCopy
Set Map = Zulu.ActiveMapDoc
Set L = Map.Layers.Active
Set db = L.OpenDatabase (4, "")
Set ds = db.SelectByKey (1317)
idx = ds.GetFieldIndexByName(zbShortName, "BLOB_test")
Set blob = ds.GetFieldValueBlob (idx, 0)
'b.ActiveQuery.UpdateBaseRecordEx 1, "Sys", 1317, "BLOB_test", blob
blob.Items.Add "bbb.jpg", 1, "d:\Afisha.jpg"
blob.Items.Add "drain.png", 1, "d:\drain.png"
blob.SaveContent 0, "d:\content.bin"
a = db.ActiveQuery.UpdateBlobFile (1, "Sys", 1317, "BLOB_test", "d:\content.bin", "")
End Sub
Это уже сделано gallery. Links стоит. Но файлы забрасываемые из бинарного файла - размещаются целиком. Это связано с SaveContent 0,... Судя по описаю эта функция предназначена больше для выгрузки данных из БД - т.е. формируется файл (бинарный) в котором содержится непосредственно фотография а не ссылка. возможно это зарезервированный параметр 0
Мне нужно чтобы програмно добавить ссылки на файлы из указанной папки. Из-за того что при ручном добавлении - файл копируется в корень папки документов, то в папке начинается хаос из файлов. Хаос это очень плохо - ничего понять невозможно. и из папки получить данные напрямую к ней обратившись (без Зулы) не возможно.
Поэтому лучше наоборот. сначала заложить файлы в папки, а потом добавлять ссылки - програмно.Если формат поля Строковый с тегом document , то можно сделать зипованную папку с номером SYS для каждого объекта и в нее складывать документы. В само поле добавить ссылку на zip объекта.
Но посокльку zipi - в zip уже не откроет, нужен Blob - галерея с ссылками. А вот загрузить ссылки не выходит. Функции не подходят. Пробовала через поток делать но не понятно как грузить опять же ссылки.
Если сделать ярлыки и их уже грузить в контент? Но ZULU игнорирует ярлыки в качестве добавляемых файлов. Задачка сложная получается.
Если сделать ярлыки и их уже грузить в контент? Но ZULU игнорирует ярлыки в качестве добавляемых файлов. Задачка сложная получается.
Вы вручную можете это сделать и показать Вашу модель? Если то, что Вы хотите, не сделать вручную, то и программно не выйдет. Пришлите, пожалуйста, пример данных на [email protected]
Добрый день! Проблема такая же -программно заполнить ссылками на файлы поле таблицы типа blob. При попытке использовать UpdateBaseRecordEx пишет "Неправильно сформирован список значений." При попытке использовать UpdateBlobFile пишет "Не удалось сохранить файл." Кто поможет!
Добрый день! У нас обнаружились расхождения объектной модели с текущими возможностями галереи. Мы сейчас работаем над тем, чтобы сделать адекватной программную работу с ссылками в blob. Как только закончим, дадим знать.
Добрый день! электронный архив с множеством документов расположен на сетевом диске. Сейчас нужно подгрузить документы к объектам ссылками из данного архива, для этого на сервере указали папку для документов, и теперь все файлы после прикрепления просто копируются в указанную папку. Верно выполнено? Получается задвоение файлов. Версия 8.0.08062u
Добрый день! задвоения быть не должно. При подключении документа, который уже размещен на сетевом ресурсе, необходимо выбирать документ не из сетевой папки, а непосредственно с сервера геоданных, см картинку ниже.
Убедитесь, что вы поступаете именно так. Останутся вопросы, пришлите на почту [email protected] следующую информацию: 1) скриншот типа поля в структуре таблицы 2) скриншот настройки поля в запросе 3) скриншот момента выбора документа для загрузки 4) скриншот папки с документом до и после загрузки документа 5) телефон для связи
то есть эл. архив документов скопировать на папку сервера ? Я подгрузила документ с сетевой папки и он скопировался в папку сервера, которую я указала в "Сервис", вроде так и должно быть. Интересует то, что файлы все равно повторяются (на сетевом диске и на сервере). сотрудники не имеют доступ к серверу, а пользуются документами на сетевом диске.
А ссылку на папку возможно добавить? так как по одному объекту множество файлов и файлы могут добавляться в папки.