Как из лотуса поключится к Access

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

Статус темы:
Закрыта.
  1. lepa

    lepa Гость

    Добрый день знатоки, возникла задачка экспортировать базу из лотуса в Access, как можно подключится к Access, вставлять туда записи (Sql запросом или еще как нибудь).
    Спасибо за рание!!
     
  2. oshmianski

    oshmianski Гость

    Юзайте ADO или ODBC + LSX
     
  3. Domino6

    Domino6 Гость

    Экпорт в *.csv
     
  4. lepa

    lepa Гость

    <!--QuoteBegin-oshmianski+3:05:2006, 12:12 -->
    <span class="vbquote">(oshmianski @ 3:05:2006, 12:12 )</span><!--QuoteEBegin-->Юзайте ADO или ODBC + LSX
    [snapback]34789" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Про LSX можно чуть поточнее??
     
  5. oshmianski

    oshmianski Гость

    <!--QuoteBegin-lepa+3:05:2006, 10:57 -->
    <span class="vbquote">(lepa @ 3:05:2006, 10:57 )</span><!--QuoteEBegin-->Про LSX можно чуть поточнее??
    [snapback]34813" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Все просто. Создаем пустую Access бд. Настраиваем ODBC к ней и юзаем из бд LSX (классы для доступа к внешним базам данных через ODBC-интерфейс). Описалово могу выслать. Вот выдержка:

    "...Классы ODBCConnection, ODBCQuery и OBDCResultSet предлагают свойства и методы для доступа из приложений Notes к внешним базам с использованием стандарта ODBC. Сами эти классы только реализуют интерфейс между приложением Notes и нужным ODBC-драйвером через стандартный ODBC-интерфейс.
    Для доступа к этим классам Вы должны включить в скрипт события (Options) объекта (Global) оператор
    UseLSX "*LSXODBC"

    Этот оператор осуществляет загрузку в память библиотеки динамической компоновки, реализующей классы....
    ...Класс ODBCConnection представляет возможности стандарта ODBC по подключению к источникам данных.

    Класс ODBCQuery представляет возможности стандарта ODBC по определению запросов на данные из источника.
    Класс ODBCResultSet предоставляет разные возможности по работе с таблицей результатов...."

    зы: еще можно попробовать копнуть в сторону NotesSQL
     
  6. lepa

    lepa Гость

    Итак создал одбси pd, привязал к базе ACCESS, нашел пример в хелпе, но на result.Execute уходит в ошибку и пишет NO ERROR где грабли помогите пжл.
    Код (Text):
    Sub Click(Source As Button)
    Dim con As New ODBCConnection
    Dim qry As New ODBCQuery
    Dim result As New ODBCResultSet
    Dim firstName As String
    Dim lastName As String
    Dim msg As String
    On Error Goto errorHandler
    Set qry.Connection = con
    Set result.Query = qry
    con.ConnectTo("pd")
    qry.SQL = "SELECT * FROM TABLE"
    result.Execute
    result.AddRow
    result.Execute
    result.AddRow
    Call result.SetValue("doc_number", "Тест")
    result.UpdateRow       
    con.Disconnect
    errorHandler:
    Messagebox result.GetExtendedErrorMessage,, _
    result.GetErrorMessage
    Exit Sub
    End Sub
     
  7. oshmianski

    oshmianski Гость

    Я делал вот так. И вообще, мне так и не удалось получить ошибку через ODBC.
    Код (Text):
    ...
    Set qry.Connection = con
    qry.SQL = "SELECT ..."

    If Not qry.GetError = DBstsSUCCESS Then
    Print "Query Error ..."
    Goto ex
    End If

    Set res.Query = qry
    Let res.CacheLimit = DB_NONE     
    Let res.FetchBatchSize = 1
    Let res.MaxRows = 1000000
    If Not res.Execute Then  
    Print "Result Error ..."   
    Goto ex
    End If
    ...
     
  8. Domino6

    Domino6 Гость

    <!--QuoteBegin-lepa+29:05:2006, 09:48 -->
    <span class="vbquote">(lepa @ 29:05:2006, 09:48 )</span><!--QuoteEBegin-->con.Disconnect
    Exit Sub
    errorHandler:
    Messagebox result.GetExtendedErrorMessage,, _
    result.GetErrorMessage
    Exit Sub
    End Sub
    [snapback]36920" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Перед хендлером ставь выход. Просто код идет дальше(это ведь лебел) и действительно ошибки нет вот и выдает
     
  9. lepa

    lepa Гость

    Меня вот что больше всего смущает
    метод result.AddRow должен добавить строку в таблицу, но в каую, т.е. я как понял сеачало должен что то выбрать из этой таблицы а после этого туда добавлять новые записи, или я каким то другим образом должен открыть эту таблицу???
    <!--QuoteBegin-oshmianski+29:05:2006, 12:29 -->
    <span class="vbquote">(oshmianski @ 29:05:2006, 12:29 )</span><!--QuoteEBegin-->Set qry.Connection = con
    qry.SQL = "SELECT ..."
    [snapback]36927" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    а тут даже не указана таблица(( совсем запутался(
    Хотя возможно прокатит метод
    Код (Text):
    qry.SQL = "insert into table (doc_number) values ('Тест')"
    Let result.CacheLimit = DB_NONE
    Let result.FetchBatchSize = 1
    Let result.MaxRows = 1000000
    result.Execute
    и к стати прокатил))))


    Всем огромное спасибо в решение данной проблемы))
    На последок чтобы не плодить посты, как мне сохранить приатаченый документ на диске??
    Спасибо за рание!

    Всем огромное спасибо в решение данной проблемы))
    На последок чтобы не плодить посты, как мне сохранить приатаченый документ на диске??
    Спасибо за рание!
     
  10. oshmianski

    oshmianski Гость

    Объект класса ODBCResultSet представляет возможности стандарта ODBC по выполнению операций с таблицей результатов (result set). Таблицу результатов можно рассматривать как некоторый буфер в памяти выполняющего скрипт компьютера, в который из источника данных заносится информация в соответствии с запросом на SQL. Программист может оперировать с информацией из этой таблицы, изменять информацию в ней, а в определенные моменты времени заносить информацию из таблицы в базу данных в источнике.
    Методы класса позволяют создать соответствующую запросу таблицу результатов, перемещать курсор по записям таблицы, определять тип и свойства полей записи, получать информацию из полей текущей записи, изменять информацию в полях текущей записи, добавлять в таблицу новые записи, удалять записи из таблицы, заносить изменения из текущей записи таблицы в источник данных, закрывать таблицу результатов.

    делать result.Execute не сколько раз не есть правильно. чтаем мат. часть:
    Обычно последовательность действий такова: вызываем AddRow для создания пустой записи в ADDROW workspace; используя SetValue, заносим в поля записи нужные данные; вызываем UpdateRow для помещения записи в источник данных, а если база поддерживает отложенные транзакции, то еще и Commit или Rollback. Учтите, что в ADDROW workspace может находиться только одна запись.
     
  11. IsAvailable

    IsAvailable Гость

    <!--QuoteBegin-oshmianski+3:05:2006, 13:24 -->
    <span class="vbquote">(oshmianski @ 3:05:2006, 13:24 )</span><!--QuoteEBegin-->Описалово могу выслать.
    [snapback]34817" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Если не трудно, скинь, пожалуйста, на alg2003 @ inbox.ru
     
  12. IsAvailable

    IsAvailable Гость

    Для: oshmianski
    Большое спасибо!
     
Загрузка...
Статус темы:
Закрыта.

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