Lotus и MySQL (ODBC)

Тема в разделе "Lotus - Программирование", создана пользователем yerke, 3 мар 2008.

  1. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    Привет всем знатокам Лотуса!

    Подскажите, как импортнуть данные в MySQL (on Linux) из Lotus (on NT)?
     
  2. Sandr

    Sandr Гость

  3. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    а другого выхода нету
    то есть напрямую работать с таблицами базы мускула
    с лотус
     
  4. Sandr

    Sandr Гость

    Да нет, много способов на самом деле... Это я так...
    Используйте ОDBC connectors.. DECsы ам всякие...
     
  5. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    Sandr
    сделал через mysql odbc connector
    минус № 1: работает тока там где установлен дрова от mysql odbc connector и при настроенном источнике данных
    минус № 2: делаю экспорт с помощью лотус (используя mysql odbc connector) из базы мускула в базу лотуса,
    кодировка таблиц и полей мускула на ютф-8 и через пхп все данные отображаются нормально

    но если скинуть данные мускула на лотусовское поле, то получается абра кадабра
    пробовал скинуть эти данные в текстовый файл через нотесстрим с чарсетом ютф-8, результат тотже = абра кадабра

    ПОЧЕМУ
    :(
     
  6. Sandr

    Sandr Гость

    пробуйте Unicode.
     
  7. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    тоже не катит
    блин что делать
     
  8. Sandr

    Sandr Гость

    Вообще странно, что юникод не катит, должен.
    А кусочек кода можете представить на публику?
     
  9. K-Fire

    K-Fire Гость

    в настройках ODBC-драйвера на 2й закладке в Initial Statement написать SET NAMES cp1251; (точка с запятой обязательна).

    А по поводу настройки драйверов - лучше запускать код синхронизации на сервере, там же и ставить драйвер в единственном числе
     
  10. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Во-во, поддерживаю.
    Про кодировки: в LSX есть старинный баг. При работе с Oracle ловится 100%-тно. Я постил его в IBM - не сознаются.
    Workaround - воспользоваться возможностями NotesStream и аналогичным LCStream. Там есть перекодировки
     
  11. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">кусочек кода</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='vb'>Option Public
    Option Declare
    Uselsx "*LSXODBC"

    Dim con As ODBCConnection
    Dim qry As ODBCQuery
    Dim result As ODBCResultSet
    '=
    Dim TITLE
    Dim TEXTS
    '=
    Dim session As NotesSession
    Dim stream As NotesStream
    Dim fn As String

    Sub Initialize
    Set con = New ODBCConnection
    Set qry = New ODBCQuery
    Set result = New ODBCResultSet
    '=
    Set qry.Connection = con
    Set result.Query = qry
    '=
    con.ConnectTo("Lotus_MySQL")
    qry.SQL = "SELECT * FROM News"
    '=check if the qwery is ok
    If Not result.Execute Then
    Messagebox result.GetExtendedErrorMessage,, _
    result.GetErrorMessage
    Exit Sub
    End If
    '=check rows
    If Not result.IsResultSetAvailable Then
    Messagebox "Result set not available",, _
    "No result set"
    Exit Sub
    End If
    If result.NumRows=0 Then
    Messagebox "No rows",, _
    "No result set"
    Exit Sub
    End If
    '=
    If Dir$("C:\Temp",16)="" Then Mkdir "C:\Temp"
    fn="C:\Temp\Lotus_MySQL_ODBC_UTF-8.txt"
    '=
    Set session = New NotesSession
    Set stream=session.CreateStream
    Call stream.Open(FN, "utf-8") '= Call stream.Open(FN, "unicode") tozhe ne katit
    '=
    Do
    result.NextRow '=in first call NextRow return 1-st row
    Call Result.GetValue("TITLE", TITLE)
    Call Result.GetValue("TEXTS", TEXTS)
    '=
    Stream.WriteText(Cstr(TITLE)+chr(13))
    Stream.WriteText(Cstr(TEXTS)+chr(13))
    '=
    Loop Until result.IsEndOfData
    '=
    result.Close(DB_CLOSE)
    con.Disconnect
    '=
    Call Stream.Close
    End Sub[/CODE]
    не помогает

    ?????
     
  12. Sandr

    Sandr Гость

    А если использовать MIME?
     
  13. VooDoo

    VooDoo Гость

    а раскажите чуть подробнее пожалуйста, я в этом вопросе ламер полный. Что собой представлет конектор де можно взять?

    Спасибо
     
  14. puks

    puks Lotus team
    Lotus team

    Регистрация:
    3 фев 2007
    Сообщения:
    1.967
    Симпатии:
    16
    Чтобы пользоваться коннектором, тебе придется писать на скрипте. Открываешь хэлп разработчика и смотришь ODBC.
     
  15. VooDoo

    VooDoo Гость

    Ок. Попробую самостоятельно что-то сделать. Ждите ламерских вопросов ))))

    Спасибо большое
     
  16. Dimly

    Dimly Гость

    LCStream не пашет... Из результирующего LCFieldList уже данные не просто в UTF-8 - а искаженные неверной кодировкой содединения.

    Есть еще мысли ? Или только АДО ? Есть наработки по АДО ?

    Не нашел.. MicroSoft Access Driver не имеет второй закладки настроек
     
  17. vincent_vega

    vincent_vega Lotus team
    Lotus team

    Регистрация:
    2 апр 2005
    Сообщения:
    165
    Симпатии:
    1
    JDBC
     
  18. Dimly

    Dimly Гость

    Когда можно и удовлетворяет код на скрипте - яву в сад. Она хороша для илишеств которые лотусу не под силу.

    При работе через ОДБС - дохнет UTF-8.
    Лечится работой ADO через ОДБС, или даже напрямую через ADO. Оба имеют плюсы и минусы из-за настроек или расположения файлов.

    Вот кусок варианта 1
    Код (Text):
        Set connect=CreateObject("ADODB.Connection")
    connect.Properties("User ID") = "login"
    connect.Properties("Password") = "pass"
    connect.Open("DSN=<имя ОДБС конектора>")
    Set cmd=CreateObject("ADODB.Command")
    Set cmd.ActiveConnection=connect

    strSelect = | select * From table where ... |

    cmd.CommandText= strSelect

    Set record=cmd.Execute()
    Вот кусок варианта 2
    Код (Text):
    ' Create ADO Connection Component to connect with database
    Set oConn = CreateObject("ADODB.Connection")
    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFileName
    ' Execute a SQL query and store the results within recordset
    Set oRs = oConn.Execute("SELECT FirstName,LastName,Company From Contacts")

    Do While (Not oRs.eof)
    .....
     
  19. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    яб не посылал яву в сад и особливо в этом случае (а ежели дорог скрипт - LS2J) ;)
    и причина проста - установка и настройка пердулек типа ОДБЦ и АДО - гимор, а уж о переносимости и воще не стоит заикаться
    и уж тем паче - смешно это выглядит для мускуля, родина кот. - точно не винда
     
  20. allex

    allex Гость

    Через java-conector все замечательно работает, и UTF-8 отлично понимается

    Зато решается проблема переносимости кода. Переустановили винду или на другой машине решили поставить клиента, а про ODBC забыли...
     
Загрузка...

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