客户端发送信息:"select * from xxx"
那么服务器端返回的是一个记录集recordset.
1、服务器端如何发送?
2、客户端使用datagrid如何显示出来呢?
谢谢了!
用xml吗?用字符串,如果一个数据集有上万条记录,那服务器怎么返回啊?大家在开发系统时,都是用的什么技术?给个例子!谢谢!
服务器操作完成,要向客户端发回成功确认一下!怎么?实时吗?
12 个解决方案
#1
用二进制打包发送。具体可参考相关资料。
#2
如果是内部网络的话
为什么不考虑在连接的字符串中 在服务器的代码 用IP地址进行连接呢?
这样连接起来就和本地端毫无差别
如果数据量很大 反映的速度会有一定的影响!
为什么不考虑在连接的字符串中 在服务器的代码 用IP地址进行连接呢?
这样连接起来就和本地端毫无差别
如果数据量很大 反映的速度会有一定的影响!
#3
我觉得用XML比较好,字符串没有数据格式的.
我用的是ADO,但是在互联网上传输海量数据也是个问题.
我的做法是:
服务端只传送更新过的数据,在客户端也建立个库,固定时间(如闲时更新);
我用的是ADO,但是在互联网上传输海量数据也是个问题.
我的做法是:
服务端只传送更新过的数据,在客户端也建立个库,固定时间(如闲时更新);
#4
1楼,说的太简单了吧?资料并不好找?!能举例说明吗?
#5
1楼,说的太简单了吧?资料并不好找?!能举例说明吗?
2楼,我也考虑过,但直接连接,在客户端往服务器里更新数据时,怎么确定已经更新完毕,数据更新要求很高,必须确认才行的!
3楼,我现在的做法就是在客户端放一个mdb,服务器用sql,请问这两个同步时,怎么更便捷,只更新更新过的!有更新时间字段,要一个一个比较啊?
谢谢大家!请大家帮忙!
再问个问题,数据库存储过程有没有工具来写,要不那么多表,一个一个的写存储过程那不得累死?!你们是怎么实现的?
2楼,我也考虑过,但直接连接,在客户端往服务器里更新数据时,怎么确定已经更新完毕,数据更新要求很高,必须确认才行的!
3楼,我现在的做法就是在客户端放一个mdb,服务器用sql,请问这两个同步时,怎么更便捷,只更新更新过的!有更新时间字段,要一个一个比较啊?
谢谢大家!请大家帮忙!
再问个问题,数据库存储过程有没有工具来写,要不那么多表,一个一个的写存储过程那不得累死?!你们是怎么实现的?
#6
'服务端将记录集转化为二进制发送
Public Function RecordsetToBimary(rs As Recordset) As Byte()
Dim stm As Stream
Set stm = New Stream
stm.Open
stm.Type = adTypeBinary
rs.Save stm, adPersistADTG
stm.Position = 0
RecordsetToBimary = stm.Read()
Set stm = Nothing
End Function
'客户端将二进制转化为记录集
Private Function BimaryToRecordset(vData() As Byte) As Recordset
Dim stm As Stream
Dim rs As Recordset
Set stm = New Stream
stm.Open
stm.Type = adTypeBinary
stm.Write vData
stm.Position = 0
Set rs = New Recordset
rs.Open stm
Set BimaryToRecordset = rs
Set rs = Nothing
Set stm = Nothing
End Function
当然具体情况比较复杂,要返回大数据量,要处理好分包
Public Function RecordsetToBimary(rs As Recordset) As Byte()
Dim stm As Stream
Set stm = New Stream
stm.Open
stm.Type = adTypeBinary
rs.Save stm, adPersistADTG
stm.Position = 0
RecordsetToBimary = stm.Read()
Set stm = Nothing
End Function
'客户端将二进制转化为记录集
Private Function BimaryToRecordset(vData() As Byte) As Recordset
Dim stm As Stream
Dim rs As Recordset
Set stm = New Stream
stm.Open
stm.Type = adTypeBinary
stm.Write vData
stm.Position = 0
Set rs = New Recordset
rs.Open stm
Set BimaryToRecordset = rs
Set rs = Nothing
Set stm = Nothing
End Function
当然具体情况比较复杂,要返回大数据量,要处理好分包
#7
用XML好些吧,海量数据真的不知道什么样...
存储过程的问题,可以写一个解析语句的东东呀,为什么要一个一个地写呢?
存储过程的问题,可以写一个解析语句的东东呀,为什么要一个一个地写呢?
#8
我也考虑过,但直接连接,在客户端往服务器里更新数据时,怎么确定已经更新完毕,数据更新要求很高,必须确认才行的!
--------------
局域网通常应该不用考虑winsock,C/S或B/S模式比较好,当然要根据你的实际需求
判断更新完毕也不是什么难事,比如用ADO的exceute方法添加,删除,修改和更新数据表,有返回参数说明操作所影响的行数,更何况VB下,更新没有完成你几乎不可能去执行后面的代码,担心多余
--------------
局域网通常应该不用考虑winsock,C/S或B/S模式比较好,当然要根据你的实际需求
判断更新完毕也不是什么难事,比如用ADO的exceute方法添加,删除,修改和更新数据表,有返回参数说明操作所影响的行数,更何况VB下,更新没有完成你几乎不可能去执行后面的代码,担心多余
#9
我是这么考虑的,你看可以吗?我用winsock,在客户端有mdb数据库,在更新时用winsock发送数据,同时mdb存储当前数据.服务器接受并添加完毕,发送"ok",这时客户端检测到就删除存在mdb中的数据,如果没收到"ok",等过5分钟再发送!你看可以吗?vbman2003?
再问个问题,数据库存储过程有没有工具来写,要不那么多表,一个一个的写存储过程那不得累死?!你们是怎么实现的?
根据需要自己动手写啊?能介绍本存储过程的好书吗?资料?
谢谢
再问个问题,数据库存储过程有没有工具来写,要不那么多表,一个一个的写存储过程那不得累死?!你们是怎么实现的?
根据需要自己动手写啊?能介绍本存储过程的好书吗?资料?
谢谢
#10
对于一般的应用,通常情况下,不用考虑客户端再附加一个数据库,在满足需求的情况下,我个人认为越简单越好。你所描述的情况看,本地数据库应该是多余的
存储过程只能一个个写,没有好方法,至少我不知道有什么简便的方法,呵呵。存储过程的效率应该是比较好的,VB中调用也是很方便的
存储过程只能一个个写,没有好方法,至少我不知道有什么简便的方法,呵呵。存储过程的效率应该是比较好的,VB中调用也是很方便的
#11
谢谢
#12
还有返回大数据量的问题,尽可能的用分页,太大的数据量,通常在客户端没什么可操作性,试想一下你一下返回数千数万的数据,客户怎么浏览......
#1
用二进制打包发送。具体可参考相关资料。
#2
如果是内部网络的话
为什么不考虑在连接的字符串中 在服务器的代码 用IP地址进行连接呢?
这样连接起来就和本地端毫无差别
如果数据量很大 反映的速度会有一定的影响!
为什么不考虑在连接的字符串中 在服务器的代码 用IP地址进行连接呢?
这样连接起来就和本地端毫无差别
如果数据量很大 反映的速度会有一定的影响!
#3
我觉得用XML比较好,字符串没有数据格式的.
我用的是ADO,但是在互联网上传输海量数据也是个问题.
我的做法是:
服务端只传送更新过的数据,在客户端也建立个库,固定时间(如闲时更新);
我用的是ADO,但是在互联网上传输海量数据也是个问题.
我的做法是:
服务端只传送更新过的数据,在客户端也建立个库,固定时间(如闲时更新);
#4
1楼,说的太简单了吧?资料并不好找?!能举例说明吗?
#5
1楼,说的太简单了吧?资料并不好找?!能举例说明吗?
2楼,我也考虑过,但直接连接,在客户端往服务器里更新数据时,怎么确定已经更新完毕,数据更新要求很高,必须确认才行的!
3楼,我现在的做法就是在客户端放一个mdb,服务器用sql,请问这两个同步时,怎么更便捷,只更新更新过的!有更新时间字段,要一个一个比较啊?
谢谢大家!请大家帮忙!
再问个问题,数据库存储过程有没有工具来写,要不那么多表,一个一个的写存储过程那不得累死?!你们是怎么实现的?
2楼,我也考虑过,但直接连接,在客户端往服务器里更新数据时,怎么确定已经更新完毕,数据更新要求很高,必须确认才行的!
3楼,我现在的做法就是在客户端放一个mdb,服务器用sql,请问这两个同步时,怎么更便捷,只更新更新过的!有更新时间字段,要一个一个比较啊?
谢谢大家!请大家帮忙!
再问个问题,数据库存储过程有没有工具来写,要不那么多表,一个一个的写存储过程那不得累死?!你们是怎么实现的?
#6
'服务端将记录集转化为二进制发送
Public Function RecordsetToBimary(rs As Recordset) As Byte()
Dim stm As Stream
Set stm = New Stream
stm.Open
stm.Type = adTypeBinary
rs.Save stm, adPersistADTG
stm.Position = 0
RecordsetToBimary = stm.Read()
Set stm = Nothing
End Function
'客户端将二进制转化为记录集
Private Function BimaryToRecordset(vData() As Byte) As Recordset
Dim stm As Stream
Dim rs As Recordset
Set stm = New Stream
stm.Open
stm.Type = adTypeBinary
stm.Write vData
stm.Position = 0
Set rs = New Recordset
rs.Open stm
Set BimaryToRecordset = rs
Set rs = Nothing
Set stm = Nothing
End Function
当然具体情况比较复杂,要返回大数据量,要处理好分包
Public Function RecordsetToBimary(rs As Recordset) As Byte()
Dim stm As Stream
Set stm = New Stream
stm.Open
stm.Type = adTypeBinary
rs.Save stm, adPersistADTG
stm.Position = 0
RecordsetToBimary = stm.Read()
Set stm = Nothing
End Function
'客户端将二进制转化为记录集
Private Function BimaryToRecordset(vData() As Byte) As Recordset
Dim stm As Stream
Dim rs As Recordset
Set stm = New Stream
stm.Open
stm.Type = adTypeBinary
stm.Write vData
stm.Position = 0
Set rs = New Recordset
rs.Open stm
Set BimaryToRecordset = rs
Set rs = Nothing
Set stm = Nothing
End Function
当然具体情况比较复杂,要返回大数据量,要处理好分包
#7
用XML好些吧,海量数据真的不知道什么样...
存储过程的问题,可以写一个解析语句的东东呀,为什么要一个一个地写呢?
存储过程的问题,可以写一个解析语句的东东呀,为什么要一个一个地写呢?
#8
我也考虑过,但直接连接,在客户端往服务器里更新数据时,怎么确定已经更新完毕,数据更新要求很高,必须确认才行的!
--------------
局域网通常应该不用考虑winsock,C/S或B/S模式比较好,当然要根据你的实际需求
判断更新完毕也不是什么难事,比如用ADO的exceute方法添加,删除,修改和更新数据表,有返回参数说明操作所影响的行数,更何况VB下,更新没有完成你几乎不可能去执行后面的代码,担心多余
--------------
局域网通常应该不用考虑winsock,C/S或B/S模式比较好,当然要根据你的实际需求
判断更新完毕也不是什么难事,比如用ADO的exceute方法添加,删除,修改和更新数据表,有返回参数说明操作所影响的行数,更何况VB下,更新没有完成你几乎不可能去执行后面的代码,担心多余
#9
我是这么考虑的,你看可以吗?我用winsock,在客户端有mdb数据库,在更新时用winsock发送数据,同时mdb存储当前数据.服务器接受并添加完毕,发送"ok",这时客户端检测到就删除存在mdb中的数据,如果没收到"ok",等过5分钟再发送!你看可以吗?vbman2003?
再问个问题,数据库存储过程有没有工具来写,要不那么多表,一个一个的写存储过程那不得累死?!你们是怎么实现的?
根据需要自己动手写啊?能介绍本存储过程的好书吗?资料?
谢谢
再问个问题,数据库存储过程有没有工具来写,要不那么多表,一个一个的写存储过程那不得累死?!你们是怎么实现的?
根据需要自己动手写啊?能介绍本存储过程的好书吗?资料?
谢谢
#10
对于一般的应用,通常情况下,不用考虑客户端再附加一个数据库,在满足需求的情况下,我个人认为越简单越好。你所描述的情况看,本地数据库应该是多余的
存储过程只能一个个写,没有好方法,至少我不知道有什么简便的方法,呵呵。存储过程的效率应该是比较好的,VB中调用也是很方便的
存储过程只能一个个写,没有好方法,至少我不知道有什么简便的方法,呵呵。存储过程的效率应该是比较好的,VB中调用也是很方便的
#11
谢谢
#12
还有返回大数据量的问题,尽可能的用分页,太大的数据量,通常在客户端没什么可操作性,试想一下你一下返回数千数万的数据,客户怎么浏览......