Delphi开发的一些技巧
点击率:1879 来源: 作者: 发布日期:2017-04-07
一、提高查询效率先进行准备查询操作:
CustomerQuery.Closeif not (CustomerQuery.Prepared) then >查询是否已准备好 CustomerQuery.Prepare >查询准备 CustomerQuery.Open >执行查询
二、要在运行期访问参数,有三种方式可以选择:(适合BDE控件中的TQuery)
(1)ParamByName: 按名称设置参数的值
(2)Params: 按序号设置参数的值
(3)Params.ParamValues 属性按名称设置参数的值。这种方法可以在一行中设置一个或者多个参数的值
假设一条SQL语句有三个参数:
 INTO "RY.DB"  (Name, Capital, Continent) VALUES (:Name, :Capital, :Continent) (1)Query1.Params[1].AsString := Edit1.Text  (2)Query1.ParamByName('Capital').AsString := Edit1.Text (3)Query1.Params.ParamValues['ryCapitalContinent'] := VarArrayOf([Edit1.Text,Edit2.Text, Edit3.Text])
三、要让用户可以在数据控件中编辑查询出来的结果:
Query1.RequestLive:= True。
注:设置RequestLive:= True并不能保证“实时数据结果集”。
四、释放SQL语句占用的资源
CustomerQuery.UnPrepare
UnPrepare方法设置Prepared为False。它的工作主要是:
(1)再进行查询之前保证SQL属性已经准备好
(2)“通知”BDE释放掉为SQL语句分配的内部资源
(3)“通知”数据库服务器释放掉为SQL语句分配的内部资源
提示:在改变TQuery的SQL属性的时候,TQuery构件自动关闭和释放占用的资源
五、(1)执行返回结果的查询
CustomerQuery.Close CustomerQuery.Open
(2)执行不返回结果的查询
比如, , or ,直接调用SQL。比如:
CustomerQuery.SQL { query does not return a result set }
六、在运行期间执行查询(动态查询)
如果在设计期间无法确定是否要返回查询结果,可以用Try...Except结构把这两个过程都写进去,一般Open在Try部分调用,而SQL在Except部分调用,这样,即使Open调用失败,也能执行到SQL。可以在Except部分截获异常的类型。如果这个异常不是ENoResult异常,那么这个异常一定是其他原因引起的,必须被处理。
tryQuery2.Openexcepton E: Exception doif not (E is ENoResultSet) thenraiseend
七、在DELPHI中嵌入汇编
Procedure TForm1.Button1Click(Sender:TObject)beginASM push bx //此行汇编必须要有,且在第一行 mov ax,0ffh add ax,033h pop bx //必须恢复BX寄存器,//否则系统出现不可预料的错误,小心当机 END  end
上一篇:Java程序员应当知道的10个面向对象设计原则 下一篇:菜鸟程序员必备的12个技巧