关于获取Session里面recordset的问题,高手请教

leeliyiph 2009-11-26 10:07:07
现象:在DLL调试状态,没有问题。但是直接调用DLL的时候取不到recordset。
程序:画面设定按钮打开一个新窗口,设定一组信息放在session.recordset里面。再次打开的时候取这个recordset,什么都取不到。但是在DLL调试状态是可以取到的,没有error发生。
set:

If m_rstHourInfoTmp Is Nothing Then
Set m_rstHourInfoTmp = GetBreakInfoRecordset()
Else
If Not m_rstHourInfoTmp Is Nothing Then
If m_rstHourInfoTmp.State = adStateOpen Then
If m_rstHourInfoTmp.EOF = False Then
If m_rstHourInfoTmp.EditMode = adEditNone Then
m_rstHourInfoTmp.Close
End If
Else
m_rstHourInfoTmp.Close
End If
End If

Set m_rstHourInfoTmp = Nothing
End If

Set m_rstHourInfoTmp = GetBreakInfoRecordset()

With m_rstHourInfoTmp

Do Until rstHour.EOF
.AddNew
For lngLoopCnt = 0 To .fields.Count - 1
.fields(lngLoopCnt) = rstHour.fields(lngLoopCnt)
Next
.Update
rstHour.MoveNext
Loop
End With
End If

Get:

If m_rstHourInfoTmp Is Nothing Then

Set m_rstHourInfoTmp = GetBreakInfoRecordset()
End If

Set GetHourInfoTemp = m_rstHourInfoTmp.Clone
...全文
108 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
leeliyiph 2009-11-27
  • 打赏
  • 举报
回复
通过LOG,发现,画面上设定的recordset保存到session时丢失。。。迷茫中。。。
parss 2009-11-26
  • 打赏
  • 举报
回复
这可能是session丢失。我早两天用ajax也是丢失session,我就定义了一个全局变量,保存session时也保存到全局变量, 当session为null时取全局变量的值。
mocom 2009-11-26
  • 打赏
  • 举报
回复
借用stream做中间件试试,因为微软不推荐Session或者Application一个非Free Threaded Marshaler的对象,这样做

RecordSet对象已经打开,假设为rs
....
Set stream = New ADODB.Stream
stream.type = adTypeBinary
stream.open
rs.save stream, adPersistADTG '保存类型为adPersistADTG或者adPersistXML都可以
然后
stream.position = 0
Session("name") = stream.read(-1)

这样取出来
Dim data
data = Session("name")
If VarType(data) = (vbByte Or vbArray) Then
'已经Session
'把流读取到stream对象中
Set stream = New ADODB.Stream
stream.type = adTypeBinary
stream.open
stream.write data
Set rs = New ADODB.RecordSet
rs.Open stream '这里的游标和锁定方式自己设置,扩展选项不设置也可以,如果要设置用adCmdFile
....
Else
'没有Session
End If
月光下的土豆 2009-11-26
  • 打赏
  • 举报
回复
你是建立的active 工程吗?
leeliyiph 2009-11-26
  • 打赏
  • 举报
回复
还是不行。。。
月光下的土豆 2009-11-26
  • 打赏
  • 举报
回复
Private objRs As New ADODB.Recordset

Set objRs = New ADODB.Recordset

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