【发布时间】:2012-03-08 18:53:42
【问题描述】:
抱歉,文字太长了。
问题:在以下代码段中,我很难删除由 ADOX 的“CREATE”方法生成的 LDB。请提供一些解决方案的提示/指针,谢谢。
目标:创建(动态)一个新的访问数据库,然后将数据(比如 Arena 模块)导出到新创建的数据库。
预期:新创建的access数据库应该能够在子程序结束后被一些外部操作使用,比如Access.exe,并且不退出当前的VB程序。
我测试了“竞技场代码”对 ldb 文件的创建/发布没有任何作用。
我测试了连接字符串中的“独占模式”,但访问文件仍然被vb程序锁定。
我在VB环境下都测试过,直接调用Explorer生成的,结果一样。
其他数据库格式不是我的选择。 (由于 Arena 出口限制)
它不是网络应用程序。
代码:
Sub Method1()
Dim logs As New System.Collections.Generic.List(Of String)
Dim arenaApp As Arena.Application = Nothing
Try
logs.Add("Creating access database")
Try
Dim cat As New ADOX.Catalog
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=new.mdb;Jet OLEDB:Engine Type=5")
cat = Nothing
Catch ex As Exception
logs.Add(ex.Message)
logs.Add(ex.StackTrace)
Finally
logs.Add("End creating access database")
End Try
'Opening Arena model"
arenaApp = New Arena.Application()
arenaApp.Models.Open(fileName)
arenaApp.ActiveModel.ExportModules("", "new.mdb", "TableName", "", Arena.smExportType.smExportAll)
Catch ex As Exception
logs.Add(ex.Message)
logs.Add(ex.StackTrace)
Finally
...
End Try
End Sub
平台:
- Windows 7 64 位,Office 2010 (32)
- VB 2010 快递
- 库:MS ADO 分机。 2.8 用于 DDL 和安全性
【问题讨论】:
-
我很好奇您为什么使用旧的(不再维护的)ado 对象而不是新的 ado.net 对象?
标签: vb.net ms-access oledb ado