Public Function make_sql(ByVal strsql As String, ByVal constring As String) As ADODB.Recordset Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
On Error GoTo ErrorHandler
Set conn = New ADODB.Connection
'conn.Open "dsn=material;user id=sa;password=;server=stn"
conn.ConnectionString = constring
conn.ConnectionTimeout = 30
conn.Open
Set rs = New ADODB.Recordset
rs.Open "select " & strsql, conn, adOpenKeyset, adLockReadOnly, adCmdText
Set conn = Nothing
Set make_sql = rs
Set rs = Nothing
Exit Function
ErrorHandler:
If Not rs Is Nothing Then
Set rs = Nothing
End If
If Not conn Is Nothing Then
Set conn = Nothing
End If
End Function
主要就是调用上面这个函数,constring的值如下:
constring = "driver={SQL Server};server=stnn;uid=tech;pwd=123;database=tes"
Dim rs As ADODB.Recordset
On Error GoTo ErrorHandler
Set conn = New ADODB.Connection
'conn.Open "dsn=material;user id=sa;password=;server=stn"
conn.ConnectionString = constring
conn.ConnectionTimeout = 30
conn.Open
Set rs = New ADODB.Recordset
rs.Open "select " & strsql, conn, adOpenKeyset, adLockReadOnly, adCmdText
Set conn = Nothing
Set make_sql = rs
Set rs = Nothing
Exit Function
ErrorHandler:
If Not rs Is Nothing Then
Set rs = Nothing
End If
If Not conn Is Nothing Then
Set conn = Nothing
End If
End Function
主要就是调用上面这个函数,constring的值如下:
constring = "driver={SQL Server};server=stnn;uid=tech;pwd=123;database=tes"
Set conn = Nothing
Set make_sql = rs
Set rs = Nothing
Exit Function
ErrorHandler:
If Not rs Is Nothing Then
Set rs = Nothing
End If
If Not conn Is Nothing Then
Set conn = Nothing
End If
End Function
改为下面的试试:
Set make_sql = rs
rs.close
conn.close
Set conn = Nothing
Set rs = Nothing
Exit Function
ErrorHandler:
If Not rs Is Nothing Then
Set rs = Nothing
End If
If Not conn Is Nothing Then
Set conn = Nothing
End If
End Function主要是因为SQL SERVER 查询缓存没有清空!
rs.close
conn.close
后,记录集就关闭了,传不出数据啊!
Set make_sql = rs
set rs=nothing
conn.close
set obj=createobject("technic_general.search")
set rs=obj.sql(sql)
set obj=nothing
if not rs.eof then
equipname=rs.fields("equipname").value
equipTime=rs.fields("equiptime").value
regUser=rs.fields("regname").value
typeID=rs.fields("typeID").value
model=rs.fields("model").value
=rs.fields("").value
re=rs.fields("re").value
state=rs.fields("state").value
re=trim(rs.fields("re").value)
regtime=rs.fields("regtime").value
typenames=rs.fields("typename").value
end if
rs.close
set rs=nothing
sql="selct * from test"
constring = "driver={SQL Server};server=stnn;uid=tech;pwd=123;database=tes"
set obj=createobject("technic_general.search")
set rs=obj.make_sql(sql,constring)
set obj=nothing
if not rs.eof then
equipname=rs.fields("equipname").value
equipTime=rs.fields("equiptime").value
...
end if
rs.close
set rs=nothing
知不知道如何在CLASS_Terminate关闭所有和数据库的连接。
Set rs.ActiveConnection = Nothing
Set make_sql = rs
set rs=nothing
conn.close
Dim rs As ADODB.Recordset
On Error GoTo ErrorHandler
Set conn = New ADODB.Connection
'conn.Open "dsn=material;user id=sa;password=;server=stn"
conn.ConnectionString = constring
conn.ConnectionTimeout = 30
conn.Open
Set rs = New ADODB.Recordset
rs.Open "select " & strsql, conn, adOpenKeyset, adLockReadOnly, adCmdText
Set rs.ActiveConnection = Nothing
Set make_sql = rs
Set rs = Nothing
Set conn = Nothing
Exit Function
ErrorHandler:
Set rs = Nothing
Set conn = Nothing
End Function
ErrorHandler:的 Set rs = Nothing行了。
Dim rs As ADODB.Recordset
On Error GoTo ErrorHandler
Set conn = New ADODB.Connection
'conn.Open "dsn=material;user id=sa;password=;server=stn"
'this is important
conn.CursorLocation = adUseClient
conn.ConnectionString = constring
conn.ConnectionTimeout = 30
conn.Open
Set rs = New ADODB.Recordset
rs.Open strsql, conn, adOpenKeyset, adLockReadOnly, adCmdText
Set rs.ActiveConnection = Nothing
Set make_sql = rs
Set rs = Nothing
Set conn = Nothing
Exit Function
ErrorHandler:
Set rs = Nothing
Set conn = Nothing
End Function
Dim rs As ADODB.Recordset
On Error GoTo ErrorHandler
Set conn = New ADODB.Connection
'conn.Open "dsn=material;user id=sa;password=;server=stn"
'this is important
conn.CursorLocation = adUseClient
conn.ConnectionString = constring
conn.ConnectionTimeout = 30
conn.Open
Set rs = New ADODB.Recordset
rs.Open strsql, conn, adOpenKeyset, adLockReadOnly, adCmdText
Set rs.ActiveConnection = Nothing
Set make_sql = rs
Set rs = Nothing
Set conn = Nothing
Exit Function
ErrorHandler:
Set rs = Nothing
Set conn = Nothing
End Function