请教一个com的问题

pushboy 2001-05-24 04:06:00
我用vb写了一个简单的测试com,目的是传递一个cpid,查询出来一个记录集,代码如下:
类模块:
Public Function GetCp(ByVal lngCpid As Long) As ADODB.Recordset
'查询得到cpml的记录集

On Error GoTo err1

Dim strSql As String
Dim objContext As ObjectContext
Dim objConn As ADODB.Connection
Dim objRs As ADODB.Recordset

Set objContext = GetObjectContext()
Set objConn = CreateObject("ADODB.Connection")

With objConn
.CommandTimeout = 30
.ConnectionString = "provider=sqloledb;server=lbmars;uid=ztsw;pwd=greatit;database=psswxt"
.Open
End With

Set objRs = New ADODB.Recordset
strSql = "select cpbh,cpname,class from cpml where cpid=" & lngCpid
objRs.Open strSql, objConn, adOpenStatic

Set GetCp = objRs
objContext.SetComplete

Set objConn = Nothing
Set objRs = Nothing
strSql = ""
Exit Function

err1:
objContext.SetAbort
Set GetCp = Nothing

End Function

客户程序:
Private Sub cmdOk_Click()
Dim rsTemp As ADODB.Recordset
Dim objTest As Object
Dim lngCpid As Long

lngCpid = CLng(txtCpid.Text)

Set objTest = CreateObject("classtest.clsTest")
Set rsTemp = objTest.getcp(lngCpid)

If rsTemp.EOF = False Then
txtCpbh.Text = rsTemp!cpbh
txtCpname.Text = rsTemp!cpname
txtClass.Text = rsTemp!Class
Else
MsgBox "error"
End If

End Sub

现在的问题是:
1、如果在一个程序组中,可以正常得到查询出来的纪录集数据;
2、如果组件在mts注册并安装在客户机之后,客户程序就得不到记录集,即rstemp.eof一直为true
请问原因?
谢谢
...全文
45 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pushboy 2001-05-25
  • 打赏
  • 举报
回复
客户端调试,并无错误,只是返回的recordset没有数据:(
fish365 2001-05-24
  • 打赏
  • 举报
回复
请在客户端断点调试,看看到底在哪儿出了问题!
(程序好像没什么问题,可能配置的不正确!)
pushboy 2001-05-24
  • 打赏
  • 举报
回复
大虾们,请帮我看看吧

7,763

社区成员

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

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