Lotus и Php

  • Автор темы Dimitar
  • Дата начала
D

Dimitar

Гость
#1
Здравствуйте!
Есть необходимость сделать вывод в PHP-скрипт содержимого БД на Лотусе.
Подключаюсь через ОДБЦ. В БД есть два поля -- поле с док-файлом и поле с описанием файла.
Выводится только поле с описанием док-файла. Необходимо вывести ссылку на этот файл.
Прошу помощи...

вот код:
Код:
$id_db = odbc_connect("test_db2", "user", "12345") or die( "Could not connect to ODBC database");
...
echo "<b>Все содержимое таблицы $table:</b><br>";
$query = "SELECT * FROM $table";
$result = odbc_exec($id_db, $query) or die("Couldn't execute query!");
odbc_result_all($result, "border='1'");
 
D

Dimitar

Гость
#5
нет, увы это не подходит :( нужно обойтись средствами PHP и ODBC...

Добавлено: есть способ вытащить ссылки на вложения из БД с помощью @-формул:
Код:
"/"+@WebDbName+"/0/"+@Text(@DocumentUniqueId)+"/$file/"+@AttachmentNames
но как это организовать в PHP... :)
 
D

Dimitar

Гость
#7
читайте маны по пыу на реквесты по урл и тащите инфу из вьюшек (даже json можно)
http://www.php.net/manual/en/ref.http.php
и ваще это в форум пыха
Ув. lmike, если Вас не затруднит, расскажите подробнее как именно "тащить инфу из вьюшек"... на форумах "пыха" вообще затишье на мои вопросы, связанные с Лотус. В работе с Лотус я новичок, прошу помощи
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 490
366
#8
если вы знаете как обращаться с пыхом - то выполняйте запрос в домино серверу, по урл
типа http://servername/pathtodb/dbname.nsf/viewname?Open&...
где после амперсанды пишутся доп. параметры (если нужно)
это можно увидеть в хэлпе дизайнера по нотусам
далее парсите ответ
разумеется - если инфы во вьюшке нет - то и получить её низя (это не реляционная база), хотя в доках она может присутствовать
в таком случае, без знания домины, не обойтись
непонятна ваша задача потому и решение неизвестно
 
D

Dimitar

Гость
#9
если вы знаете как обращаться с пыхом - то выполняйте запрос в домино серверу, по урл
типа http://servername/pathtodb/dbname.nsf/viewname?Open&...
где после амперсанды пишутся доп. параметры (если нужно)
это можно увидеть в хэлпе дизайнера по нотусам
далее парсите ответ
разумеется - если инфы во вьюшке нет - то и получить её низя (это не реляционная база), хотя в доках она может присутствовать
в таком случае, без знания домины, не обойтись
непонятна ваша задача потому и решение неизвестно
Спасибо за ответ!
Боюсь это не подойдет. В БД хранится куча вложений, формировать руками запрос не рационально, кажется...
Попытаюсь рассказать подробней о задаче. Есть БД, в ней лежат вложения и описания к ним. (вложений много!) Необходимо просто вывести на страницу описания вложений и ссылки для скачивания самих вложений.
причем БД будет пополняться/изменяться. поэтому ссылки для скачивания вложений должны всегда формироваться сами из БД...
мне подсказали формулу формирования ссылок вложений:
Код:
"<a href=\"/"+@WebDbName+"/0/"+@Text(@DocumentUniqueId)+"/$file/"+@AttachmentNames+"\">"+@AttachmentNames+" ("+@Text(@AttachmentLengths)+"b)</a>"
Но эта конструкция не работает в PHP...
Надеюсь объяснил... :)
 

acorn

PHP Developer
29.08.2004
585
3
#10
Dimitar
а что означает у вас собака в @WebDbName например?
 

hosm

* so what *
18.05.2009
2 442
9
#12
Acorn
@WebDbName - путь к лотусовой БД (c указанием имени файла БД) относительно каталога данных лотус-сервера.
"/0/" - вместо имени лотус-вьюхи
@Text(@DocumentUniqueId) - идентификатор лотус-документа в лотусовой БД
"/$file/" - для доступа к файл-аттачам лотус-документа
@AttachmentNames - собственно имена аттачей лотус-документа
Т.е. для лотуса это вполне нормальный урл, который лотусовая задача http понимает и показывает в браузере нужный аттач из лотусовой БД.
 

acorn

PHP Developer
29.08.2004
585
3
#13
тогда каким боком эта "конструкция" должна работь в пхп?

Но эта конструкция не работает в PHP...
Исходные данные: у вас есть нейкая БД, необходимо к ней подключиться на php и вывести список ссылок на файлы?
 
D

Dimitar

Гость
#14
Acorn, Вы меня абсолютно правильно поняли!

OKEN, именно так! Все это мне известно. Но как это все выполнить через PHP, используя ODBC???
 

hosm

