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)
相关文档:
*类的公开属性(代码)
示例:访问类的published属性
说明:vmtFieldTable(Published Field表)指向Published Field表有序排列,只存储当前类的PublishedField表,得到父类的Published Field表需要往上遍历。
注意:只有类型是类或接口的数据成员才可定义为published的访问级别
代码:
type
TMyO ......
(一) 使用动态创建的方法
首先创建 Excel 对象,使用ComObj:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );
1) 显示当前窗口:
ExcelApp.Visible := True;
2) 更改 Excel 标题栏:
ExcelApp.Caption := '应用程序调用 Microsoft Excel';
3) 添加新工作簿:
ExcelApp.WorkBooks.Add ......
之前做一个程序,用ListBox读入一个文本文件,但文本中有空行,为了删除其中的空行,折腾了好长时间。
先给出一段代码给大家看
var
i:Integer;
begin
ListBox1.Items.LoadfromFile('data.txt');
for i:=0 to ListBox1.Count - 1 do
begin
  ......
很早做过的一个delphi项目,把里面用到的技术总结一下,主要是针对象我这样的delphi新手,技术上做个积累吧!
假设我们的数据库配置文件ServerInfo.ini内容如下:
[ServerInfo]
ServerIP=192.168.1.5
SQLDBName=Data
SQLUserID=sa
SQLPwd=
我们定义一个连接数据库的过 ......
procedure frmMain.CLS; //主窗体自定义事件CLS
var i:integer;
begin
for i:=0 to panel5.ControlCount -1 do
begin
if panel5.Controls[i] is TEdit then //Edit组件
begin
((panel5.Contro ......