- 博客(25)
- 收藏
- 关注
转载 异常 Exception(Error) (转贴)
设计健壮程序的关键之一是,如果程序分配了资源,最后就必须释放它,而不管异常是否发生。 例如,如果你的程序分配了一块内存,必须确保最终释放这块内存;如果打开了一个文件,必须确保最后关闭这个文件。 在正常情况下,程序在申请资源后,能够释放它。然而,就算异常发生了,也必须保证释放它。 异常往往由一些偶然的事件导致。例如,程序中调用一个RTL例程,或使用一个构件都可能产生异常。你的程序必
2011-11-08 14:30:19
956
转载 SQL SERVER 2000 嵌套 存储过程 事务 回滚
<br /><br />/*当一段大的SQL语句中调用了多个存储过程,被调用的存储过程中又调用了多个存储过程,如此经过多次嵌套调用后,当遇到如重复主键、或是不满足业务逻辑时需要回滚整个事务,则可以使用下面的模式进行处理。也可以不进行raiserror进行直接计数。当SET XACT_ABORT ON后如果执行出错会自动回滚到最外层事务,但如果是业务逻辑出错则需要进行手动计数和手动回滚,即下面的DECLARE @ErrorSave INT SET @ErrorSave = 0|EXECUTE @ErrorSa
2011-03-11 10:47:00
4188
转载 在存储过程中编写正确的事务处理代码(SQL Server 2000 & 2005)
<br /><br />在 SQL Server 中数据库事务处理是个重要的概念,也稍微有些不容易理解,很多 SQL 初学者编写的事务处理代码存往往存在漏洞,本文介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码。<br />在编写 SQL Server 事务相关的存储过程代码时,经常看到下面这样的写法: begin tran update statement 1 ... update statement 2 ... de
2011-03-11 10:29:00
742
转载 ExtractFilePath()
ExtractFilePath() ExtractFilePath() 功能:返回完整文件名中的路径 函数原型如下: AnsiString __fastcall ExtractFilePath; ExtractFilePath和相近函数: ExtractFileDrive :返回完整文件名中的驱动器,如"C:" ExtractFilePath:返回完整文件名中的路径,最后带“/”,如"C:/test/" ExtractFileDir:返回完整文件名中的路径,最后不带“/” ,如"C:/tes
2011-02-26 14:29:00
1103
转载 【转】 DELPHI编写服务程序总结三--代码质量
<br />一、提高DELPHI程序的稳定性<br />软件质量是一个产品的生命线,也是关乎软件开发者的幸福关键所在,每天有很多程序员都在因为软件质量而通宵达旦的加班,经常遇到的情况是刚发布的程序不停的发布补丁包。软件质量就像一个噩梦一样,不停的在后面追赶着程序员,让他们疲于奔命,甚至于在程序员中流传着一句话:“生命不息,BUG不止”。<br />今天我们要探究的不是哪些可以重现的BUG,我们把哪些可以重现的BUG不定义为BUG,只有哪些不可重现的BUG,会让你茶饭不思、坐立不安。我曾在一家公司开发服务器软
2011-01-26 16:50:00
1098
转载 sql temp
SQL Server Temp Table关键字: temp tabledrop table #Tmp --删除临时表#Tmp create table #Tmp --创建临时表#Tmp ( ID int IDENTITY (1,1) not null, --创建列ID,并且每次新增一条记录就会加1 WokNo varchar(50), primary key (ID) --定义ID为临时表#Tmp的主键 );
2011-01-26 15:45:00
4016
原创 高性能sql语句
<br /><br />(1)整合简略,无关联的数据库拜访:<br /> 假如你有几个简略的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系)<br /> (2)删除反复记载:<br /> 最高效的删除反复记录方式 ( 因为使用了ROWID)例子:<br /> DELETE FROM EMP E WHERE E。ROWID > (SELECT MIN(X。ROWID)<br /> FROM EMP X WHERE X。EMP_NO = E。EMP_NO);<br /> (3)用
2011-01-26 14:44:00
618
转载 sql 性能综合描述
<br /><br />近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以前的经验和测试结果进行总结了。<br />我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的。所以我希望按照软
2011-01-26 14:39:00
568
转载 sql 性能
<br /> 从 INSERT 返回 IDENTITY<br />我决定从遇到许多问题的内容入手:如何在执行 SQL INSERT 后检索 IDENTITY 值。通常,问题不在于如何编写检索值的查询,而在于在哪里以及何时进行检索。在 SQL Server 中,下面的语句可用于检索由最新在活动数据库连接上运行的 SQL 语句所创建的 IDENTITY 值:SELECT @@IDENTITY<br />这个 SQL 语句并不复杂,但需要记住的一点是:如果这个最新的 SQL 语句不是 INSERT,或者您针对非
2011-01-26 14:34:00
425
原创 ado连接技术
<br />delphi应用程序我一般用ADO进行连接,这方面涉及到好几个现象:<br />一、正常连接,程序启动后连接数据库,若连接条件都正常,软件很快就能连接成功。这个就不用说了;<br />二、连接失败。这方面包括数据库服务器不正常、应用程序连接参数错误等等,在连接过程中,会造成界面假死的现象,而且持续时间较长(我设置超时时间好像不起作用,如AdoConn.ConnectionTimeout := 10;)。最后弹出对话框说连接错误,并返回错误信息;这是让我很头疼的问题;<br />三、和数据库连接过
2011-01-26 14:26:00
1089
原创 单个adoconnection 因网络不稳定导致的物理连接断开问题
delphi应用程序我一般用ADO进行连接,这方面涉及到好几个现象:一、正常连接,程序启动后连接数据库,若连接条件都正常,软件很快就能连接成功。这个就不用说了;二、连接失败。这方面包括数据库服务器不正常、应用程序连接参数错误等等,在连接过程中,会造成界面假死的现象,而且持续时间较长(我设置超时时间好像不起作用,如AdoConn.ConnectionTimeout := 10;)。最后弹出对话框说连接错误,并返回错误信息;这是让我很头疼的问题;三、和数据库连接过程中,若物理连接断开,应用程序不会检测到,须手工
2011-01-15 15:15:00
3112
原创 临时表 是否存在
<br /><br />1.在SQL SERVER中,用select object_id('Tempdb..#TempTable')该语句可判断一个临时表是否已经建立。(已建立返回值为一个整数,未建立则返回Null值)<br />Tempdb 是表示存临时表的数据库<br />我们可在建立临时表前先用以下语句判断临时表是否已存在,当已存在时就删除该临时表。<br />if not (select object_id('Tempdb..#TempTable')) is null drop table #Tem
2011-01-11 16:45:00
1813
原创 Delphi 用recno定位记录的当前位置 适合于小型数据库
1.if qrytem.isempty=true then qrytem.recno:=-1; //最小值 此情况为 数据源刚打开的时候且数据记录集为空值,不为空则recno:=1;2.if qrytem.eof=true then qrytem.recno:=qrytem.recordcount;//最大值(数据源不为空) //当 recno=qrytem.recordcount时 指向最后一条记录 此时可以再执行一次qrytem.next;而后qrytem.eof才为真,recno值不变3. /
2011-01-07 10:28:00
6384
转载 Delphi代码规范
<br /><br />引自:http://www.delphibbs.com/keylife/iblog_show.asp?xid=29323<br />作者 : 600666<br />标题 : Delphi代码规范<br />关键字:<br />分类 : 个人专区<br />密级 : 公开<br />本规范的目的:给自己的代码一个统一而标准的外观,增强<br /> 可读性,可理解性,可维护性<br />本规范的原则:名称反映含义,形式反映结构<br />1、单元风格<br /
2010-11-29 11:28:00
698
转载 stringgrid 使用技巧
<br />1. 文字居中 加 选中时(焦点) 虚边框 如何加颜色<br />procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; <br /> Rect: TRect; State: TGridDrawState); <br />var <br /> vText: PChar; <br />begin <br /> with TStringGrid(S
2010-11-26 16:29:00
1165
转载 dbgrideh 使用技巧
Ehlib的DBGridEh首列加序号 必须有首列(建一个) dbgrideh-options-dgzndicator设置为false dbgrideh.columns[0]-visual-color可以区分其他列的颜色 procedure TDBViewFrm.DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); be
2010-11-25 22:00:00
3652
原创 Twwdbgrid/Tdbgrideh 字段排序sort
qrymt.sort:=sortstring; 这个关键执行语句 (用网格控件 关联到查询控件 是不行的 因为没有 sort 属性) 通用方法:Twwdbgrid 、Tdbgridehprocedure Tfrmtest.DBGridEh1TitleClick(Column: TColumnEh);var sortstring,fieldname:string; Adoquery:Tadoquery;begin adoquery:=qrytem1;
2010-11-25 14:58:00
1459
转载 Delphi作的程序的源代码中常见的文件扩展名
<br />~*<br />Delphi生成的备份文件,在版本控制库及发布代码中不应该出现这些文件,如果修改了某个文件却因某些原因没有保存的话,可以尝试使用这些文件恢复。<br /><br />bmp/wmf/emf/gif/jpg/pcx/png/tiff/ico/cur/ani<br />图形/图标/光标文件,这些文件如果使用到了也需要进源代码库。<br /><br />bpg<br />工程组文件(Borland Project Group File),文本格式,需要进源代码库;bpg文件其实是mak
2010-11-17 09:43:00
1187
原创 panel mouseDrag
<br /><br />procedure TFrmProduce2.Panel7MouseMove(Sender: TObject; Shift: TShiftState;<br /> X, Y: Integer);<br />begin<br />ReleaseCapture;<br />SendMessage(Panel6.Handle,wm_SysCommand,$F012,0);<br />end;
2010-11-05 15:04:00
523
转载 ttreeview
<br /><br />TTreeView是VCL里面一个类,也是我们经常会用到的,而且功能也是很强大的。与TreeView相关的一个极其重要的类就是TTreeNode,我们下面的操作,几乎都是在围绕着它进行的。下面直接切入正题,要实现节点间的拖动,都需要实现哪几个事件呢?首先,要实现 OnMouseDown ,在其内要写入开启拖动的代码。 然后,要实现 OnDragOver ,其主要作用是在拖动过程中,实现对节点拖动目的(di)的控制。 最后,要实现 OnDragDrop ,其是实现拖动释放的操作。 <b
2010-11-04 18:19:00
540
原创 Treeview 分层显示 小思考
<br />1.以 链表 数据模型设计数据库表 同表中 code->Parent<br />2.层数 LayerCount 为1时 不显示Parent属性 即 不显示关于 绑定parent控件,目的是不需要修改其parent 都为''空 或 null <br />3.一般实行编码累加时 每一次增加 code=输入值+parent ,不显示parent属性 即不能灵活改变parent值 编码和parent有关改变了很麻烦<br />4.即 LayerAddcode:=false;LayerCount>1 an
2010-11-04 17:14:00
429
转载 override/overload/virtual
<br /><br />1.方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。<br />如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。<br />子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。<br />如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的
2010-11-03 16:32:00
481
原创 dbedit 显示风格
1.TDBEdit在显示数据时如果源数据是字符串,则靠左显示,如果是数字(整型或浮点型)则是靠右显示,我现在想不管数据类型为何,都靠左显示, 即 DBEdit3.Field.Alignment:=taLeftJustify;DBEdi的Field属性只在运行期可见,也就是说只能用代码,而不能再设计时访问 它对应的就是DBEdit所指向的数据集,如Table、Query等包含的某一个字段(双击数据集控件,打开字段编辑器可以看到)
2010-11-03 13:00:00
1042
原创 dbgrideh 使用技巧
<br />1.options.dgtitles 是否显示表头、列名 options.dgIndicator 是否显示最左边的指示列(当前、选中)
2010-11-02 09:07:00
429
原创 c/s 模式 各种数据库连接方式的优劣
一.总部数据库(Master)-1.店面数据库(Slave1)2.店面数据库(Slave2)...各店面的数据通过发布和订阅机制与Master同步,各店面去Master查询,就可以获得其他店面的数据。网络连接方面用VPN安全点。我们这里Master连全国几十家店就是这样连的。二。ado 门店连接总部数据库 区域内,一般一个省内吧 ado连接比较方便,只要可以直接连接那就好办了,实在不行就用VPN,但成高本,也可以考慮使用花生殼,終端機登入也可以上传与下载 数据,即 总部与数据之间三。各个子机构自动上传数据到
2010-11-01 22:26:00
1564
delphi11 学习资源 Woll2Wool infoPower 4k 21.0.5
2023-11-09
delphi11.3 学习资源 TMS VCL UI Pack 10.7.1
2023-11-09
Delphi 11 学习资源 Raize 6.2.3
2023-11-08
Delphi11.3 学习资源 RAD Studio 11.3-keyPatch
2023-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人