Lotus и Php

Тема в разделе "PHP программирование", создана пользователем Dimitar, 10 янв 2011.

  1. Dimitar

    Dimitar Гость

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

    вот код:
    Код (Text):
    $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'");
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    это NotesSQL чтоли?

    может зделать через services ?
     
  3. Dimitar

    Dimitar Гость

    да, это NotesSQL. services? не слышал такое...(
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
  5. Dimitar

    Dimitar Гость

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

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.077
    Симпатии:
    300
    читайте маны по пыу на реквесты по урл и тащите инфу из вьюшек (даже json можно)
    http://www.php.net/manual/en/ref.http.php
    и ваще это в форум пыха
     
  7. Dimitar

    Dimitar Гость

    Ув. lmike, если Вас не затруднит, расскажите подробнее как именно "тащить инфу из вьюшек"... на форумах "пыха" вообще затишье на мои вопросы, связанные с Лотус. В работе с Лотус я новичок, прошу помощи
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.077
    Симпатии:
    300
    если вы знаете как обращаться с пыхом - то выполняйте запрос в домино серверу, по урл
    типа http://servername/pathtodb/dbname.nsf/viewname?Open&...
    где после амперсанды пишутся доп. параметры (если нужно)
    это можно увидеть в хэлпе дизайнера по нотусам
    далее парсите ответ
    разумеется - если инфы во вьюшке нет - то и получить её низя (это не реляционная база), хотя в доках она может присутствовать
    в таком случае, без знания домины, не обойтись
    непонятна ваша задача потому и решение неизвестно
     
  9. Dimitar

    Dimitar Гость

    Спасибо за ответ!
    Боюсь это не подойдет. В БД хранится куча вложений, формировать руками запрос не рационально, кажется...
    Попытаюсь рассказать подробней о задаче. Есть БД, в ней лежат вложения и описания к ним. (вложений много!) Необходимо просто вывести на страницу описания вложений и ссылки для скачивания самих вложений.
    причем БД будет пополняться/изменяться. поэтому ссылки для скачивания вложений должны всегда формироваться сами из БД...
    мне подсказали формулу формирования ссылок вложений:
    Код (Text):
    "<a href=\"/"+@WebDbName+"/0/"+@Text(@DocumentUniqueId)+"/$file/"+@AttachmentNames+"\">"+@AttachmentNames+" ("+@Text(@AttachmentLengths)+"b)</a>"
    Но эта конструкция не работает в PHP...
    Надеюсь объяснил... :)
     
  10. acorn

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    Dimitar
    а что означает у вас собака в @WebDbName например?
     
  11. Dimitar

    Dimitar Гость

    Как я понял это язык формул в Лотусе... собственно это решение. не пойму как его включить в ПХП. и можно ли вообще
     
  12. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Acorn
    @WebDbName - путь к лотусовой БД (c указанием имени файла БД) относительно каталога данных лотус-сервера.
    "/0/" - вместо имени лотус-вьюхи
    @Text(@DocumentUniqueId) - идентификатор лотус-документа в лотусовой БД
    "/$file/" - для доступа к файл-аттачам лотус-документа
    @AttachmentNames - собственно имена аттачей лотус-документа
    Т.е. для лотуса это вполне нормальный урл, который лотусовая задача http понимает и показывает в браузере нужный аттач из лотусовой БД.
     
  13. acorn

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    тогда каким боком эта "конструкция" должна работь в пхп?

    Исходные данные: у вас есть нейкая БД, необходимо к ней подключиться на php и вывести список ссылок на файлы?
     
  14. Dimitar

    Dimitar Гость

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

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

    hosm * so what *

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

    Dimitar Гость

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.077
    Симпатии:
    300
    практически - никак, да и зачем если парсить ответ от задачи хттп?
    запрашивайте все(?) ентрисы (?ReadViewEntries) вьюшки (вопрос тока какой) и получаете ИД доков (noteid)
    далее - можно из 0-вого вью получить аттачи (и снова - если их имена не выведены на уровень вью - низя их узнать)
    и повторюсь - дизайн вьюшек неизвестен - потому и конкретное решение под вопросом

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

    Добавлено:
    низя вывести их имена! - если дизайном вью не предусмотрено - дык сделайте шоббылО
     
  18. Dimitar

    Dimitar Гость

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.077
    Симпатии:
    300
    по-идее вы работаете из внешней среды и всё что с собаками ей не известно!
    вид урла я указал выше...
    -не поленитесь открыть хэлп дизайнера нотусов - там урлы расписаны
    -NotesSQL вам не поможет (имена аттачей ему не известны)
    -вам придётся изменить нотусовую вьюшку (для получения имён аттачей)

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

    Dimitar Гость

    простите за наглость...она обоснована незнанием Лотус... а каким образом изменить вьюшку для получения имен аттачей?
    и можно ли это сделать, если у меня уже есть готовая БД полная нужной информации?...
     
Загрузка...

Поделиться этой страницей