易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi + DB的查询优化设计思想

经典案例分享 暂不涉及分区表,表设计等 只从比较浅的角度来优化
1.先检查程序 检查模型层的设计与编码是否合理 将和这个表有有绑定的数据感知控件全部去掉。
2.估算一个数据的最大量 可以从设计角度 也可以从客户提供的数据分析 未来一定周期内的预增长量
3.将条码的长度保存起来,先用条码的长度进行过滤,如果80%以上的长度都是一个长度,则不用这个方法
4.将条码中的偶数个数保存在一个独立的数字字段中,先进行比较,应该先能排除一半
5.将条码的最后几位数据独立保存在一个数字字段中,先进行比较,数字比较速度应该比字段比较快
6.在根据业务看是否能用时间来划分,每天或每周,每月建立一张表
7.增加一int类型的主键。撤销条码的主键。
总的原则是将数据分类来查,不要每将都在一大堆中查找,就象在书店一样,可以按出版商,按书类型进行
书架分类,然后找书的时间才能快速定位。
/////////////////////////////////////////////////////////////////////////
经典一句SQL:
if not exists(select akey from a where akey='1234')
  insert into a values(akey, b,c,d)


相关文档:

delphi数组之菜鸟篇


数组是可以通过索引来引用的同类型数据的列表。按照存储空间的获取方式,Delphi
支持的数组类型有两种,即静态数组和动态数组。所谓静态数组就是在声明时就已经确定大小的数组类型,而动态数组是指其大小在声明时不能确定的数组,动态数组的大小在使用时确定。
声明静态数组的方式非常简单,只要指明数组长度和数据类型 ......

Delphi 2010 的Char

今天用delphi 2010,做一个简单的内存映射的程序,在delphi以前版本上跑的好好的程序,在2010上,居然出现了不同的效果,发送端发送的字符串,接收端只收到一半,大概程序如下:
发送端:
var
    str : String;
begin
  CopyMemory(@(PShare^.Data),str,Length(str));  //把数据拷贝到 ......

Delphi中取整函数Round的Bug解决

Delphi中 Round函数有个Bug
一旦参数是形如 XXX.5这样的数时
如果 XXX 是奇数 那么就会 Round up
如果 XXX 是偶数 那么就会 Round down
例如 Round(17.5)=18
但是 Round(12.5)=12
下面的函数即可纠正这个 Bug 但是是临时性的
执行 DoRound(12.5) 结果为 13 正确
 function DoRound(Value: Extended): Int64;
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号