我正在尝试执行将记录集值存储在 sql db 中的查询。当我尝试执行时,我收到了类似的错误
该连接不能用于执行此操作。在 vb6 中的此上下文错误中,它可能已关闭或无效。请帮我解决这个问题。
' Write records to Database
frmDNELoad.lblStatus.Caption = "Loading data into database......"
Call FindServerConnection_NoMsg
Dim lngRecCount As Long
lngRecCount = 0
rcdDNE.MoveFirst
Set rcdReclamation = New ADODB.Recordset
With rcdReclamation
.ActiveConnection = objConn
.Source = "insert into t_DATA_DneFrc (RTN, AccountNbr, FirstName, MiddleName, LastName, Amount) values ('" & rcdDNE("RTN") & "', '" & rcdDNE("AccountNbr") & "', '" & rcdDNE("FirstName") & "', '" & rcdDNE("MiddleName") & "', '" & rcdDNE("LastName") & "', '" & rcdDNE("Amount") & "')"
.CursorType = adOpenDynamic
.CursorLocation = adUseClient
.LockType = adLockOptimistic
.Open cmdCommand
End With
Do Until rcdDNE.EOF
lngRecCount = lngRecCount + 1
frmDNELoad.lblStatus.Caption = "Adding record " & lngRecCount & " of " & rcdDNE.RecordCount & " to database."
frmDNELoad.Refresh
DoEvents
Call CommitNew
rcdDNE.MoveNext
Loop
frmDNELoad.lblStatus.Caption = "DNE Processing Complete."
frmDNELoad.Refresh
End Function
Sub CommitNew()
' Add records to DneFrc table
With rcdReclamation
.Requery
.AddNew
.Fields![RTN] = rcdDNE.Fields![RTN]
.Fields![AccountNbr] = rcdDNE.Fields![AccountNbr]
.Fields![FirstName] = rcdDNE.Fields![FirstName]
.Fields![MiddleName] = rcdDNE.Fields![MiddleName]
.Fields![LastName] = rcdDNE.Fields![LastName]
.Fields![Amount] = rcdDNE.Fields![Amount]
.Update
End With
End Sub
连接代码
子实例化Command_SQLText()
' 创建执行 SQL 语句时要使用的命令对象。
设置 objCommSQLText = New ADODB.Command
objCommSQLText.ActiveConnection = objConn
objCommSQLText.CommandType = adCmdText
结束子
函数 FindServerConnection_NoMsg() 作为字符串
将 rcdClientPaths 调暗为 ADODB.Recordset
将 strDBTemp 调暗为字符串
常量 CLIENT_UPDATE_DIR = "\\PSGSPHX02\NORS\Rs\ClientUpdate\"
出错时继续下一步
' 如果持久记录集不存在,请尝试从
' CLIENT_UPDATE_DIR。如果找不到,请创建一个空白
' 并询问用户服务器名称。
设置 rcdClientPaths = New ADODB.Recordset
'它在本地是否已经存在?
如果 FileExists_FullPath(App.Path & "\" & "t_PCD_ServerConnectionList.xml") = False 那么
' 是否可以从 CLIENT_UPDATE_DIR 中检索
如果 Dir(CLIENT_UPDATE_DIR & "t_PCD_ServerConnectionList.xml") "" 那么
FileCopy CLIENT_UPDATE_DIR & "t_PCD_ServerConnectionList.xml", App.Path & "\" & "t_PCD_ServerConnectionList.xml"
别的
' 创建一个空白。
使用 rcdClientPaths
.Fields.Append "ServerConnection", adVarChar, 250
.Fields.Append "描述", adVarChar, 50
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
.CursorLocation = adUseClient
。打开
.Save App.Path & "\" & "t_PCD_ServerConnectionList.xml", adPersistXML
。关
结束于
万一
万一
' 打开记录集
使用 rcdClientPaths
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
.CursorLocation = adUseClient
.Open App.Path & "\" & "t_PCD_ServerConnectionList.xml", , , , adCmdFile
结束于
如果 rcdClientPaths.RecordCount 0 则
' 尝试列出的每一个
rcdClientPaths.MoveFirst
直到 rcdClientPaths.EOF
strDBTemp = TryConnection_NoMsg(rcdClientPaths.Fields![serverconnection])
如果 strDBTemp "" 那么
FindServerConnection_NoMsg = strDBTemp
退出函数
万一
rcdClientPaths.MoveNext
环形
strDBTemp = ""
万一
做而 strDBTemp = ""
如果 strDBTemp "" 那么
strDBTemp = TryConnection_NoMsg(strDBTemp)
如果 strDBTemp "" 那么
使用 rcdClientPaths
。添新
.Fields![服务器连接] = strDBTemp
。更新
。节省
结束于
FindServerConnection_NoMsg = strDBTemp
退出函数
万一
别的
退出函数
万一
环形
结束功能
函数 TryConnection_NoMsg(ByVal SvName As String) As String
出错时转到 ErrHandle
' 如果提供了服务器,请尝试打开到它的连接。
Screen.MousePointer = vbHourglass
设置 objConn = New ADODB.Connection
使用 objConn
.CommandTimeout = 30
.ConnectionTimeout = 30
.ConnectionString = "Provider=SQLOLEDB.1; Server=" & SvName & "; User ID=RS_Auth; Password=weLcomers_auth; Initial Catalog=NORS" ' 测试
。打开
。关
结束于
设置 objConn = 无
TryConnection_NoMsg = SvName
Screen.MousePointer = vbNormal
退出函数
错误句柄:
TryConnection_NoMsg = ""
设置 objConn = 无
Screen.MousePointer = vbNormal
退出函数
结束功能