Lotus и MS Access

Kizarek86

Well-Known Member
Lotus team
20.07.2007
863
6
#1
Как подключить базу *.mdb к Lotus?
Для работы DCR необходимо, чтобы на сервере Domino была установлена и выполнялась задача
DECS или LEI. DCR настраивается в рамках Domino Designer и является совместно используемым
ресурсом. DCR сохраняет время разработчиков, т.к. может быть повторно использован.
Подключить в обход этому можно? Допустим сделать вообще локально? Мб есть другие способы связывания?)
 

Constantin A Chervonenko

Well-Known Member
Lotus team
30.05.2006
1 334
4
#2
*.mdb - это кто/что? ODBC оно поддерживает? Notes odbc поддерживает, даже на "собаках". + 2 набора классов LSX
 

Kizarek86

Well-Known Member
Lotus team
20.07.2007
863
6
#3
Constantin A Chervonenko
Это база Microsoft Access. Поддерживает по описанию. Это понятно что Notes поддерживает, но для этого базу необходимо подключить к серверу Lotus. Если нету сервера, можно ли подключить локально? или же динамически в коде подключать?
 

Constantin A Chervonenko

Well-Known Member
Lotus team
30.05.2006
1 334
4
#4
В Лотусе клиент - почти полноценный сервер. Почти все, что работает на сервере, может работать и на клиенте. Это в обратную сторону ограничений много (из-за UI).
Так что порядок общий:
1. конфигуришь ODBC-источник
2. пишешь код, который из него тянуть будет (например @DbLookup( "ODBC" : cache ; "data_source" ; "user_ID1" : "user_ID2" ; "password1" : "password2" ; "table" ; "column" : "null_handling" ; "key_column" ; "key" ; "Distinct" : "sort" ); или на LS - читай про LSX или LS:DO)
3. или не пишешь код, а в св-вах поля формы взводишь External source!
 
D

Dimly

Гость
#5
Проблема чтения двоичных полей BLOB/image/OLE из баз MDB Access

Читаю MDB базу через ADO
<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='ls'>Set ADOConn = CreateObject("ADODB.Connection")
ADOConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=base.mdb;Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=pass"
Set ADORecSet = CreateObject("ADODB.recordset")
Call ADORecSet.Open("select * from table", ADOConn)

While Not( ADORecSet.eof)
Print Cstr(ADORecSet("filedOLE").value)
ADORecSet.movenext
wend[/CODE]Естественно падает по ошибке типов, так как filedOLE в ацессе имеет тип "Поле объекта OLE"

Есть решение чтения данного поля ? Содержит оно текст, причем совершенно не большой - до 1-2 кБ
В самом ацессе не отображается в таблице - показывая в колонке текст "Двоичные данные"
 
D

Dimly

Гость
#6
Нашел следующую весчь

ADORecSet("filedOLE").GetChunk(lenField)

Возвращает массив байт, и если я уверен что должен вернутся текст - просто делаю CHR каждого байта и получаю строку.

Есть более умные способы ?
 
D

Dimly

Гость
#7
Приятно поговорить с умными людьми :D

В общем моя ошибка.. в случае с ОЛЕ полями ADORecSet("filedOLE").value возвращает массив байт, и работать надо как с массивом байт.
И никаких проблем.