Импорт базы данных Lotus Notes в Access / SQL - А как насчет документов? - PullRequest
1 голос
/ 21 сентября 2010

У меня есть несколько «баз данных» Lotus Notes, которые я хотел бы импортировать в Access или SQL.

Я думаю, что у меня есть большинство шагов вниз (установить драйвер ODBC для NotesSQL, настроить соединение ODBC с LotusDB, импортировать данные в Access), но я не могу понять, что делать со всеми документами, например: Word-файлами, PDF-документами, книгами Excel, которые были в Lotus DB.

Lotus Notes DBполон их.После импорта я замечаю таблицу в Access, которая называется «Документы», но я не знаю, что с ней делать.Я вижу строку / запись для каждого документа в Lotus DB, но это не похоже на SQL, где есть столбец для фактических данных файла.

Пожалуйста, дайте мне знать, как я могу на самом деле использовать документы, которые я извлекаюLotus DB.

1 Ответ

2 голосов
/ 21 сентября 2010

Лучше всего извлечь документы из базы данных и сохранить их в общей папке.Это даст вам наибольшую гибкость.Чтобы сохранить связь с исходными документами Notes, вы можете экспортировать их с именами файлов или в папки с именами папок, которые содержат идентификатор связанной записи в Access.Или, по крайней мере, убедитесь, что записи содержат путь к документу.

Я не верю, что вы можете извлекать вложения через драйвер NotesSQL.

Вот пример сценария, который вы можете вставитьАгент для извлечения вложений из вашей базы данных: (из http://www.notes411.com/dominosource/tips.nsf/0/4F1FF33C52F08D76802570C2003A2FD6!opendocument)

Sub Initialize 
      Dim session As New NotesSession 
      Dim db As NotesDatabase 
      Dim collection As NotesDocumentCollection 
      Dim doc As NotesDocument 
      Set db = session.CurrentDatabase 
      Set collection = db.UnprocessedDocuments 
      Set doc = collection.GetFirstDocument() 
      While Not(doc Is Nothing) 
            Call extractMyAttachment( doc ) 
            Set doc = collection.GetNextDocument(doc) 
      Wend 
End Sub 

Function extractMyAttachment (doc) 
      Dim emb As Variant 
      Dim nid As String 

      nid = doc.NoteID 

      Dim rtitem As Variant 

      Set rtitem = doc.GetFirstItem( "Body" ) 

      Dim pathName As String, fileName As String, mydir As String, 
newfilename As String 
      mydir = "Coda" 
      pathName$ = "P:\" & mydir 

      fileName$ = Dir$(pathName$, 16) 

      Dim boxType As Long, answer As Integer 
      boxType& = 36 

      If fileName$ = "" Then 
            answer% = Messagebox("Directory "& pathName$ &" does not exist, 
would you like to create it ?", boxType&, "Create" & mydir & " on P:\ ?") 
            If answer% = 6 Then 
                  Mkdir pathname$ 

                  fileName$ = Dir$(pathName$, 16) 

                  If filename$ <> "" Then 
                        If ( rtitem.Type = RICHTEXT ) Then 

                              Forall o In rtitem.EmbeddedObjects 
                                    If ( o.Type = EMBED_ATTACHMENT ) Then 
                                          newfilename$ = pathname$ & "\" & 
o.source 
                                          Call o.ExtractFile (newfilename$ 
) 
                                    End If 
                              End Forall 

                        End If 
                  End If 
            End If 

      Else 
            If ( rtitem.Type = RICHTEXT ) Then 

                  Forall o In rtitem.EmbeddedObjects 
                        If ( o.Type = EMBED_ATTACHMENT ) Then 
                              newfilename$ = pathname$ & "\" & o.source 
                              fileName$ = Dir$(NewFileName$, 0) 
                              If fileName$ <> "" Then 
                                    answer% = Messagebox("File "& 
NewFileName$ &" already exists, would you like to overwirite it ?", 
boxType&, "Overwrite" & NewFileName$ & " ?") 
                                    If answer% = 6 Then 
                                          Call o.ExtractFile (newfilename$ 
) 
                                    End If 
                              Else 
                                    Call o.ExtractFile (newfilename$ ) 
                              End If 

                        End If 
                  End Forall 

            End If 
      End If 
End Sub 
...