客户端使用vb(access),上传数据到服务器asp(sqlserver),如何设计好?

Amphibian 2003-05-28 12:36:07
现要开发一套系统,客户端使用vb开发,采用access数据库,每周客户端(通过电话线)上报数据到服务器。服务器有一asp程序,采用sql server,负责数据的接收、整合、分析。有如下几个问题。
1、客户端如何上传,是在vb中设计ftp功能好,还是让客户端登录服务器asp,使用asp组件上传。
2、数据直接上传到sql server好,还是先采用zip等上传到指定的文件夹,进行解压后用程序再次更新sql 数据。
...全文
58 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Amphibian 2003-06-09
  • 打赏
  • 举报
回复
subzero(赘姆烂壳) :
我要实现的是数据的上传,和你的下载有点点不同:(
subzero 2003-05-29
  • 打赏
  • 举报
回复
我所说的适用于多客户端,且客户端分布不同各地,又要求开发难度小的情况。
如果只有一个点,那确实直接远程连接比较好。
yonghengdizhen 2003-05-29
  • 打赏
  • 举报
回复
这样的任务应该避免过多的干预并发性和传输控制,让协议做更多,你只需要完成高层的逻辑.
yonghengdizhen 2003-05-29
  • 打赏
  • 举报
回复
用xmlhttp最简单,将记录封装成xml格式避免自己去定义复杂的数据结构.
最关键的问题是用xmlhttp可以得到recordset的直接支持,传输任何类型的数据(包括2进制数据).[mdac2.5以上]
关于这一点我有类似的代码(只不过我的是跨服务器的通过asp进行的传递)
ouyi0901 2003-05-29
  • 打赏
  • 举报
回复
另一种方法:
用XML作为通信方式, 只用XMLHTTP这个对象就可以了,用ie控件也是一种方法,我个人认为用MLHTTP
比ie控件要简单一些,速度也要快一些,不易发生错误
subzero 2003-05-29
  • 打赏
  • 举报
回复
给你段例子,结合msdn

wbrlogin为ie控件,strTmp变量接收到服务端asp或jsp返回的数据,其实就是ie浏览器察看源代码的内容

Private Sub wbrLogin_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim strTmp As String

If URL = "about:blank" Then Exit Sub
If Not (pDisp Is wbrLogin.Object) Then Exit Sub
strTmp = wbrLogin.Document.body.outerText
......
some operation with var strTmp
......
End Sub


下面是两个比较有用的过程

Public Function PostOperation(ByVal ctrlIE As WebBrowser, ByVal strURL As String, ByVal strPostData As String) As Boolean
Dim strTmp As String, strTmp1 As String
Dim bArray() As Byte

If ctrlIE.Busy Then Call WriteStatus("网络忙,正在处理上一个业务操作,请稍后!"): Exit Function
Screen.MousePointer = 11

If strPostData <> "" Then
strTmp1 = Chr(0) & "bcz_nr=" & Replace(Replace(strPostData, Chr(0), "|"), "=", "~")
Else
strTmp1 = Chr(0) & "bcz_nr="
End If
If InStr(strURL, "cargo_status") > 0 Then
strTmp = "dl_yhm=" & strUserName & Chr(0) & "dl_mm=" & strPassword & Chr(0) & "bczy_bh=" & strUserNumber & Chr(0) & "bzd_id=" & strStationID
Else
strTmp = "dl_yhm=" & strUserName & Chr(0) & "dl_mm=" & strPassword & Chr(0) & "bczy_bh=" & strUserNumber & Chr(0) & "bzd_id=" & strStationID & strTmp1
End If
strTmp = strTmp & IIf(strPostData = "", "", Chr(0) & strPostData)
strTmp = Replace(strTmp, "%", "%" & Hex(Asc("%")))
strTmp = Replace(strTmp, Chr(32), "%" & Hex(32))
strTmp = Replace(strTmp, "&", "%" & Hex(Asc("&")))
strTmp = Replace(strTmp, vbCrLf, "%0D%0A")
strTmp = Replace(strTmp, Chr(0), "&")
bArray = StrConv(strTmp, vbFromUnicode)
ctrlIE.Navigate2 strURL, , , bArray, "Content-Type: application/x-www-form-urlencoded" & vbCrLf
End Function

'GET方式
Public Function GetOperation(ByVal ctrlIE As WebBrowser, ByVal strURL As String) As Boolean
Call PostOperation(ctrlIE, strURL, "")
End Function
Amphibian 2003-05-29
  • 打赏
  • 举报
回复
如subzero(赘姆烂壳) 所言,很多客户端的,subzero(赘姆烂壳) 能不能提供一点关于ie控件的资料。
Laone 2003-05-28
  • 打赏
  • 举报
回复
SQL Server需要这么麻烦么?用远程登陆不快多了?
Amphibian 2003-05-28
  • 打赏
  • 举报
回复
感谢回复。
subzero(赘姆烂壳) bladeinside(天下) ( :数据量不是很大,不过我不明白你说的ie控件具体如何操作。
bladeinside 2003-05-28
  • 打赏
  • 举报
回复
客户端用webbrower组件直接访问服务器的asp
online 2003-05-28
  • 打赏
  • 举报
回复
可以考虑作服务端程序,用来监听客户端的连接
然后传输数据
eafin 2003-05-28
  • 打赏
  • 举报
回复
GZ
subzero 2003-05-28
  • 打赏
  • 举报
回复
首先要看你的数据量有多大,给你个例子,是我以前所在公司的项目
全国大约50多个分公司,几百个点每时都有新数据发生,我们是这样设计的:
vb+access+ie控件作客户端,可保证离线也可采集数据。服务端采用jsp+orcale
在线操作方式:vb通过ie控件访问jsp服务端(当然是不可见的),通过jsp与oracle交互数据
离线操作方式:vb将数据保存到本地的access库。

这样的价构可以保证开发的难度很小,时间很短,实际上还是一个比较典型的例子
client<-->application server<-->data server
^
|
V
local data server

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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