100分求救Com+组件问题!!!
请看一下这段用Com+组件(Server)执行SQL返回给Client的代码!
当Client端和Server端在开发的PC上,Client端上用TExSQL方法本地的SQL时可以将Recordset返回,但把Client端和Server端分别安装在非开发的PC上时就不能返加Recordset,经测试当返回的结果是一个字符串(如Server的时间等)是很正常的,是不是Com+组件不能返回Recordset?请问做类似的一个组件还有其他方法吗(不把数据库的表和字段作为类封装到组件)?
Server端代码:TDBServer.vbp_______________________________
'MainMode.bas****************************
Option Explicit
Dim ConStr As String
Public MainCn As ADODB.Connection
Public IsCon As Boolean
Public Sub Main()
Set MainCn = New ADODB.Connection
MainCn.CursorLocation = adUseClient
ConStr = "driver=sql server;server=10.97.0.51;uid=sa;pwd=;database=Test"
IsCon = ConToDB
End Sub
Function ConToDB() As Boolean
On Error GoTo ConToDBErr
MainCn.ConnectionString = ConStr
MainCn.Open
ConToDB = True
Exit Function
ConToDBErr:
ConToDB = False
MsgBox Err.Description, vbInformation
Exit Function
End Function
'MainMode.bas****************************
'TCmdClass.cls****************************
Option Explicit
Public Function TExSQL(Tsql As String) As Recordset
On Error GoTo ExErr
Set TExSQL = MainCn.Execute(Tsql)
Exit Function
ExErr:
Exit Function
End Function
'TCmdClass.cls****************************
Server端代码:TDBServer.vbp_______________________________
Client端代码:TDBClient.vbp_______________________________
'MainForm.frm****************************
Option Explicit
Private Sub Command1_Click()
Dim RS As ADODB.Recordset
Set RS = New ADODB.Recordset
Dim TCmd As Object ' TDBServer.TCmdClass
Set TCmd = CreateObject("TDBServer.TCmdClass")
RS.CursorLocation = adUseClient
Set RS = TCmd.TExSQL(Text1.Text)
MsgBox RS.RecordCount
MsgBox RS.Fields(0).Value
Set TCmd = Nothing
Set RS = Nothing
End Sub
'MainForm.frm****************************
Client端代码:TDBClient.vbp_______________________________