我把函数分为两段发 虚拟内存就是在足步增长.
是不是我的代码有问题我知道 用SetProcessWorkingSetSize 可以减少内存使用,但是如何减少虚拟内存呢Private Sub Manager1_Trap() Dim Node As Node
Dim Variable As SnmpVariable
Dim TNode As Node
Dim TNodeText
' Dim PNode As Node
' Dim Value As String
On Error Resume Next
Set Node = tvwAgents.Nodes.Item(Manager1.AgentName)
If Err.Number = 35601 Then
Set Node = tvwAgents.Nodes.Add(LoadResString(102), tvwChild, Manager1.AgentName, Manager1.AgentName, LoadResString(104))
Node.Tag = LoadResString(104)
AddProp Node, LoadResString(130), LoadResString(131)
AddProp Node, LoadResString(132), LoadResString(133)
AddProp Node, LoadResString(134), LoadResString(135)
AddProp Node, LoadResString(136), LoadResString(137)
AddProp Node, LoadResString(138), LoadResString(139)
Me.mnuRefresh.Enabled = True
Else
If Node.Tag = LoadResString(140) Then
Node.Text = Manager1.AgentName
Node.Tag = LoadResString(102)
AddProp Node, LoadResString(130), LoadResString(131)
AddProp Node, LoadResString(132), LoadResString(133)
AddProp Node, LoadResString(134), LoadResString(135)
AddProp Node, LoadResString(136), LoadResString(137)
AddProp Node, LoadResString(138), LoadResString(139)
End If
End If
Err.Clear
Node.Image = LoadResString(105)
Set TNode = tvwAgents.Nodes.Item(Manager1.AgentName & LoadResString(109))
If Err.Number = 35601 Then
Set TNode = tvwAgents.Nodes.Add(Node, tvwChild, Manager1.AgentName & LoadResString(109), LoadResString(141), LoadResString(109))
TNode.Tag = LoadResString(109)
Else
If TNode.Tag = LoadResString(109) Then
TNodeText = Split(TNode.Text, Chr(32))
TNode.Text = LoadResString(1417) & CLng(TNodeText(1)) + 1 & LoadResString(1418)
End If End If
Dim Sql As String
Dim connI As Integer
Dim bConnection As Boolean
Dim S As String * 2
Dim Bytes2() As Byte
Dim str5 As String
Dim i2 As Integer
S = ""
GetPrivateProfileString LoadResString(115), LoadResString(117), "", S, 2, App.Path & LoadResString(101)
bConnection = S
If bConnection = True Then
For Each Variable In Manager1.Message.Variables
If Variable.Oid <> LoadResString(1405) Then
WriteTarp Time & Chr(32) & Chr(32) & _
Variable.Oid & Chr(13) & Chr(10) & _
Time & Chr(32) & Chr(32) & _
Variable.Name & Chr(58) & Chr(32) & _
Variable.Value & Chr(13) & Chr(10)
Else
Bytes2 = Variable.ValueEx
str5 = ""
For i2 = 0 To UBound(Bytes2) - 1
str5 = str5 & Hex(Bytes2(i2)) & Chr(32)
Next
WriteTarp Time & Chr(32) & Chr(32) & _
Variable.Oid & Chr(13) & Chr(10) & _
Time & Chr(32) & Chr(32) & _
Variable.Name & Chr(58) & Chr(32) & _
str5
Erase Bytes2
i2 = 0&
str5 = ""
End If
Next
WriteTarp String(90, "_")
End If
Dim str7 As String
Dim UpdateAL_i As Integer
Dim YYYY, MM1, MM2, DD, SS, HH As String
If Manager1.Message.Variables(4).Oid = LoadResString(1402) Then
Dim UpdateAL_2
For UpdateAL_i = 0 To 500
DoEvents
If Trim(UpdateAL(UpdateAL_i, 0)) = "" Then Exit For
If CLng(UpdateAL(UpdateAL_i, 0)) = CLng(Manager1.Message.Variables(4).Value) Then
str7 = Manager1.Message.Variables(9).Value
' For i2 = 1300 To 1306
' str7 = Replace(str7, LoadResString(i2), "")
' Next
str7 = Trim(str7)
If InStr(1, UpdateAL(UpdateAL_i, 1), ",") <> 0 Then
UpdateAL_2 = Replace(UpdateAL(UpdateAL_i, 1), ",", "','")
Else
UpdateAL_2 = UpdateAL(UpdateAL_i, 1)
End If
Err.Clear
On Error GoTo OnError
Dim Bytes3() As Byte
Bytes3 = Manager1.Message.Variables(7).ValueEx
YYYY = Val("&H" & Hex(Bytes3(0)) & Hex(Bytes3(1)))
MM1 = Val("&H" & Hex(Bytes3(2)))
DD = Val("&H" & Hex(Bytes3(3)))
HH = Val("&H" & Hex(Bytes3(4)))
MM2 = Val("&H" & Hex(Bytes3(5)))
SS = Val("&H" & Hex(Bytes3(6)))
str5 = YYYY & "/" & MM1 & "/" & DD & " " & HH & ":" & MM2 & ":" & SS
Sql = "Update al_a_trap_info Set CLEANSTATE=0 , CLEANTIME=to_date('" & _
str5 & "','" & LoadResString(1425) & "') Where " & _
"ALARMID in ('" & UpdateAL_2 & "') and CLEANSTATE=1 and ALARMRESOURCEID='" & _
Manager1.Message.Variables(8).Value & _
"' and ALARMSOURCEOAMHOST='" & _
str7 & "' "
conn.Execute Sql
GoTo TrapEnd
Exit For
End If
Next
End If
是不是我的代码有问题我知道 用SetProcessWorkingSetSize 可以减少内存使用,但是如何减少虚拟内存呢Private Sub Manager1_Trap() Dim Node As Node
Dim Variable As SnmpVariable
Dim TNode As Node
Dim TNodeText
' Dim PNode As Node
' Dim Value As String
On Error Resume Next
Set Node = tvwAgents.Nodes.Item(Manager1.AgentName)
If Err.Number = 35601 Then
Set Node = tvwAgents.Nodes.Add(LoadResString(102), tvwChild, Manager1.AgentName, Manager1.AgentName, LoadResString(104))
Node.Tag = LoadResString(104)
AddProp Node, LoadResString(130), LoadResString(131)
AddProp Node, LoadResString(132), LoadResString(133)
AddProp Node, LoadResString(134), LoadResString(135)
AddProp Node, LoadResString(136), LoadResString(137)
AddProp Node, LoadResString(138), LoadResString(139)
Me.mnuRefresh.Enabled = True
Else
If Node.Tag = LoadResString(140) Then
Node.Text = Manager1.AgentName
Node.Tag = LoadResString(102)
AddProp Node, LoadResString(130), LoadResString(131)
AddProp Node, LoadResString(132), LoadResString(133)
AddProp Node, LoadResString(134), LoadResString(135)
AddProp Node, LoadResString(136), LoadResString(137)
AddProp Node, LoadResString(138), LoadResString(139)
End If
End If
Err.Clear
Node.Image = LoadResString(105)
Set TNode = tvwAgents.Nodes.Item(Manager1.AgentName & LoadResString(109))
If Err.Number = 35601 Then
Set TNode = tvwAgents.Nodes.Add(Node, tvwChild, Manager1.AgentName & LoadResString(109), LoadResString(141), LoadResString(109))
TNode.Tag = LoadResString(109)
Else
If TNode.Tag = LoadResString(109) Then
TNodeText = Split(TNode.Text, Chr(32))
TNode.Text = LoadResString(1417) & CLng(TNodeText(1)) + 1 & LoadResString(1418)
End If End If
Dim Sql As String
Dim connI As Integer
Dim bConnection As Boolean
Dim S As String * 2
Dim Bytes2() As Byte
Dim str5 As String
Dim i2 As Integer
S = ""
GetPrivateProfileString LoadResString(115), LoadResString(117), "", S, 2, App.Path & LoadResString(101)
bConnection = S
If bConnection = True Then
For Each Variable In Manager1.Message.Variables
If Variable.Oid <> LoadResString(1405) Then
WriteTarp Time & Chr(32) & Chr(32) & _
Variable.Oid & Chr(13) & Chr(10) & _
Time & Chr(32) & Chr(32) & _
Variable.Name & Chr(58) & Chr(32) & _
Variable.Value & Chr(13) & Chr(10)
Else
Bytes2 = Variable.ValueEx
str5 = ""
For i2 = 0 To UBound(Bytes2) - 1
str5 = str5 & Hex(Bytes2(i2)) & Chr(32)
Next
WriteTarp Time & Chr(32) & Chr(32) & _
Variable.Oid & Chr(13) & Chr(10) & _
Time & Chr(32) & Chr(32) & _
Variable.Name & Chr(58) & Chr(32) & _
str5
Erase Bytes2
i2 = 0&
str5 = ""
End If
Next
WriteTarp String(90, "_")
End If
Dim str7 As String
Dim UpdateAL_i As Integer
Dim YYYY, MM1, MM2, DD, SS, HH As String
If Manager1.Message.Variables(4).Oid = LoadResString(1402) Then
Dim UpdateAL_2
For UpdateAL_i = 0 To 500
DoEvents
If Trim(UpdateAL(UpdateAL_i, 0)) = "" Then Exit For
If CLng(UpdateAL(UpdateAL_i, 0)) = CLng(Manager1.Message.Variables(4).Value) Then
str7 = Manager1.Message.Variables(9).Value
' For i2 = 1300 To 1306
' str7 = Replace(str7, LoadResString(i2), "")
' Next
str7 = Trim(str7)
If InStr(1, UpdateAL(UpdateAL_i, 1), ",") <> 0 Then
UpdateAL_2 = Replace(UpdateAL(UpdateAL_i, 1), ",", "','")
Else
UpdateAL_2 = UpdateAL(UpdateAL_i, 1)
End If
Err.Clear
On Error GoTo OnError
Dim Bytes3() As Byte
Bytes3 = Manager1.Message.Variables(7).ValueEx
YYYY = Val("&H" & Hex(Bytes3(0)) & Hex(Bytes3(1)))
MM1 = Val("&H" & Hex(Bytes3(2)))
DD = Val("&H" & Hex(Bytes3(3)))
HH = Val("&H" & Hex(Bytes3(4)))
MM2 = Val("&H" & Hex(Bytes3(5)))
SS = Val("&H" & Hex(Bytes3(6)))
str5 = YYYY & "/" & MM1 & "/" & DD & " " & HH & ":" & MM2 & ":" & SS
Sql = "Update al_a_trap_info Set CLEANSTATE=0 , CLEANTIME=to_date('" & _
str5 & "','" & LoadResString(1425) & "') Where " & _
"ALARMID in ('" & UpdateAL_2 & "') and CLEANSTATE=1 and ALARMRESOURCEID='" & _
Manager1.Message.Variables(8).Value & _
"' and ALARMSOURCEOAMHOST='" & _
str7 & "' "
conn.Execute Sql
GoTo TrapEnd
Exit For
End If
Next
End If
解决方案 »
- 高分求助解决MDAC2.1与MDAC2.8冲突问题
- VB里怎样捕获回车键是否被点击 ?(高分求救!!!!!!!!!)
- 请问有没有可以将word文档转换成html的控件?
- webbrowser控件的几个问题
- 大哥们帮下忙好吗??(十万火急的)
- 如何正常结束一个进程,不是杀掉,正常结束
- 请问怎样做才能使文字垂直居中排列于控件表面
- 一个VB极为实用的问题!!!
- VB6.0中的报表制作只能使用ADO的数据源,如果用DAO能行吗?
- How to make ActiveX by vb?
- 请问大家,布尔类型函数的函数体中,设初值是何意~~在线等
- POPUPMENU弹出后进入下一个表单,再popupmenu时菜单就出不来了,有办法解决吗?
Err.Clear
connI = 1
For Each Variable In Manager1.Message.Variables
connI = connI + 1
Dim i As Integer
For i = 1 To 13
If Variable.Oid = LoadResString(1426) & i & ".0" Then
Select Case i
Case 3
Sql = Sql & ",'" & LoadResString("120" & Variable.Value) & "'"
Case 4
Sql = Sql & ",'" & LoadResString("111" & Variable.Value) & "'"
Case 5
Dim Bytes() As Byte
Bytes = Variable.ValueEx
YYYY = Val("&H" & Hex(Bytes(0)) & Hex(Bytes(1)))
MM1 = Val("&H" & Hex(Bytes(2)))
DD = Val("&H" & Hex(Bytes(3)))
HH = Val("&H" & Hex(Bytes(4)))
MM2 = Val("&H" & Hex(Bytes(5)))
SS = Val("&H" & Hex(Bytes(6)))
str5 = YYYY & "/" & MM1 & "/" & DD & " " & HH & ":" & MM2 & ":" & SS
Sql = Sql & ", to_date('" & str5 & "','" & LoadResString(1425) & "')"
Case 7
str7 = Variable.Value
'For i2 = 1300 To 1306
' str7 = Replace(str7, LoadResString(i2), "")
'Next
str7 = Trim(str7)
Sql = Sql & ",'" & str7 & "'"
Case Else
Sql = Sql & ",'" & Variable.Value & "'"
End Select
End If
Next
Next
Err.Clear
On Error GoTo OnError
If connI > 13 Then
Sql = Sql & ")"
conn.Execute Sql
'If bConnection = True Then
' FrmDebug.Text1 = FrmDebug.Text1 & Manager1.Message.Variables(4).Value & " 告警入库 " & str5 & Chr(13) & Chr(10)
'End If
' Else
'If bConnection = True Then
' FrmDebug.Text1 = FrmDebug.Text1 & str7 & " 正常运行 " & str5 & Chr(13) & Chr(10)
'End If
End IfTrapEnd:
Sql = ""
YYYY = ""
MM1 = ""
MM2 = ""
DD = ""
SS = ""
HH = ""
str7 = ""
UpdateAL_i = 0&
connI = 0&
i = 0&
TNodeText = ""
UpdateAL_2 = 0&
Erase Bytes
Erase Bytes3
Set TNode = Nothing
Set Node = Nothing
Set Variable = Nothing
Exit SubOnError:
WriteTarp Sql & Err.DescriptionEnd Sub