
客户端把查询字符(sql)串发给服务器,服务器根据查询字符进行查询,然后将记录集转换成数组发给客户端,客户端再将收到的数据转换为记录集显示。
Public Function RsToBin(Rs As Recordset) As Variant
Dim objStream As Stream
Set objStream = New Stream
objStreamOpen
objStreamType = adTypeBinary
RsSave objStream, adPersistADTG
objStreamPosition = 0
RsToBin = objStreamRead()
Set objStream = Nothing
End Function
Public Function BinToRs(vData As Variant) As Recordset
Dim objStream As Stream
Dim objRs As Recordset
Set objRs = New Recordset
Set objStream = New Stream
objStreamOpen
objStreamType = adTypeBinary
objStreamWrite vData
objStreamPosition = 0
objRsOpen objStream
Set BinToRs = objRs
Set objRs = Nothing
Set objStream = Nothing
End Function
第一个函数为记录集转换为数组,第二个位数据转换为记录集。在Fragment可以提前初始化 onCreateView()这个方法
onCreateView(){
//此时还没有数据,所以显示 数据正在加载中 showLoadingView()吧
return view;
}
public void onUpdateView(JSONDATA data){
//现在UI线程中更新 之前Fragment还在显示loadingView,
}
class MainActivity {
//activty中做异步请求数据,如果请求成功 调用 Fragment中自己写的onUpdateView()方法
}
//但我到喜欢把网络数据请求都写在service里面,然后网络获取数据结果通过广播回调
Intent intent = new Intent(this,MyServiceclass); //这个Service 就是专门请求网络数据的。
intentputString("reqURL",myURL);
intentputString("params",params);
startService(intent);
在onStartCommand() 里面通过判断 进行网络通信 *** 作。
// service 里面为了避免多个线程浪费 我开启了一个线程池,大小为3个估计是够了。然后用阻塞队列控制。LinkedBlockingQueue
海腾小任为你解答,希望可以帮到你。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)