发个控件问题
我封装的控件NetClient模块中用了
Public DB As New Connection 'ado对象中的连接对象
Public Rs As New Recordset 'ado对象中的记录集合对象
。。。。
在控件接收部分代码
Option Explicit
Public Event RsCome(ByRef objRs As Recordset)'定义了一个事件
。。。
Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)
Dim tmpData() As Byte
Dim Finis As String, FinisData(3) As Byte '存取结尾标志
'当数据超过8k时,winsock会分包发送
'所以要组合结尾前的全部数据
Static rsData() As Byte '记录集数组
Static rsLength As Long
Static ICount As Integer
'tmpData接收数据
tcpClient.GetData tmpData, vbArray + vbByte
'把接收的数据保存在rsData中
If ICount = 0 Then '第一次接收
rsData = tmpData
ICount = 1
Else
ReDim Preserve rsData(rsLength + bytesTotal)
CopyMemory rsData(rsLength + 1), tmpData(0), bytesTotal
End If
rsLength = UBound(rsData) 'rsData的长度
'判断结尾(结尾4个字节)
CopyMemory FinisData(0), rsData(rsLength - 3), 4
Finis = FinisData
If Finis = "!@" Then
'如果是结尾,截断结尾标志数据
ReDim Preserve tmpData(rsLength - 4)
Set Rs = BimaryToRecordset(rsData) '还原记录集
RaiseEvent RsCome(Rs)
Debug.Print "收到服务器数据鸟"
(这里我测试把rs写入临时文件,然后通过其他度取记录集,显示正常,应该说明rs正常))
Erase rsData
ICount = 0
rsLength = 0
Set Rs = Nothing
End If
End Sub
现在不知怎么把“rs"输出到新的form1中