搞了4 5年,还是皮毛,造孽,继续问点肤浅问题

星幻子 2012-07-14 08:52:40
请各位帮忙
1:
主表每年产生 500条左右 记录
每条主表记录对应的从表记录数 在 500 条以内
都有主键索引
程序使用1年多点,头一次打开表比较慢

目前 使用的是 主表ADOQuery 从表 ADOTable

全部客户端少于10台

请问有什么方面的技术可以提高速度的呢?


2:我准备给这套程序加个简单点的BS模式端(数据录入和查询),数据库是SQLSERVER 能实现吗?

3: ehlib我只会用dbgrideh,其他的东西有何功能?

4: 说来惭愧,断断续续搞了好多年,数据库还只会用 adoconnection adotable adoquery,adocommand有时用点,其他基本不会
不知道这样行不行呢?
...全文
192 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
-HelloWorld- 2012-07-16
用异步查询
回复
-HelloWorld- 2012-07-16
用异步查询
回复
kaikai_kk 2012-07-16
close即可,报错那是你其它代码有问题,比如有未释放的内存
回复
fmj1743458607 2012-07-16
主表数据量不是很大,可以一起存储。
从表数据量每年250000左右,可以考虑每年使用一个从表,表名可以用Table2012,Table2013,Table2014...
若如此构造,则最主表中加一年份字段,用以存储该主记录名下的从记录所在的从表年份
主表SQL:select 主字段1,主字段2,主字段3,...年份,主表主键 from 主表 where ...
从表SQL:select 从字段1,从字段2,从字段3,... 从表主键 from Table%D where ...
打开从表前,把从表SQL中的%D用主表当前记录的年份字段值代入
如:vss := fromat(从表SQL,[年份]);

当然,软件在每年1月首次使用时,应自动能生成本年份的从表
回复
火龙岛主 2012-07-16
[Quote=引用 6 楼 的回复:]

没分了,想重新开个帖子也不行
再问问大家吧
如何在frame中关闭自己?
比如在FRAME中写

close
或是
free
都会报错

Access violation at address 00000000.
Read of address 00000000.

网上搜了也没找到合适的办法
求高人指导个方法
[/Quote]

这类问题,基本的解决思路是谁调用的,谁就负责销毁。
尽量不要让他自己销毁,因为你不知道什么时候被销毁了。没有检测就出现了类似的问题。
冤有头,债有主。
回复
火龙岛主 2012-07-16
方法两个:
1. 每天存储的数据和历史数据分开,使用审核什么的功能再放到历史数据里。
2. 索引的使用很重要,这个重要。按照你的需求,速度慢的原因和索引的关系有一定的关系。善待聚集索引。

回复
星幻子 2012-07-15
没分了,想重新开个帖子也不行
再问问大家吧
如何在frame中关闭自己?
比如在FRAME中写

close
或是
free
都会报错

Access violation at address 00000000.
Read of address 00000000.

网上搜了也没找到合适的办法
求高人指导个方法
回复
我想好久好久,不过我们也可以共同交流的
我的QQ:4零54壹8144
注明来意我们可以继续学习
回复
cdchq 2012-07-14
总共有多少数据了?
按理说这么少的数据不会慢的。
你是不是把图片之类的东西放在数据库中了?

另外,建议都使用ADOQuery
回复
群主不要这个样子呀
我也是个“业余”程序爱好者的,
也有4 5年的自学经验,只要我们肯努力学习就会有进步
回复
Oraclers 2012-07-14
这么点数据怎么会慢?最好不用ADOTable。
主表用ADOQuery,从表也用ADOQuery
主表SQL语句:select * from Table1
从表SQL语句:select * from Table2 where 主从表关联字段 = :Param
设置从表的DataSource为主表对应的DataSource
回复
发动态
发帖子
数据库相关
创建于2007-08-02

2440

社区成员

Delphi 数据库相关
申请成为版主
社区公告
暂无公告