* so what *
18.05.2009
2 442
9
#15
Исходные данные: у вас есть нейкая БД, необходимо к ней подключиться на php и вывести список ссылок на файлы?
причем эти файлы находятся внутри лотусовой БД, а не лежат отдельно где-то на сервере. lmike выше предлагал вывести параметры во вьюху (имя аттача и пр.) и оттуда тащить запросом к домино-серваку... т.е. ссылки на них можно вывести во вьюху, но может ли NotesSQL позволять использовать данные из представления для формирования ссылки, которая будет понятна php - я хз...
может, как-то с помощью описанных тут методов еще покопать - http://www.ibm.com/developerworks/ru/libra...-php/index.html
 
D

Dimitar

Гость
#16
причем эти файлы находятся внутри лотусовой БД, а не лежат отдельно где-то на сервере. lmike выше предлагал вывести параметры во вьюху (имя аттача и пр.) и оттуда тащить запросом к домино-серваку... т.е. ссылки на них можно вывести во вьюху, но может ли NotesSQL позволять использовать данные из представления для формирования ссылки, которая будет понятна php - я хз...
может, как-то с помощью описанных тут методов еще покопать - http://www.ibm.com/developerworks/ru/libra...-php/index.html
Спасибо за ответ!
Этими методами я уже копал еще до использования NotesSQL. Результат еще хуже. с NotesSQL намного больше возможностей. дело в том, что все вложения в БД Лотус хранятся в ричтекстовых полях. а их просто так вывести нельзя. все остальное выводится отлично.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 490
366
#17
практически - никак, да и зачем если парсить ответ от задачи хттп?
запрашивайте все(?) ентрисы (?ReadViewEntries) вьюшки (вопрос тока какой) и получаете ИД доков (noteid)
далее - можно из 0-вого вью получить аттачи (и снова - если их имена не выведены на уровень вью - низя их узнать)
и повторюсь - дизайн вьюшек неизвестен - потому и конкретное решение под вопросом

Добавлено: энтрисы будут выглядеть типа:
<viewentry position="2" unid="7622C2BB90BBF50EC32577CC003050CA" noteid="95A" siblings="5">

Добавлено:
Спасибо за ответ!
Этими методами я уже копал еще до использования NotesSQL. Результат еще хуже. с NotesSQL намного больше возможностей. дело в том, что все вложения в БД Лотус хранятся в ричтекстовых полях. а их просто так вывести нельзя. все остальное выводится отлично.
низя вывести их имена! - если дизайном вью не предусмотрено - дык сделайте шоббылО
 
D

Dimitar

Гость
#18
практически - никак, да и зачем если парсить ответ от задачи хттп?
запрашивайте все(?) ентрисы (?ReadViewEntries) вьюшки (вопрос тока какой) и получаете ИД доков (noteid)
далее - можно из 0-вого вью получить аттачи (и снова - если их имена не выведены на уровень вью - низя их узнать)
и повторюсь - дизайн вьюшек неизвестен - потому и конкретное решение под вопросом
lmike, заметно что вы разбираетесь в этой области. я впервые столкнулся с такой задачей. подскажите подробней что значит "парсить ответ от задачи хттп", каким образом "запрашивать ентрисы вьюшки"...
я пишу на голом ПХП. есть БД Лотус и NotesSQL.
по идее инструкция:
Код:
"/"+@WebDbName+"/0/"+@Text(@DocumentUniqueId)+"/$collon/"+@AttachmentNames
должна дать нужный результат, но в ПХП она не работает.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 490
366
#19
по-идее вы работаете из внешней среды и всё что с собаками ей не известно!
вид урла я указал выше...
-не поленитесь открыть хэлп дизайнера нотусов - там урлы расписаны
-NotesSQL вам не поможет (имена аттачей ему не известны)
-вам придётся изменить нотусовую вьюшку (для получения имён аттачей)

Добавлено:
"парсить ответ от задачи хттп"
это то что делают обычно в пыхе с ответом от внешнего сервера, по протоколу http, при выполнении запроса (к домине) вида
Код:
http://servername/pathtodb/dbname.nsf/viewname?ReadViewEntries
будет получен ХМЛ - это и есть запрос энтрисов
 
D

Dimitar

Гость
#20
по-идее вы работаете из внешней среды и всё что с собаками ей не известно!
вид урла я указал выше...
-не поленитесь открыть хэлп дизайнера нотусов - там урлы расписаны
-NotesSQL вам не поможет (имена аттачей ему не известны)
-вам придётся изменить нотусовую вьюшку (для получения имён аттачей)

Добавлено: это то что делают обычно в пыхе с ответом от внешнего сервера, по протоколу http, при выполнении запроса (к домине) вида
Код:
http://servername/pathtodb/dbname.nsf/viewname?ReadViewEntries
будет получен ХМЛ - это и есть запрос энтрисов
простите за наглость...она обоснована незнанием Лотус... а каким образом изменить вьюшку для получения имен аттачей?
и можно ли это сделать, если у меня уже есть готовая БД полная нужной информации?...