Lotus и db2

  • Автор темы Автор темы johny
  • Дата начала Дата начала
Если сервера Domino 8 версии или выше, то открываем дизайнер и создаем Data - DB2 Access View.

Дык IBM отказался от DB2 Access View. В следующих версиях его не будет.
Или я что-то путаю?

Добавлено:
Да, похоже я напутал. Читал я .

Кто в данной области разберается - подскажите NSFDB2 и DB2 Access View совсем разные и не связаные между собой вещи?
 
насколько, я помню, IBM отказался от дальнейшей доработки/разработки данного решения.
А то что уже написано, будет использоваться и дальше.
 
>>А там какие поля выбирать, которые хочешь экспортнуть в DB2?

да

>>Можно немного поподробнее? начиная с слова "поднять" :). Я очень далек от администрирования, хотел бы хоть бы немного понять, чтобы объяснить людям что мне нужно

Вообще-то это проблемы администраторов :)
Но, если коротко, то принцип след.:
поднимаем на одном сервере сервис DB2 и LD (Поднимайте именно на одном, потому что по сети экспорт данных может занимать несколько дней и работать некорректно. Тестировали не раз.)
После это в LD создаем документ сервера именно для DB2 с опцией DB2 Access Server Only.
Заполняем документ сервера LD, который будет передавать данные на сервер DB2, на закладке DB2.
Используя опцию Enable Server for DB2 донастраиваем связку.
Запускаем все это дело и донастраиваем права.
После чего конвертим базы *.Nsf, для включения опции Db2 enable
 
АП!

У меня следующая проблема ... есть внешная БД DB2 ... адресс, порт, название БД, логин и пасс ... через клиента к БД ... подключаюсь ... выполняю запросы ... Но как только поздаю ЛЮБЫЕ соединения в лотусе ... валятся ошибки

например
Dim connect As New LCConnection ("db2")
Connection failed with error 217: Error creating product object

прошу написать по шагам ...
может у меня каких нить библиотек не хватает ...
 
Задача и условия.
Есть Lotus Notes 8.5.3 и DB2 Express-C 9.7.5. Нужно сделать чтобы данные хранились в DB2.

Посоветуйте что делать\что читать.
 
Дык IBM отказался от DB2 Access View. В следующих версиях его не будет.
насколько, я помню, IBM отказался от дальнейшей доработки/разработки данного решения.
А то что уже написано, будет использоваться и дальше.
Судя по ссылке .

For customers that begin with IBM Lotus Domino 8.5.2, NSFDB2 will no longer be available. NSFDB2 will continue to function for customers running earlier releases of Domino that included it, but will require administrators to contact IBM Support and acquire necessary files to be added to the installation. For details, see the linked technotes.

If your organization uses NSFDB2 as of 8.5.1, refer to the following tech notes to learn how to maintain your support of the feature. If your organization does not use NSFDB2, you don't need to do anything.

* Tech Note #1415018: How to disable the NSFDB2 feature in Domino
* Tech Note #1414980: Domino install fails with NSFDB2 Limited Availability message
* Tech Note #1415128: How to initiate a request for the NSFDB2 license key

Как вариант (неплохой вариант): LCConnection, смотрите, в хэлпе (там как раз есть примеры для db2) и на форуме тема есть об этом.
Спасибо.
 
Help!

Спасибо большое за подсказки с LCConnection. Попробовал реализовать, но у меня валится на строке "Call Connection.Insert(LCRecord)". Сообщение:
<Error 12325: Error [IBM][CLI Drivers][DB/NT] SQL0407N Assignment of a NULL value to a NOT NULL column "TBSPACEID=3, TABLEID=6, COLNO=0" is on line 36>

<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">
Код:
Option Declare
UseLSX "*lsxlc" 

Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim coll As NotesDocumentCollection
Dim doc As NotesDocument
Dim connection As New LCConnection ("db2")
Dim LCRecord As New LCFieldList
Dim fPeopleFIO As LCField
Dim i As long

On Error GoTo ErrHandle

Set db = session.CurrentDatabase
Set coll = db.Search(|Form="People"|, Nothing, 0)

If coll.count >0 Then

connection.Database = "SAMPLE"
connection.Userid = "db2admin"
connection.Password = "******"
connection.Metadata = "TablePeople"
Call connection.Connect
Print "Successfully connected to DB2."

i = 0
Set doc = coll.Getfirstdocument()
While Not doc Is Nothing

Set LCRecord = New LCFieldList			
Set fPeopleFIO = LCRecord.Append("FIO", LCTYPE_TEXT) 
fPeopleFIO.value = doc.Getitemvalue("pFIO")(0)			

Call Connection.Insert(LCRecord)

i = i +1
Print CStr(i)
Set doc = coll.GetNextDocument(doc)
Wend

connection.Disconnect
Print "Successfully disconnected from DB2."
End If	

Exit Sub
ErrHandle:
Print "Error" & Str(Err) & ": " & Error$ & " on line " & CStr(Erl)
End Sub
Правильно ли я понимаю что все же нужен драйвер JDBC?
 
Сообщение "Assignment of a NULL value to a NOT NULL column" означает, что Вы пытаетесь записать значение Null в столбец, который этого не позволяет (я кэп :) ). Скорее всего Вы не указали значение для этого столбца и у него отсутствует значение по умолчанию. Драйвер JDBC в такой ситуации вернул бы аналогичную ошибку.
 
Если задача заключается в том, чтобы перенести данные из лотусовой базы в DB2, то по-моему проще DECS использовать, чем на LC LSX что-то ваять (хотя конечно зависит от объемов).
 
nvy
Тем не менее вы мне очень помогли, спасибо. Я не работал ранее с db2(третий день как установил) и за те пару дней что разбирался в голове образовалась каша. Я поменял в свойствах столбцов
1. Default Value (этого оказалось недостаточно и та же ошибка появлялась и дальше)
2. Nullable с "No" на "Yes" (теперь позволяет записывать значение Null)

Кирилл Шваб
Надо посмотреть что за зверь такой DECS)
 
Надо посмотреть что за зверь такой DECS)
Оно использует тот же механизм LCConnection, но всё делается настройками в отдельной БД, созданной по определённому шаблону (он есть на сервере). Для простой логики переноса <Lotus_документ> -> <RDB_запись> и <Lotus_поле> -> <RDB_поле> этого достаточно, для более сложной - программинг с LCConnection.
У меня когда-то с наскока DECS не получилось одолеть.. программинг как-то ближе)

Достоинства DECS'а (это задача на сервере) в том, что он может отслеживать изменения доков по определённой форме и автоматом переносить их в реляционку, т.е. не надо встраивать никакого кода на события форм.

P.S. Спасибо за решение по ошибке, добавлю в свою тему, чтобы типа FAQ было.
 
VladSh, спасибо за пояснения. Ваше тема это не эта LCConnections часом? Хорошая тема) Мне помогла)
 
Nikitoss, да) завтра туда ещё постараюсь чего-нибудь полезного сгрузить)
 
Мы в соцсетях:

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