请教:客户端向服务器请求数据,服务器返回一个记录集,客户端如何显示出来呢?

时间:2021-10-30 09:02:00
其实也就是客户端远程访问数据库,但是通过winsock或者其他控件,比如:
客户端发送信息:"select * from xxx"
那么服务器端返回的是一个记录集recordset.
1、服务器端如何发送?
2、客户端使用datagrid如何显示出来呢?

谢谢了!

2 个解决方案

#1


其实你的程序差不多就是三层结构的C/S程序了。
服务器端返回时,应该将每条记录逐一读取并以字符串或其它数据类型返回给客户端。
总之是不能返回一个对象的。
具体方法是:
客户端发送:"client/ask/姓名/张三/考试成绩"
类似这样的查询字符串。
服务器端对收到的字符串进行分解,然后对转化为sql语句对数据库查询。服务器端然后将查到的记录读出来以字符串形式(或其它形式)保存到一个动态数组里,然后逐一发送
给客户端。
客户端收到后将字符串分解得到记录的内容,然后在控件里显示出来。
真正做的时候要考虑“字符串粘连”,以及数据库不同而操作的不同等(比如sql server与mdb对日期的处理就不同)

#2


'//Server端:
Public Function getid(strsql_CN As String) As Recordset
Set cn = New ADODB.Connection

    cn.ConnectionString = "DSN=***;UID=****;PWD=*****;"
    cn.Open
Set rs = New ADODB.Recordset
    rs.CursorType = adOpenKeyset
    rs.CursorLocation = adUseClient
    rs.LockType = adLockOptimistic
    'rs.PageSize = 20      '每页20条记录
      '第二页
    rs.Open strsql_CN, cn
Set getid = rs

End Function
'//Client端:
Dim rs As Recordset
Set rs = New Recordset
Set rs = dd.getid("select * from tableName")
MsgBox " Succeeded!"



'//自己需要配置一个ODBC
'//**********************************************
'//**                加分!!
'//**********************************************

#1


其实你的程序差不多就是三层结构的C/S程序了。
服务器端返回时,应该将每条记录逐一读取并以字符串或其它数据类型返回给客户端。
总之是不能返回一个对象的。
具体方法是:
客户端发送:"client/ask/姓名/张三/考试成绩"
类似这样的查询字符串。
服务器端对收到的字符串进行分解,然后对转化为sql语句对数据库查询。服务器端然后将查到的记录读出来以字符串形式(或其它形式)保存到一个动态数组里,然后逐一发送
给客户端。
客户端收到后将字符串分解得到记录的内容,然后在控件里显示出来。
真正做的时候要考虑“字符串粘连”,以及数据库不同而操作的不同等(比如sql server与mdb对日期的处理就不同)

#2


'//Server端:
Public Function getid(strsql_CN As String) As Recordset
Set cn = New ADODB.Connection

    cn.ConnectionString = "DSN=***;UID=****;PWD=*****;"
    cn.Open
Set rs = New ADODB.Recordset
    rs.CursorType = adOpenKeyset
    rs.CursorLocation = adUseClient
    rs.LockType = adLockOptimistic
    'rs.PageSize = 20      '每页20条记录
      '第二页
    rs.Open strsql_CN, cn
Set getid = rs

End Function
'//Client端:
Dim rs As Recordset
Set rs = New Recordset
Set rs = dd.getid("select * from tableName")
MsgBox " Succeeded!"



'//自己需要配置一个ODBC
'//**********************************************
'//**                加分!!
'//**********************************************