在VB写的DLL中返回RECORDSET,但是在ASP中不能用!

yushiro 2003-09-11 04:11:26
VB:
Public Function GenerateReportSQL(ByVal UserId As Long, ByVal ReportID As Long, ByVal ExecuteSQL As Long) As ADODB.Recordset
......
Set GenerateReportSQL = cmd.Execute
.....

asp:
set app = CreateObject("testreport.application")
set ors = app.GenerateReportSQL(clng(iUserId), clng(iReportId), 1)
set app = nothing
response.write ors.Fields.count

结果显示0,但是结果集有内容。
...全文
32 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yushiro 2003-09-15
  • 打赏
  • 举报
回复
to dddd8888:
VB中的函数申明时,加入NEW就除错(至少在VB写的DLL中是这样)。

Set GenerateReportSQL = new recordset我去试试。

GenerateReportSQL = cmd.execute应该不可以,对象的赋值必须要用SET


to Suron128(辰龍) :
VB的代码是在VB中的,不是在ASP页面中。
Sunron128 2003-09-12
  • 打赏
  • 举报
回复
VB:
Public Function GenerateReportSQL(ByVal UserId As Long, ByVal ReportID As Long, ByVal ExecuteSQL As Long) 'As ADODB.Recordset '注释掉,在ASP中无须使用
......
GenerateReportSQL.CursorLocation = 3 '表示在客户端使用
Set GenerateReportSQL = cmd.Execute
.....

asp:
set app = CreateObject("testreport.application")
set ors = app.GenerateReportSQL(clng(iUserId), clng(iReportId), 1)
set app = nothing
response.write ors.Fields.count
dddd8888 2003-09-12
  • 打赏
  • 举报
回复
是不是这样
Public Function GenerateReportSQL(ByVal UserId As Long, ByVal ReportID As Long, ByVal ExecuteSQL As Long) As new ADODB.Recordset

或者
Set GenerateReportSQL = new recordset
GenerateReportSQL = cmd.execute
yuanxy 2003-09-11
  • 打赏
  • 举报
回复
我也想知道

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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