QT做一个C/S架构的数据库应用方便吗
我想知道性能如何?
我自己设计的C/S,从最基础的TCP通讯到数据的传输。
性能非常差。
请问有C/S操作的范例吗?
谢谢。
客户端既使针对一张表读的纪录,也因为在不同功能里,所需要取得的字段是不同的。
例如A表有50个字段,我第1个请求可能是需要25个字段,第2个请求可以需要10个字段,第3个请求需要最后30个字段,... ...学校运动会闭幕词
那么在大型系统中,为了减少代码量,我就用一个SELECT把所有50个字段都取出,都编码成JSON后进行传输。
这样就使得传输的数据量很大,在应用复杂时速度就很慢。
不过在Delphi自带的C/S应用上,似乎就不是这么处理了:
客户端只要通知服务器打开数据库,然后一条条指令请求每个需要的字段就可以了。
所以性能相对就非常高。
如果用QT做个简单的TCP聊天,那是很简单的。
不过操作数据库,尤其是数据库较大时。
我就不知道它的方式是怎么样的了。
不建议在客户端直接操作数据库。
客户端最好只和服务器程序打交道
你可以使用Qt的模型/视图结构来解决这个问题。比如,在一个表格中(QTableView):
视图会以行为单位向模型要数据用以显示,而它不会一次要来所有的数据,它只要当前需要显示的那段数据。我们可以利用这个特性来进行分段查询。比如视图向模型要第一行数据时,客户端就向服务器请求前50条数据,此后,视图就会根据用户的操作不断的向模型请求数据。当模型检测到视图在请求第51条数据时,在向服务器请求下50条数据…………不断重复
请求间隙,在配合一些界面提示。这就是最佳的用户体验。
当然,如果你嫌麻烦,也可以直接使用QTableWidget,在界面上加一个“上翻”按钮和一个“下翻”按钮,就可以搞定所有问题。