社区
数据库及相关技术
帖子详情
ACCESS数据库的多用户访问的问题,急!!!
mgaic
2003-09-16 04:47:12
我有两个程序同时访问一个access数据库,都对该数据库库进行读写,发现数据库总是会膨胀, 添加一条纪录后文件就膨胀32K左右,请教应该如何解决这个问题
我的一个程序使用的是VC的odbc方式
另一个程序使用的是BC的ado方式,
...全文
267
14
打赏
收藏
ACCESS数据库的多用户访问的问题,急!!!
我有两个程序同时访问一个access数据库,都对该数据库库进行读写,发现数据库总是会膨胀, 添加一条纪录后文件就膨胀32K左右,请教应该如何解决这个问题 我的一个程序使用的是VC的odbc方式 另一个程序使用的是BC的ado方式,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huangjuliang
2003-10-07
打赏
举报
回复
对于这个问题没有碰到过
学习!
mgaic
2003-09-23
打赏
举报
回复
求教高手。。。
mgaic
2003-09-21
打赏
举报
回复
难道真的没有人知道吗?
求教高手!!
mgaic
2003-09-19
打赏
举报
回复
不会的 我的数据格式都是固定的 ,要是被32k整除,所有的添加记录都会被整除的
而且我所有的字段都是必须的,我想不会是在长度上的问题
我怀疑是access数据库本身的问题,是否是需要设置那些参数才可以支持多用户
guanshangming
2003-09-18
打赏
举报
回复
用ADO压缩Access2000库
抄来的,借鉴一下,方法一我没有试成功,方法二我试过可以
方法一
#include "utilcls.h"
void CompactDatabase(String f1,String psw1, String f2,String psw2)
{
String Provider1="Provider=Microsoft.Jet.OLEDB.4.0"";Data Source="+f1+ ";Jet OLEDB:Database Password="+psw1;
String Provider2="Provider=Microsoft.Jet.OLEDB.4.0"";Data Source="+f2+ ";Jet OLEDB:Database Password="+psw2;
Variant Adoobj=Variant::CreateObject("JRO.JetEngine");
Adoobj.OleProcedure("CompactDatabase",Provider1,Provider2);
Adoobj.Clear();
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String f1="yhecdagl1.mdb"; // 源库1
String psw1="yhecdagl"; // 密码1
String f2="yhecdagl2.mdb"; // 新目的库2
String psw2="yhecdagl2"; // 新密码2
String dir=ExtractFilePath(Application->ExeName);
f1=dir+f1; f2=dir+f2;
if (FileExists(f2)) // 不允许目的库存在
DeleteFile(f2);
CompactDatabase(f1,psw1,f2,psw2);
ShowMessage("Finished");
}
方法二
1: Project->Import Type Library.....
2: 单击Add 加入系统的Program Files\Common Files\System\ADO\ Msdox.dll 和msjro.dll
3: 在Class name: TTable ,TColumn,TIndex 与VCL组件名字发生冲突,所以改名为TADOXTable....
4:注意放在哪个板面,默认是在ACTIVEX
5 单击 Install....
6 问是否加入到默认包中 单击确定
7 是否重新编译包 单击确定
WideString Original="Provider=Microsoft.jet.oledb.4.0; data source=db2.mdb;";
WideString NewConn="Provider=Microsoft.jet.oledb.4.0;data source=db2new.mdb";
JetEngine1->CompactDatabase(Original.c_bstr(),NewConn.c_bstr());
Santos
2003-09-18
打赏
举报
回复
我建议你分析一下你的数据库表的结构,是否一条记录的长度为32k或可被32k整除。如果是这样,你就要从数据库上下功夫了,将臃余的字段去除,将有用字段调整为合理的长度和类型。
mgaic
2003-09-18
打赏
举报
回复
因为我有个程序需要时时在运行中,随时会有数据添加进来,
另外一个程序是在这个程序添加完数据后,发个消息过来,然后我把这个添加的数据查询出来,转发到远端的sql2k中,关闭那个数据库要两个程序都要关闭的
wangxiangsjz
2003-09-18
打赏
举报
回复
gz
zihan
2003-09-18
打赏
举报
回复
那你可以尝试在添加或者修改过后关闭数据库,这样他会释放一定的空间.
mgaic
2003-09-18
打赏
举报
回复
楼上:
你提供的方法是对数据膨胀后补救方法,作这种操作需要使用独占的方式打开数据库,但是我希望是在我添加,修改记录时,数据库能够正常增长,而不是象现在那样添加一条就增长32k
我在调整我的程序后,发现有的时候程序增长很正常,有的时候就不正常了,烦透了,不知道数据库内部是怎么处理的
我会把这个压缩过程作为作为程序的一个功能添加进去
mgaic
2003-09-17
打赏
举报
回复
楼上:
我现在遇到的问题是每添加一条记录就有可能增大32K大小,每天添加的记录有很多,所以数据库膨胀的很厉害,而且也影响了对数据的查询操作,所以我不知道应该对数据库进行那些设置,
如果使用程序压缩的方法,请问应该如何写,用Vc,或者是BC,这种压缩需要独占数据库的
Santos
2003-09-16
打赏
举报
回复
access数据库是这样的,如果在里面删除数据,他只是对该记录做个标记罢了,所以数据库是一直增大的。
不要过渡紧张,只要定时将一些过时数据移出保存,并压缩数据库,即可。
xiaozerong
2003-09-16
打赏
举报
回复
关注
thp
2003-09-16
打赏
举报
回复
顶
从
Access
数据库
零基础入门到中文编程第1部
Access
是office办公套件中的一个极为重要的组成部分,现在它已经成为最流行的桌面
数据库
管理系统。本课程为
Access
数据库
知识系列课程第1部,课程目标:结合实例讲解,零基础快速学习
Access
数据库
。本课程章节计划表:第一章:
Access
数据库
概述1、
Access
数据库
概述第二章:
Access
数据库
安装文件下载及安装1、
Access
数据库
安装文件下载及安装第三章:创建
数据库
表1、 利用表向导创建表2、 利用表设计器创建表3、 学习技巧第四章:字段的基本操作1、 添加、删除和更改移动字段2、 字段的属性及作用3、 主关键字和索引第五章:创建表之间的关系1、 关系类型2、 创建和使用表关系第六章:创建子数据表1、 创建当前表的子数据表2、 数据表视图的显示外观第七章:为
数据库
加密1、 设置
数据库
密码2、 设置
数据库
安全机制3、 两种加密方式优劣分析第八章:创建查询1、 查询概述、查询类型2、 使用向导创建查询3、 使用设计视图创建查询4、 查询的基本操作及查询优化的规则第九章:查询编程、生成查询语句的捷径1、 初步了解中文编程2、 生成查询语句的捷径第十章:
Access
数据库
总结1、
Access
数据库
总结
怎样远程连接
Access
数据库
远程连接
Access
数据库
方式很多,我们将较为常见的一种方式:网络共享方式。 1.连接远程服务器: 首先将远程服务器上的
access
数据库
所在mdb文件所在文件夹设为共享。在本地主机上的网络中找到该文件夹,如果你找不到可以直接手动连接,打开win+R运行\\IP地址,然后输入远程服务器用户名和密码,连接上后将共享文件夹拖拽或发送至桌面。 2.设置共享文件夹权限: 右键点击属性,在其中设置共享,将everyone用户加入,并设置权限。不同Windows系统版本设置方式也不同,不过相差不大,这里不.
access
mysql并发_
多用户
同时使用
ACCESS
时 间:2013-10-05 08:06:11作 者:摘 要:
多用户
同时使用
ACCESS
正 文:前提是每个用户都不能使用独占的方式打开。共享
数据库
(MDB)注释本主题中的信息仅适用于Microsoft
Access
数据库
(.mdb)。若要从另一台计算机上
访问
共享的Microsoft
Access
数据库
,另一台计算机上必须具备下列条件之一:
Access
的本地安装、
Access
的网络安装(逐个用户地授...
浅谈多线程
访问
access
数据库
处理
delphi下面用ADO连接
access
数据库
,多线程
访问
数据库
会发现如果与
数据库
交互频繁会发现程序会弹出一些莫名其妙的错误,如“内存
访问
错误”、“在异步运行时,操作不能执行”等莫名其妙的错误,为什么会出现这种情况呢? 为什么? ADO控件是线程不安全的,所以
access
数据库
和mysql_
access
数据库
和sql
数据库
你必须知道的区别
在选择到底是学习
access
还是sql的时候,了解一下它们之间的区别会对你有帮助的。有兴趣的朋友们不如和乔布
Access
是一种只适合数据量少的应用的桌面
数据库
,处理少量和单机
访问
的
数据库
时效率会很高。但是它不能同时
访问
四个以上客户端。
access
数据库
的数据达到一定的极限可能会导致服务器崩溃。而SQL Server是可以适合大容量数据应用的基于服务器端的中型
数据库
,在功能上管理上比
Access
要好...
数据库及相关技术
1,178
社区成员
18,939
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章