Lotus и Php

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

  1. Dimitar

    Dimitar Гость

    Репутация:
    0
    Здравствуйте!
    Есть необходимость сделать вывод в 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 скриптописец

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

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

    Dimitar Гость

    Репутация:
    0
    да, это NotesSQL. services? не слышал такое...(
     
  4. morpheus

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

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

    Dimitar Гость

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

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

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

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

    Dimitar Гость

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

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

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

    Dimitar Гость

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

    acorn PHP Developer
    Web Team

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

    Dimitar Гость

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

    hosm * so what *

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

    acorn PHP Developer
    Web Team

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

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

    Dimitar Гость

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

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

    hosm * so what *

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

    Dimitar Гость

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

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

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

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

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

    Dimitar Гость

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

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

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

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

    Dimitar Гость

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

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