delphi 数据连接规范
建议大家采用另外一种编码风格,不要在程序中到处都有这种LZ程序生成的代码:
begin
with qryMain do
begin
try
Close;
SQL.Clear;
SQL.Add('Delete From MONTASK where TASKID=:TASKID');
ParamByName('TASKID').AsString := AID;
Execute;
finally
Close;
end;
end;
end;
实际上,在一般的项目中,整个程序中,只需要在统一的一个dm中,放置一个DB Connection,和一个Query控件(TempQuery),再写一个OpenQuery的过程就基本够用了,而且代码更简洁:
function TdmMain.OpenQuery(const ASelectSQL: string; const AUniDirectional: Boolean = False; AQuery: TUniQuery = nil): Boolean;
var
Qry: TUniQuery;
begin
Result := False;
if AQuery = nil then
Qry := TempQuery
else
Qry := AQuery;
try
with Qry do begin
Close;
UniDirectional := AUniDirectional; //如果这个数据集准备用来编辑和使用dbGrid等浏览,就必须 UniDirectional = False
SQL.Text := ASelectSQL;
Open;
Result := not IsEmpty;
end;
except
On E: Exception do begin
//*****
raise
end
end
end;
这样做的可移植性也很好。希望对大家有用。
最新文章
- 71 mac boook pro 无 gpu 下caffe 安装
- CocoaPod遇到更新不了的原因
- [HNOI2008],[bzoj1008] 越狱(dp+组合数学)
- unity3d 捕获系统日志,来处理一些问题
- 转: sublime text 2 前端编码神器-快捷键与使用技巧介绍
- 支付宝集成时的InvalidKeySpecException
- sql查询调优之where条件排序字段以及limit使用索引的奥秘
- 面向亿万级用户的QQ一般做什么?——兴趣部落的 Web 同构直出分享
- Js动态操作表格
- hdu5707-Combine String(DP)
- docker简单搭建gitlab
- Android MediaPlayer播放项目res/raw和res/assets下的音频文件
- WebRTC服务器——Licode 环境搭建
- IOS 数据存储之 SQLite详解
- Linux - TCP编程相关配置1
- 在c#下用 WCF编写restful
- 高可用Kubernetes集群-8. 部署kube-scheduler
- rtmp直播推流(一)--flv格式解析与封装
- bzoj 1006 MCS算法
- Linux日志文件查看和搜查命令(错误日志排查定位)
热门文章
- 自定义admin
- LR回放https协议脚本失败:[GENERAL_MSG_CAT_SSL_ERROR]connect to host ";XXX"; failed:[10054] Connection reset by peer [MsgId:MERR-27780]
- Python3 面向对象(1)
- 我的Android进阶之旅------>Android使用cmd窗口进行adb logcat时出现中文乱码问题的解决办法
- CSS让一个元素一闪一闪的
- Python-openpyxl操作
- python基础26 -----python进程及协成
- php……流程
- vagrant搭建
- Array.asList:数组转list