Использование LSX

Тема в разделе "Lotus - Программирование", создана пользователем Kee_Keekkenen, 18 июн 2007.

  1. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    хотелось бы узнать использует(зовал) ли кто данную библиотеку, какие ограничения и проблемы встречаются ? под какие задачи использовалось решения с участием этой либы ?

    ну и соответственно, интересно использовали ее в конструкциях типа - пользовательский интерфейс в лотусе, данные в DB2 (oracle и т.д.)
     
  2. Hedg

    Hedg Гость

    Я юзаю, проблем особых не было, разве что с пробелами были траблы, когда доставал из базы значения с проблеми забыл указать res.TrimTrailingSpaces = False и долго парился с ошибкой.
     
  3. K-Fire

    K-Fire Гость

    LSX это общее название, не какая-то конкретная библиотека.
    Поэтому вопрос: что за lsx то собственно? :)
     
  4. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    Для: Hedg

    а на каких задачах, собственно, используется ?


    Для: K-Fire

    имелось ввиду данные класы:
    LCSession, LCConnection, LCFieldlist, LCField, LCStream, LCNumeric, LCCurrency, LCDatetime
     
  5. Hedg

    Hedg Гость

    Задача стотит, вытягивать данные из SyBase в Лотус. Данные - накладные продаж, и формирование отчётов на основе полученных данных.
     
  6. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Так в чем и прелесть-то: конкретная библиотека выбирается уже на run-time (у меня оно лежит в настройках, в профайле)!
    По сути вопроса:
    юзаю давно, успешно. Глюков мало. Из особенностей:
    1.не все библиотеки на LCConnect.Select возвращают счетчик (Oracle всегда - UNKNOWN (-1))
    2.Дежурный баг - кириллица. Если хост-кодировка отличается от кодировки клиента, можно получить "иероглифы". Баг зарепорчен в IBM, но не признан. Workaround-ы известны
     
  7. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    Для: Constantin A Chervonenko.

    1. в хелпе написано что LSX может работать в двух режимах стандартном и LEI ..
    т.е. если мы не купили LEI, то значит работаем в стандартном режиме, я правильно понимаю ?

    2. можете дать пару комментариев по поводу того, как организовать пулл подключений ?

    3. каким образом создать коннекшн, если лотус находится на одной машине, а реляционная база на другом ?
    возможно это или все должно находиться на одной машине ?
     
  8. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    1.Под LEI не программировал ничего
    2.Не понял вопроса
    3.А у тебя как Лотусёвые формы и т.п. на юзерском ПК работают? База-то на др.машине. Клиент-сервер однако. С СУБД аналогично. На Лотусе тебе нужен СУБДшный клиент, а где уж сама база...
     
  9. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    по поводу вопроса 2.
    что написано в хелпе про пулл соединений я не совсем понял, вроде как там написано, что пулл соединений с бд как-то там сам по себе формирует подключения пользователей к бд

    по пункту 3
    вопрос заключался в том, что при формировании соединения указываются имя БД, логин, пароль..
    и собственно не понятно как lotus определяет реляционка находится на этом же пк или на другом ?

    если домино на одном сервере, а ДБ2 на другом, то как прописать соединение ?
     
  10. Hedg

    Hedg Гость

    Для: Kee_Keekkenen
    по пункту 3
    Данные берутся из настроек ODBC из системных DSN, в которых указан драйвер для работы с конкретной базой, логин, пароль, адрес и порт базы.

    Настраивается это всё в Панель Управления /Администрирование/Источники данных (ODBC)
     
  11. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    А.. Да, было что-то такое. Пошли какие-то глюки - не юзаю
    Для СУБДы Лотус - обычный клиент. Так что разбираться, где физически лежит база - не Лотусиное дело. Лотус к СУБД обращается через АПИ соотв.клиента (SQLNet для Oracle к примеру).
    К стати: при подключении к Oracle что есть идя БД? На самом деле там либо Connection string (это такое нехилое выражение о десятке параметров) либо ссылка на оное в tnsnames.ora
    В промышленных СУБД БД - вовсе не файл!
     
  12. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    Для: Hedg

    вообще-то lsx (lcconnection и иже сним) вроде не использует odbc в принципе, хотя я возможно и ошибаюсь, но тогда непонятно как происходит соединение, потому что никаких настроек оdbc я не создаю вообще (может lsx создает ? но я так не думаю..)

    Для: Constantin A Chervonenko

    да, с этим все понятно..
     
  13. Hedg

    Hedg Гость

    Для: Kee_Keekkenen

    Покажу кусок своего кода
    Код (Text):
    Dim con As New ODBCConnection
    Dim qry As New ODBCQuery
    Dim res As New ODBCResultSet
    Dim fRc As Integer
    Dim strProductID As String
    strProductID=""

    Dim sSQL As String
    Dim sSQL1 As String
    Dim sSQL2 As String
    Dim sORDER As String

    sSQL1="SELECT number_doc from lotus.v_sales_wholesale where date_check="
    sORDER=" ORDER BY number_document"
    sSQL=sSQL1+sDataSQL+sORDER

    Код (Text):
    Function GetODBCNAme (sBase As String) As String
    Dim sODBC As String

    If sBase="одесса" Then
    sODBC="base7_01"
    End If

    If sBase="масмаркет" Then
    sODBC="trademas"
    End If 

    If sBase="элита" Then
    sODBC="uel"
    End If

    GetODBCNAme=sODBC
    End Function
    base7_01, trademas, uel - это системные DSN, которые настраиваются в ODBC.
     
  14. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    я так понимаю мы говорим о немного разных вещах..
    ты используешь UseLSX "*LSXODBC", а я Uselsx "*lsxlc" и соответственно подключение выглядит иначе

    Sub new (dbName As String, userLogin As String, userPass As String, tableName As String)
    try:
    On Error Goto catch
    Set db2session = New LCSession
    Set db2conn = New LCConnection("db2")
    db2conn.database = dbName
    db2conn.userid = userLogin
    db2conn.password = userPass
    db2conn.metadata = tableName
    db2conn.Connect
    Print "Подключение к " + db2conn.database + " выполнено."
    Exit Sub
    catch:
    If Err = 12325 Then
    Print "Нет связи с базой "+dbName, "Сервер DB2 не запущен !"
    Else
    Print Cstr(Err) + " " + Error + " " + Cstr(Err), Cstr(Getthreadinfo(1)) + " from " + Cstr(Getthreadinfo(10))
    End If
    Exit Sub
    End Sub
     
  15. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Немножко ошибаешься. lsx может использовать ODBC, это просто один из коннекторов:

    Set db2conn = New LCConnection("odbc2")

    Полезная штука - для всяк старья (типа dbf) и связи с M$. Я таким образом к 1С подрубаюсь (на SQL Server-е). Настройки там расползаются по двум местам: наша прикладушка+ODBC. В панели управления odbc логин-пароли не пишу, конкретные таблицы - тоже. Но сервер, ip, порты...
     
Загрузка...

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