.net 正在转储SQL server表数据以使用OLEDB访问mdb
以下代码块位于SSIS包中的脚本任务(执行转储)中。递归调用脚本以获取数据库中的表列表:.net 正在转储SQL server表数据以使用OLEDB访问mdb,.net,vb.net,ssis,odbc,sql-server-2012,.net,Vb.net,Ssis,Odbc,Sql Server 2012,以下代码块位于SSIS包中的脚本任务(执行转储)中。递归调用脚本以获取数据库中的表列表: Function ImportSQLServerToAccess(ByVal sMDBFile As String, ByVal sSource As String, ByVal sDestination As String, ByVal sServer As String, ByVal sDatabase As String) As Boolean Dim AccessConn As System
Function ImportSQLServerToAccess(ByVal sMDBFile As String, ByVal sSource As String, ByVal sDestination As String, ByVal sServer As String, ByVal sDatabase As String) As Boolean
Dim AccessConn As System.Data.OleDb.OleDbConnection
If System.Environment.OSVersion.Version.Major >= 6 Then
AccessConn = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sMDBFile + "")
Else
AccessConn = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sMDBFile + "")
End If
AccessConn.Open()
Dim AccessCommand As New System.Data.OleDb.OleDbCommand("SELECT * INTO " + sDestination + " FROM [" + sSource + "] IN '' [ODBC;Driver={SQL Server};Server=" + sServer + ";Database=" + sDatabase + ";Trusted_Connection=yes];", AccessConn)
AccessCommand.ExecuteNonQuery()
AccessCommand.Dispose()
AccessConn.Close()
End Function
第一次调用执行转储脚本任务时,查询执行良好,并将数据转储到mdb中,但此后每隔一次都会失败,例外情况是“ODBC--连接到”{SQL Server}DEV01“失败”。我不知道为什么连接第二次失败,但第一次成功。是否有任何建议的解决方法
是否尝试将OLE DB连接的
RetainSameConnection
属性设置为true
?我在想,既然最初的连接尝试成功了,那么在剩下的处理过程中保留该连接。嗨,迈克,谢谢你的回复。此函数为列表中的每个mdb文件创建一个新的oledb连接,该文件在上一步中创建,这就是为什么每次目标mdb文件更改后,我都不创建新连接的原因。您的插图表明您可能已设置中断。你能找出它抱怨的线路吗?我已经添加了一个它实际失败的地方的屏幕截图。除了第一次之外,这种情况每隔一次都会发生。我并不完全相信这就是问题所在,但也许可以看看Close
和Dispose
调用。