Vb6 返回错误类型的类型。。。recorset与fields类似
我在这里遇到了一个无聊的问题 我试图将记录集强制转换为数组,但对象类型没有正确返回 我有一个记录集类型的函数,我试图通过记录集对象接收该函数的结果。但是当我尝试测试对象类型时,typeof函数返回“Fields”类型 搜索方法:Vb6 返回错误类型的类型。。。recorset与fields类似,vb6,recordset,typeof,Vb6,Recordset,Typeof,我在这里遇到了一个无聊的问题 我试图将记录集强制转换为数组,但对象类型没有正确返回 我有一个记录集类型的函数,我试图通过记录集对象接收该函数的结果。但是当我尝试测试对象类型时,typeof函数返回“Fields”类型 搜索方法: Public Function Buscar(ByVal query As String) As Recordset Dim rs As New Recordset If con.State <> 1 Then Conectar End If r
Public Function Buscar(ByVal query As String) As Recordset
Dim rs As New Recordset
If con.State <> 1 Then
Conectar
End If
rs.Open query, con, adOpenStatic, adLockReadOnly
Set Buscar = rs
End Function
dim r as recordset
dim c as new clsConnection
r = c.buscar("select * from costumers")
c.casttoarray(r)
Private Sub castToArray(obj As Object)
Dim rs As New Recordset
Dim linhas() As String
Dim colsize() As Integer
Dim aux As Integer
If TypeOf obj Is adodb.Recordset Then
Dim nLin As Long
Dim nCol As Integer
Dim l As Long
Dim c As Integer
Set rs = obj
colsize = capturarLimites(rs)
nLin = rs.RecordCount
nCol = rs.Fields.Count
ReDim linhas(nLin)
rs.MoveFirst
For l = 0 To nLin - 1
For c = 0 To nCol - 1
aux = colsize(c) - Len(rs.Fields(c).Value)
linhas(l) = linhas(l) & "" & rs.Fields(c).Value & rptString(" ", aux + 1)
Next c
Next l
End If
End Sub
公共函数Buscar(ByVal查询为字符串)作为记录集
Dim rs作为新记录集
如果符合第1条,则
连接器
如果结束
rs.开放查询、con、adOpenStatic、adLockReadOnly
设置客车=rs
端函数
dimras记录集
dim c作为新的CLS连接
r=c.buscar(“从客户中选择*)
c、 卡斯托雷(右)
专用子目录阵列(对象为obj)
Dim rs作为新记录集
Dim linhas()作为字符串
Dim colsize()为整数
作为整数的Dim aux
如果obj的类型为adodb.Recordset,则
长得一样
作为整数的Dim-nCol
我和你一样长
作为整数的Dim c
设置rs=obj
colsize=capturarLimites(rs)
nLin=rs.RecordCount
nCol=rs.Fields.Count
雷迪姆·林哈斯(nLin)
先走一步
对于l=0到nLin-1
对于c=0到nCol-1
aux=colsize(c)-Len(rs.字段(c).值)
linhas(l)=linhas(l)&“&rs.Fields(c).Value&rptString(“,aux+1)
下一个c
下一个l
如果结束
端接头
问题在于调用Sub时使用的括号:
它们计算r
,并将记录集类(字段集合)的默认成员传递给过程
移除它们或使用呼叫
c.casttoarray r
call c.casttoarray(r)
或者强键入
casttoarray
参数。不确定它是否相关,但我认为r=c.buscar(“从客户选择”)
应该是set r=c.buscar(“从客户选择”)
c.casttoarray r
call c.casttoarray(r)