十万火急,不管怎样发表一下意思,想做一个超市管理软件,在销售时,連线时,数据保存到服务器,断线时数据保存到客户端,我的是三层结构,请问我该如何设计,在线急开发思

  • 主题发起人 主题发起人 wecluo
  • 开始时间 开始时间
W

wecluo

Unregistered / Unconfirmed
GUEST, unregistred user!
十万火急,不管怎样发表一下意思,想做一个超市管理软件,在销售时,連线时,数据保存到服务器,断线时数据保存到客户端,我的是三层结构,请问我该如何设计,在线急开发思路(40分)<br />十万火急,不管怎样发表一下意思,想做一个超市管理软件,在销售时,連线时,数据保存到服务器,断线时数据保存到客户端,我的是三层结构,请问我该如何设计,在线急开发思路 只有48分了,
 
还是这样设计啊

提供一个保存按钮(存到本地)
提供一个提交按钮,提交到服务器
 
李维的多层分布式(系统篇)中讲得很详细,你可以下电子书看一下
 
如果我服务器与客户端断开了,我的客户端就不能运行了,是不是,做客户端不能用三层结构哟,
 
李维的多层分布式我看了,没有这方面的介绍呀,HLHGOD大哥具体点,谢谢
 
怎么没有回答哟
 
这样:
if 提交到服务器=成功
then
begin
//你自己的代码
end
else
begin
//提交到客户端的代码
end;
 
要么全放在服务器端,实时连接!
要么全放在客户端,到规定的时间导到服务器端!--注意编码规则,不要重号!
不可以即这样又那样的,要搞清楚用户的最终需求,你的现在需求有问题![:D]
 
你可以在前台设置一个数据库,可以从后台下载数据到前台。
当服务器断开了,就把销售数据保存在前台,一旦恢复就提交数据上去就行了。
做到可以单机收银也可以网络收银啊
 
我的是三层结构,客户想:如果服务器正常工作,就把数据直接保存到服务器上去,如果服务器不能正常工作,就保存到本地,然后等服务器好了后再导到服务器,客户端一直都是正常工作。
我的难题是:如果我采用三层结构,服务器不能正常工作,我的客户端也就不能正常工作,
      如果你来做,你会怎样解决这个难题
 
xiaolongmao你好:关键是服务端不能正常工作了,我的是三层,那么我的客户端也能正常工作,这样前台連收银都不能了,还怎么能保存到本地数据库呢,是不是我的前台收银的程序设计思路就错了,不能采用三层,而应采用二层结构
 
一般会做成,保存本地,然后上传服务器!
如果你一定要那样做,那你就在保存的时候检测能否和服务器连接,如果不能,就保存本地。
 
我做过这样的东西,我们在登录的时候选择是连接登录还是脱机登录,选择脱机登录时,那么所有的数据都是保存到本地ClientDatabase.SAvetofile('');
另我们有一个专门资料下载的模块(医药零售),必须把相关的资料下下才,那么在脱机的时候用loadfromfile(''),就可以了!其实实时检测是不是跟服务器是否相关我觉得没有必要!先说这么多吧
 
hgood我用LOADFROMFILE装载一个3万多的数据库时很慢,你的快不快,能不能再具体点,谢谢了,小弟急用,
 
我也遇到同样的问题!呵呵。。
不过我的解决方法是:
1。客户端启动时只是trydo
connect。
2.if connect then
clientdataset to get datasource. and close connect
3. 写个跟触发器一样的函数,让后在去if,
这样就是服务器没启动客户端也可以运行。
我用的是socketconnection+borland socket server
我在socketconnection.beforeconnect和触发函数中检测和设置serverguid/servername。
晕倒。。。。。。。。。。。。。
 
可以充分发挥clientdataset的公文包模式的优势了。
就是将ClientDataSet.FileName设置为本地存放的路径,系统第一次登陆时就会自动将服务器端的数据保存到本地建立一个副本,你可以象任意操作它,它都将把这些修改记录下来。
当与服务器连接正常时,给一个提交的命令(applyupdates)就自动把断线时修改、添加的数据保存到服务器。
 
to:wecluo,
你可以把ClientDataset.packetRecords设为0嘛,然后再用savetofile,这样的话,下载时,只会下载结构,不会下载数据,你用loadfrom就可以了,跟使用本地表一样,查询我用filter
 
我不知道你想怎么写了,我这里的就运行得很好。
反正每次在启动前台时有一个提示即可以网络也可以单机。
在实际的收银过程中,在网络的时候用 if net_state(连网成功) then
直接保存到服务器 else
(当网络不通的时候,自动转为单机收银) 把数据保存在本地。单机操作则一直保存在本地。
在实际操作过程中设一个按扭可以在单机/ 网络之间转换。
也可以随时(设一个按扭)把本地的数据提交到服务器。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部