sos! 救命大送分了!(三层的最基本的问题)

cieon_123 2003-04-17 04:46:21
明天就要交任务说明了,大家帮帮我吧。

有谁能告诉我三层结构各层都实现什么功能?
它们之间都是怎样合作的?
各层都为其它层提供什么功能?是怎么提供的?
各层之间的数据传输是怎么进行的,是用什么方式传输的或者说用什么控件传输的?
三层都是以一种什么样的方式存在的,比如是应用程序还是仅仅只有数据库。

我的开发工具是vb+sql2000。
如果能回答的更详细,那就更感谢了。

本来我还是知道一些的,可是被几个高手指导晕了,所以想听听大家的意见。

只要您能回答我的问题,我把我全部的分都给你。
...全文
28 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenyu5188 2003-04-23
  • 打赏
  • 举报
回复
你修改后保存到数据库,那么你再对数据库进行一次查询返回记录集就行了。
cieon_123 2003-04-17
  • 打赏
  • 举报
回复
实在是太感谢大家了,真不知道说什么好。
本来我是想把所有的分都分的。
可是发帖子时才发现只能送100分。
不好意思。

我应该是结贴的,可是我又发现一个新问题。
如果我想修改表,怎么只返回我修改的记录?
可以利用recordsetd的缓冲区吗?
还是用其他的技术?
online 2003-04-17
  • 打赏
  • 举报
回复
http://www.ourfly.com/forum/View.aspx?fbId=9&Id=307
chenyu5188 2003-04-17
  • 打赏
  • 举报
回复
假设我们的应用是人事管理:

第一层:界面。
完成用户的交互操作。在界面代码中,严格控制,不可以出现任何SQL语句。所有的的数据的读写都通过对象来处理。

第二层:数据通道及商业逻辑。根据界面的请求,从数据库获取数据。不可以直接写表。必须通过存储过程处理。在查询时,不要在中间出现复杂的处理,比如JOIN等,多适用视图处理。

第三层:数据服务
完成数据的真正写操作。

-----------------------------------
比如有对象:
人员
属性有:ID,姓名,性别ID,出生年月、身份证号码,职务ID。。。。
没有方法。
人员S(人员对象的集合)
属性:COUNT
方法:ADD(object as 人员,key as string).REMOVE(key as string).Edit(object as 人员)
职务
属性有:ID,职务,缩写代码,描述
职务S(职务对象的集合)
属性:COUNT
方法:ADD(object as 职务,key as string).REMOVE(key as string)
------------------------------------

界面需要反映一个人员的职务:职务S(人员S(i).职务ID).职务
新加一个人员:人员.姓名=‘aaa’,性别ID=性别(i).性别,出生年月=2001-1-1、身份证号码=‘2123131313’,职务ID=职务S(i).职务
人员S.add 人员

------------------------------------
中间处理是读取VIEW的信息装入集合
通过存储过程参数写或删除数据
------------------------------------

这样有一个最大的好处:
各层完全独立,不必知道与自己无关的东西。
chenyu5188 2003-04-17
  • 打赏
  • 举报
回复
server是数据库的服务器端,所有的数据库文件是存储在服务器上的。所有的数据处理都是由它来处理的,简的可以看成是我们用户端要执行查询,那么服务器响应用户的请求,执行从用户端发送过来的查询语句,然后服务器执行,再然后就将查到的记录返回给客户端。
客户端的主要功能是将用户的操作程序化,起到一个显示结果的作用。

流程:客户端---------------------------->服务器(SQL Server)
(具体操作请求)

客户端<----------------------------服务器(SQL Server)
(服务器响应用户请并返回结果)

你可以这样理解:就像你上网一样,你在打开IE输入网址时(网页请求),它要等WEB服务器的响应,如果WEB服务器晌应了,那么就将页面返回给IE给我们浏览了。

kink 2003-04-17
  • 打赏
  • 举报
回复
快给我分吧!给你个简单的方法:
你可以先不要中间件,把客户端直接联到数据库上,调好了在加上中间件。
可以把客户端生成的sql语句直接发给中间件(winsock),也可加密后发;中间件解密后不用转换就可以提交给数据库;再把结果直接发给客户端(winsock),各个值间可以用“tab”或其他特殊的字符隔开,也可以把结果先形成一个表文件(temp.dbf),压缩后传给客户端;客户端受到后再读出来显示就可以了啊。

 明天再给你打电话
kink 2003-04-17
  • 打赏
  • 举报
回复
啊,果真到这来了!
客户端和中间件是要写的,客户端和中间件之间可通过socket通讯(比如winsock控件),中间件和数据库可通过
odbc或ado连接,中间件可用sql语句操作数据库;

客户端通过socket向中间件发送查询请求;中间件受到后处理请求,将请求转换成sql语句并提交给数据库;数据库执行查询并将结果返回到中间件;中间件把结果通过socket发给客户端;客户端显示结果;
qqqdong 2003-04-17
  • 打赏
  • 举报
回复
数据层:操作数据库
逻辑层:实现系统的控制逻辑
表现层:提供用户操作的截面

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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