芯友网xin1234.com

Access,有两个问题。一个是窗体动态加载一个是多线程



滋阴壮阳冬瓜汤
Access,有两个问题,这么多年,我始终解决不了。一个是窗体动态加载
一个是多线程
zhuyiwen
又没说Access是万能的
晓飞
多线程是什么鬼
0123456789
朱老师,用链接表连接服务器Access数据库,客户端是把整个数据库读过来呢?还是只读取需要用到的那个表?
zhuyiwen
总之比较慢,可以通过选项设置每次读入的数据
滋阴壮阳冬瓜汤
只读需要的表,但不可控
0123456789

zhuyiwen
默认是一千条记录
0123456789
但是,服务器上并没有安装Access,也就是服务器端并没有数据库引擎,它是如何决定只返回所需的表呢?
zhuyiwen
本地的Access
王子
由引擎传递
0123456789
那不得把整个数据库都读过来了再挑选吗
zhuyiwen
建议用ADO,想读多少就读多少
链接表有快速开发的优势
王子
是在服务器端查询的
0123456789
链接表可以省写很多代码
王子
做查询的话用传递查询比较好
zhuyiwen
要实现服务器端查询,需要升级数据库为服务型数据库
0123456789
服务器没有数据库引擎,ADO读取数据,怎么个原理呢?
滋阴壮阳冬瓜汤
省写代码,不是目的呀,你封装一个多类型数据库,也一样,可以省很多代码呀。关键是可控,和可接受的性能
zhuyiwen
用的本地的ADO能力
0123456789
那就是要在本地处理数据库啦,对吧
既然是要本地处理,那是不是得先把整个数据库读过来,然后再处理呢
滋阴壮阳冬瓜汤
不是,windows已默认安装sql server的客户端驱动。客户端驱动和服务端sql server相当于两个winsock
zhuyiwen
也就是远程的Access数据库,只是相当于把共享文件模拟成本地文件夹
zhuyiwen
所以,Access数据库文件也可以存放在linux文件服务器中进行共享,不需要linux文件服务器有什么引擎
0123456789
这么说,实际上服务器Windows已经有数据库处理工具了,服务器Windows先处理好,再返回处理结果给客户端,是吧
zhuyiwen
你要搞清楚的是链接表方式连接后台Access数据库,与服务器无关
滋阴壮阳冬瓜汤
ado也好,链接表也好(其实是Odbc),调用sql server客户端,与服务端sql server进行通信。
如果你用的mySQL,或firebird,oracle等非微软数据库,你必须自己安装客户端驱动。
zhuyiwen
它不是c/s构架
0123456789
就是没搞明白嘛
王子
是驱动,说错了
zhuyiwen
你只要理解共享文件夹就是文件夹
网络只是延伸
0123456789
服务器没装Office,也没装SQL Server呢
zhuyiwen
你思想混乱了
王子
没关系的
只是连数据库而已
0123456789
我先静一静,想一起
系统消息
0123456789撤回了一条消息
0123456789
想一想
滋阴壮阳冬瓜汤
服务器没装office没关系,但没装sql server,想用slq server门都没有。
0123456789
不用SQL Server
zhuyiwen
他讲的是后台数据库是mdb
0123456789
就用Access
王子
那个就是连文件
在哪里都一样
zhuyiwen
你所mdb当成就是一个文件就完了,不管它在哪
滋阴壮阳冬瓜汤
那没关系,因为微软已经自带mdb驱动,你想卸载也卸载不掉
王子
你放本地和放网络都一样
zhuyiwen
你把mdb当成就是一个文件就完了,不管它在哪
0123456789
我的问题是,客户端是否需要从服务器把整个mdb读过来,然后在客户端处理
滋阴壮阳冬瓜汤
它确实就是一个文件
zhuyiwen
不会整个读过来
只会读想的那部分
0123456789
zhuyiwen
可能多点,也可能少点
王子
这个我也不懂
0123456789
就是不明白,如何实现只读取部分的
滋阴壮阳冬瓜汤
mdb就是一个文件,ldb是一个连接通道。它就是通过通道来进行通信的
excel也有呀,难道你没有见过吗?
0123456789
zhuyiwen
因为链接表,链接的是表,通常打开一个链接表,首先会读取架构,默认读取1000条记录
王子
比如一个带条件的查询,是直接处理好条件再读数据过来么?还是读整表过来再在本地做条件处理?
zhuyiwen
如果在链接表的基础上做查询,那就不一样了
主席
文件型数据库就相当于吃自助餐的食材,东西都摆在那里,要吃的话就得自己去弄,没人给你帮忙。  服务型数据库就相当于去五星级酒店吃点菜,你只管说我要吃这个,我要吃那个,你动作搞快点,我饿得很。五星级酒店服务的当然好,一会菜就上齐了。
王子
比如1000条记录的表,条件查询后选500条,那么这个数据传输是1000还是500
zhuyiwen
本质上,Access只是一个本地数据库管理系统
滋阴壮阳冬瓜汤
当然是500啦,微软不傻呀
王子
这是怎么处理的呢
主席
是500条,不过你得亲自去仓库里面翻
王子
驱动是如何透过网络,去那里翻的
zhuyiwen
尽管,链接表可以延伸Access的处理能力,但最终还是通过本地的jet引擎来处理数据,所有的链接表都会在jet引擎中模拟成Access本地的数据表
因此,jet引擎很强大,但成本也很高
王子
如果数据不来本地,本地又是如何知道我该选取哪些数据的
主席
你首先准备了清单的呀,要哪些东西。然后自己走路去仓库里面,搭了楼梯去一个个从架子上抱下来。
zhuyiwen
对,数据不来本地就处理不了
这就是jet引擎
王子
那其实还是1000条数据先过来么
然后筛选500
滋阴壮阳冬瓜汤
不是,别这样误解
主席
不会的,我的理解还是自己过去拿的500出来
王子
应该是什么过程
主席
只是没人为你服务,要自己去拿
zhuyiwen
如果在一个链接表上进行筛选,那么jet引擎会把这个表的所有数据都读过来
王子
自己去拿是什么概念,工人都在本地
zhuyiwen
那是不受1000条记录铂尔曼的
那是不受1000条记录限制的
0123456789
数据库mdb文件放在服务器上,就像一个货柜放在货场上
链接表,就是告诉我如何从我门店到达货柜,并且给我钥匙开货柜的门
我这样理解对吗
zhuyiwen
所以你会感觉很慢
主席
如果你用服务型数据库,那么你只需要在公司里面说,我要这些,要那些,仓库里面自然有先进的设备和管理尽快的就拿出来给你
服务型的还包给你送上门
王子
服务数据库提供的是服务接口,你只要告诉它指令即可
主席
所以快
这就是服务
王子
文件型数据库没这功能
主席
不是
服务型的,有仓库里的许多人和设备,为你取货随时做好强大的准备
王子
所以那里是有人的
主席
文件型的,就是东西摆在那里,自己去弄吧
王子
就跟打个电话送快递一样
那文件型的
我的工人派过去?
zhuyiwen
因为,如果,数据库数据量不大,用链接表很好
但如果数据量很大,建议升级数据库为服务型数据库,并使用传递查询来处理数据,而不是链接表
主席
电话都不打,心神领会
文件不大,就相当于东西不多,随便找间房子就放下了
自己找找也很快能找到
王子
我只是想知道找是怎么找的?
主席
但是你东西上了百万种以后,你自己找起来就没那么快了,就需要服务
0123456789
现在,我门店需几件货物,
我是去要把整个货柜搬过来慢慢翻找呢?
还是只需要从货柜里把装有那些货物的包裹搬过来翻找?
主席
王子,别纠结了怎么找的,不是你研究的范围
zhuyiwen
链接表,就是Jet引擎模拟出来的本地表,呵呵
王子
因为远端没有工人,那我的工人是怎么派过去
主席
有毛的工人
文件型的,就是自己走路过去
或者是爬过去
哪里还有工人
有工人,就是有服务了
王子
好像一直在说不同的事情
0123456789
数据库mdb文件放在服务器上,就像一个货柜放在货场上
链接表,就是告诉我如何从我门店到达货柜,并且给我钥匙开货柜的门
我这样理解对吗
现在,我门店需几件货物,
我是去要把整个货柜搬过来慢慢翻找呢?
还是只需要从货柜里把装有那些货物的包裹搬过来翻找?
主席
都可以啊
你可以把所有货柜都拿出来全部挨着翻一遍
王子
是怎么看的
主席
也可以先想好自己要拿啥,然后列个单子,按柜子的索引去找,都可以
王子
你人在本地,东西在外面
滋阴壮阳冬瓜汤
王子,主要是你不了解通道,通道是很重要的通信方式
王子
那谁能说清楚
我是不了解
0123456789
我也是不了解
王子
一直只知道用,不知道原理
看见你们正好谈起,就问下
滋阴壮阳冬瓜汤
每一台电脑都有mdb驱动
主席
因为自己公司离仓库远,走路去很不方便,所以很多文件数据库都放在本地,比如就在办公室隔壁就是个小仓库
就相当于MDB文件放在电脑的D盘一样的
王子
mdb驱动只是win有吧
主席
也有拼命要把小仓库设在远处的,就比如ACCESS数据库拿来做远程使用,不是不行,而是很多麻烦
王子
如果对方有驱动我是可以理解,对方驱动可以完成些事情
0123456789
【大学】滋阴壮阳冬瓜汤(3308069522)  11:36:40
每一台电脑都有mdb驱动
就算没有安装Office,只要安装了windows,就会有mdb驱动,是吗?
滋阴壮阳冬瓜汤
是的
王子
我用linux搭建一个文件服务器也是可以
0123456789
谢谢冬瓜指导
王子
只是想知道底层到底在干些啥
主席
底层关你什么事
滋阴壮阳冬瓜汤
通道是这样的,当通道A端输入指令,通道B端原样接收指令,然后返回数据,通道A端接收数据。
王子
嗯,冬瓜说的这个我懂
0123456789
就是说,服务器端那边有个仓管员
滋阴壮阳冬瓜汤
通道可是同一台电脑的两个dll,也可以是不同电脑的两个dll
zhuyiwen
@王子 可以用linux搭建一个mySQL数据库
0123456789
你要什么,仓管员就给你什么
王子
如果远端没有驱动是怎么样的呢
zhuyiwen
@王子 可以用linux搭建一个mySQL数据库服务器
晓飞
zhuyiwen
客户端用Access
王子
我指的是文件数据库
有服务的可以理解的
晓飞
同志们 如何让这个变成个选择框
王子
右键
控件类型
滋阴壮阳冬瓜汤
dll不一定是常驻服务的dll,
晓飞
谢啦
王子
其实问题很简单的,文件型数据库,如果本地和远端都有驱动,有通道解决,如果远端没有驱动,没有服务,就是个文件,是通过什么来做的,过程是咋样
主席
通过物流
滋阴壮阳冬瓜汤
io输出。只要是系统都要有io输出功能
zhuyiwen
我发现你们有点偏
能有能力搭建服务器,为什么还要选择文件型数据库呢?
用SQL数据库服务器不好吗?
免费的有很多,mySQL, Oracle, DB2...
王子
过程是咋样,比如我查某张表,然后代码都写好了,在我打开那个记录集的代码执行时候,都做了些啥
0123456789
MSDE也不错
王子
我只是好奇而已
zhuyiwen
不懂,真的不懂
王子
只是好奇文件数据库都在干些什么
滋阴壮阳冬瓜汤
linux我试过,事实上,我也不知道linux能跑mdb?
我没试过
zhuyiwen
只是存放,不是跑
王子
我只是好奇文件型数据库查询的时候他们在底层干些啥
zhuyiwen
这是jet引擎干的事
王子
到底在过程中有怎么样的数据传递
嗯,我晓得
主席
不研究那些东西
又不搞数据库引擎设计
系统消息
0123456789撤回了一条消息
王子
我也不研究,看到你们正好谈起,所以问问
没啥了
0123456789
是啊,其实是可以不用管这些东西的

相关问题
ado操作access数据库前台界面和后台数据库是分开的现在我准备在窗体利用ADO增加一条新记录】 使用自动编号即可;不喜欢字段编号;你慢慢会喜欢的;试
如果用Access窗体显示Word文档Word文档放在CurrentProject.Path并且】 用什么控件来显示;OLE非绑定对象如果有其它控件能显示也行;
求助,ACCESS子窗体能否设置控件不可见?此3项想隐藏】 右键,隐藏;    Me.T12 = Null        Me.T13 = Null      &nb
------分隔线----------------------------
赞助商链接
赞助商链接