пятница, 30 октября 2015 г.

Обновление дизайна БД для версий 6,7 с помощью api функций notes.


Const wAPIModule = "NNOTES"  ' Windows
Const NSF_INFO_SIZE = 128
Const INFOPARSE_DESIGN = 3
Const NOTE_ID_ICON = &HFFFF0010
Declare Private Function DesignRefresh Lib wAPIModule Alias "DesignRefresh" _
(  Byval S As String, Byval hDB As Long, Byval F As Long, Byval zA As Long, Byval zM As Long) As Integer
Declare Private Function OSPathNetConstruct Lib wAPIModule Alias "OSPathNetConstruct" _
(  Byval zP As Long, Byval S As String, Byval F As String, Byval N As String) As Integer
Declare Private Function NSFDbInfoGet Lib wAPIModule Alias "NSFDbInfoGet" _
(  Byval hDB As Long, Byval D As String) As Integer
Declare Private Sub NSFDbInfoModify Lib wAPIModule Alias "NSFDbInfoModify" _
(  Byval S As String, Byval W As Integer, Byval D As String)
Declare Private Function NSFDbInfoSet Lib wAPIModule Alias "NSFDbInfoSet" _
(  Byval hDB As Long, Byval D As String) As Integer
Declare Private Function NSFDbOpen Lib wAPIModule Alias "NSFDbOpen" _
(  Byval P As String, hDB As Long) As Integer
Declare Private Function NSFDbClose Lib wAPIModule Alias "NSFDbClose" _
(  Byval hDB As Long) As Integer
Declare Private Function NSFItemSetText Lib wAPIModule Alias "NSFItemSetText" _
(  Byval hNT As Long, Byval N As String, Byval D As String, Byval nD As Integer) As Integer
Declare Private Function NSFNoteOpen Lib wAPIModule Alias "NSFNoteOpen" _
(  Byval hDB As Long, Byval NoteID As Long, Byval F As Integer, hNT As Long) As Integer
Declare Private Function NSFNoteClose Lib wAPIModule Alias "NSFNoteClose" _
(  Byval hNT As Long) As Integer
Declare Private Function NSFNoteUpdate Lib wAPIModule Alias "NSFNoteUpdate" _
(  Byval hNT As Long, Byval F As Integer) As Integer

Sub ReplaceDesign(templateserver$, templatename$, dbserver$, dbfilepath$)
     dp$ = String(1024, " ")
     OSPathNetConstruct 0, dbserver$, dbfilepath$, dp$

     Dim hDB As Long
     NSFDbOpen dp$, hDB
     If hDB = 0 Then Exit Sub

     d$ = Space(NSF_INFO_SIZE)
     NSFDbInfoGet hDB, d$
     NSFDbInfoModify d$, INFOPARSE_DESIGN, templatename$
     NSFDbInfoSet hDB, d$
     Dim hNT As Long
     NSFNoteOpen hDB, NOTE_ID_ICON, 0, hNT
     NSFItemSetText hNT, "$TITLE", d$, Instr(d$, Chr$(0))
     NSFNoteUpdate hNT, 0
     NSFNoteClose hNT
     DesignRefresh templateserver$, hDB, 1, 0, 0

     NSFDbClose hDB
End Sub

Ссылка на источник

Комментариев нет:

Отправить комментарий