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

  • Автор темы lepa
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

lepa

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

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 можно чуть поточнее??
 
O

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
 
L

lepa

Итак создал одбси pd, привязал к базе ACCESS, нашел пример в хелпе, но на result.Execute уходит в ошибку и пишет NO ERROR где грабли помогите пжл.
Код:
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
 
O

oshmianski

Итак создал одбси pd, привязал к базе ACCESS, нашел пример в хелпе, но на result.Execute уходит в ошибку и пишет NO ERROR где грабли помогите пжл.

Я делал вот так. И вообще, мне так и не удалось получить ошибку через ODBC.
Код:
...
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
...
 
D

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]

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

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]
а тут даже не указана таблица(( совсем запутался(
Хотя возможно прокатит метод
Код:
qry.SQL = "insert into table (doc_number) values ('Тест')"
Let result.CacheLimit = DB_NONE
Let result.FetchBatchSize = 1
Let result.MaxRows = 1000000
result.Execute
и к стати прокатил))))


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

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

oshmianski

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

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

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
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!