2015-04-05 51 views
0

我想用VistaDB做一个XML导出数据库。不幸的是,我迷路了。如何使用VistaDB进行数据库备份?

这里是我到目前为止的代码:

Dim instance As IVistaDBDatabase 
    Dim value As System.Int64 

    SaveFileDialog2.InitialDirectory = "C:\" 
    Select Case SaveFileDialog2.ShowDialog() 
     Case Windows.Forms.DialogResult.OK 
      Try 
       instance.ExportXml(SaveFileDialog2.FileName, VistaDBXmlWriteMode.All) 
      Catch ex As Exception 
       MsgBox(ex.ToString) 
      End Try 
    End Select 

我得到的是对象不设置到对象的实例(或类似的东西)。

任何人都可以提供这样的指导?

+0

你在哪里分配你的'实例'变量到一个具体的对象?例如:'instance = getVistaDb()'? – 2015-04-06 09:10:50

回答

0

我能够在旧的代码包的帮助下弄清楚它。 这里是正确的代码:

Dim vdbDatabase As IVistaDBDatabase = Nothing 
    Dim filenameDB As String = SaveFileDialog2.FileName 
    Dim filenameXML As String = SaveFileDialog2.FileName 

    Select Case SaveFileDialog2.ShowDialog() 
     Case System.Windows.Forms.DialogResult.OK 
      Try 

       ' Call the method that will open the connection to the database and return an open IVistaDBDatabase object for the database to us 
       vdbDatabase = DDA.VistaDBEngine.Connections.OpenDDA.OpenDatabase("C:\Ledger.vdb5", VistaDBDatabaseOpenMode.NonexclusiveReadOnly, Nothing) 


       ' Clear the XML Transfer List - this is the list used by the Import/Export methods 
       vdbDatabase.ClearXmlTransferList() 

       ' Loop through the tables in the database and add them to the XmlTransferList 
       For Each tableName As String In vdbDatabase.GetTableNames() 
        vdbDatabase.AddToXmlTransferList(tableName) 
       Next 


       ' Call the ExportXML method with the name of the XML  file and the WriteMode value indicating what to Export 
       vdbDatabase.ExportXml(filenameXML, VistaDBXmlWriteMode.All) 

       ' If the database is open - close it 
       If Not vdbDatabase.IsClosed Then 
        vdbDatabase.Close() 
       End If 
       MsgBox("Database Export complete.", MsgBoxStyle.Information) 
      Catch ex As Exception 
       WriteErrorEvent("Error exporting Database in addin", ex) 
       MsgBox("An error occured attempting to export the Database. Error Message:" & vbCrLf & vbCrLf & ex.ToString, MsgBoxStyle.Exclamation) 
      Finally 
       ' If we have a vdbDatabase object    
       If Not (vdbDatabase Is Nothing) Then 
        ' If it is open, close it 
        If Not vdbDatabase.IsClosed Then 
         vdbDatabase.Close() 
        End If 

        ' Dispose of the object 
        vdbDatabase.Dispose() 
       End If 
      End Try 
    End Select