- 博客(28)
- 资源 (11)
- 收藏
- 关注
原创 限制MDI子窗体的最大化后,没有自己的标题栏。
procedure TExplorer.WMMax(var Msg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;begin //什么都不用写。end;procedure TExplorer_Frm.WmSize(var msg: TWMSIZE);begin if msg.SizeType = SIZE_MAXIMIZED then msg
2005-06-01 20:31:00 3987 1
原创 修改用户定义的数据类型
--SQLSERVER的自定义类型比较好用吧,但是,一旦引用该数据类型后,想修改数据类型,就是一大头疼的事了,本存储过程就是专门对付它的。--sp_rebuildallview 见本BLOG中的其它页面create procedure sp_rechangfieldtype(@typename varchar(50), @newtype varchar(50))asbegindeclare @ty
2005-06-01 20:30:00 1731 2
原创 更新所有的视图
更新所有视图的存储过程。create procedure sp_rebuildallviewasbegindeclare @mytext varchar(8000)declare @id intdeclare mycursor cursor forselect c.text from dbo.syscomments c, dbo.sysobjects o where o.id = c.id
2005-06-01 20:29:00 1485 1
原创 气愤的StringGrid
大家看一下这一段代码。 StringGrid1.Cells[0,0] := hello; StringGrid1.Row := 0; ShowMessage(StringGrid1.Rows[0].Text); ShowMessage(StringGrid1.Rows[1].Text);在[0, 1]的位置也显示一个hello但是我们显示这个位置的内容时,却无法看到。是不是ST
2005-02-28 16:24:00 1556 1
原创 单元测试的新的感想
1、尽量使得在被测试的方法内部所做的操作能被外部捕获。2、尽量用函数而不用过程。3、对于不确定的数据,最好由外部传入。比如在过程里面根据时间生成单据号,时间最好由外部传入,否则就无法进行测试。4、对于大量需要进行覆盖的测试,请不要用硬编码。而是从外部读取,好像JAVA有套单元测试的 jetif 可以从元数据中读取‘样本数据’和‘结果数据’。可能DUNIT没有,只能自己写了。5、单元测试本身请不要‘
2005-02-26 10:49:00 1294 1
原创 保持写程序的几个习惯
1、先测试,再写程序。2、无处不在的重构。3、注意去掉坏味道。4、列好清单,如果需要花很长时间去完成的,只写一个清单,如果很短时间的(一分钟以内)则解决掉它5、让自己的代码变得更短。6、不要加没有必要的注释。7、好的代码结构永远比注释强。8、保持文档与代码的同步。9、一定要对自己的代码有信心,哪怕出过N次BUG。10、多加TODO。11、记得多比较,这样才会有性能提高。
2005-02-23 10:13:00 1139
原创 单元测试几个小建议
以下的示例均在DUNIT下进行,但同样适用于XUNIT。只是语法用的是OBJECT PASCAL最近在用DUNIT来写程序,写着写着,也碰到了一些小问题,也找到过一些解决办法,同时,也发现了不少的注意事项,特提出来与大家共勉。1、最好用带ID的异常来代替显示对话框。 优点:对话框无法进行捕捉。异常可以 缺点:程序内部要加入异常处理机制,并要求抛出,代码量增加 举例:
2005-02-23 09:53:00 1275
原创 今天杂记
1、问题:对一个表,有50个客户端对它进行插入数据,平均每十秒一次,每次20条记录,怎么计算它的堵塞率? 2、感想在写单元测试的时候,如果对数据库进行检索或插入,最好用select * 及不带字段名的insert into tablename values(连续插入几个值,可以用insert into tablenameselect aaaa....unions
2005-02-21 10:53:00 1005
原创 singleton之我见
先和大家说说什么是singleton模式的,它中文意应该为单一模式,但好别扭,也不知道是谁翻译的 29796428(qiubole) 12:26:46它属于创建模式的一种 29796428(qiubole) 12:27:00主要的作用就是确实一个类有且只有唯一的一个实例 29796428(qiubole) 12:27:10这在实际当中,其实还是有一些用处的 29796428(qiubole) 12
2004-12-30 13:18:00 1010
原创 得到一个表名参数的第一个字段的值
如果你在写存储过程的时候,想得到select dvalue from + @Tablename的值,怎么办呢就用它ALTER procedure sp_getvalue @sqlstr varchar(2000), @output varchar(50) output, @output1 int output, @type int as/********************
2004-12-30 13:15:00 1174
原创 查看表内容
你在用ISQLW的时候,想看一个表的内容怎么办呢?最好的办法就是在‘工具’-》‘自定义’里面增加一个快捷键,比如在Ctrl+0处增加sp_select然后在数据库中增加一个这样的存储过程这样你就可以在查询分析器里,选择你要查看的表名,然后按Ctrl + 0键。本blog里面的其它内容也是通过此方法操作的create procedure sp_select @a varchar(100)a
2004-12-30 13:14:00 1145
原创 如何提升自己的表为系统表,防止误操作对其进行修改
create table test1(did int)sp_configure allow updates, 1RECONFIGURE WITH OVERRIDEupdate sysobjects set xtype = S,info = 4 where id = object_id(test1)sp_configure allow updates, 0RECONFIGURE
2004-12-30 13:13:00 1115
原创 在查询分析器中,通过SQLDMO来得到脚本
--用以下脚本,可以得到任意对象的创建时的脚本,网上好像也流传有,但属于自己的东西用着还是感觉舒坦.--增加快捷键后,然后在查询分析器中按相应的快捷键就能显示对象的脚本.SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO ALTER procedure sp_script @objectname varchar(50)a
2004-12-30 13:08:00 1298
原创 delphi中宏小用.
用DELPHI的宏可以做一些非常简便的工作, 它是记录键盘的动作,如果我们将一些有规律的动作,用宏来进行操作,就可以达到事半功倍的效果,前提是编写的代码风格比较整洁.宏是以Ctrl + Shift + R开始, 也以Ctrl + Shift + R结束, 以Ctrl + Shift + P来播放.开始录制宏后,可以在状态栏看到 Recording字样.以下以Assign为例,来进行举例如下,我
2004-12-30 10:41:00 1350 3
原创 如何判断一个机器的MSSQL是否启动
//判断一个机器的MSSQL是否启动,通过SQL DMO是可以的,但对于没有装MSSQL的客户端来说就没办法,此处用的是连接MSSQL的1433端口,如果端口号不同,可以通过传递端口.unit Judge_U;interfaceuses SysUtils, Classes, IdBaseComponent, IdComponent, IdTCPConnection, IdIcmpClient
2004-12-30 08:45:00 2980 2
原创 一个简单的,适应多种数据库之间存取操作的数据库访问层
//大家在进行数据库访问的时候,经常会将自己常用的一些写成函数的形式, 但如果是不同类型的数据库,或者想转换数据库类型,就比较麻烦了,此处提供了三个对象.TDataAccess为基类.TServerAccess为ADO类型的,TClientAccess为BDE类型的, 这几个都有点不太舒服的地方,就是没有提供初始化委托函数,而是用一个INITALL来进行初始化,大家可以自己改进,这只是我们应用的一
2004-12-30 08:29:00 1182
原创 我对DELPHI写的几个基类型
//用惯JAVA或C#的人可能对DELPHI非常生气,连基本的类型都没有,我平时工作中,经常会曾试着把一些函数集合在一起,也经常做一些属于自己的基础类型的函数,此处把它们弄出来,有不当之处,请大家点评.unit BaseClass;interfaceuses SysUtils, Classes, StrUtils, IdGlobal, Math;type TCharSet = se
2004-12-30 08:20:00 1167 2
原创 双对象列表,双字符串列表
//在平时的应用中,经常会碰到一些,对象集TAs中每个A对象都对应每个B对象,对象TBs中每个对象B都对应一个A对象. 如果在A和B中各放一个Tobject属性来进行互相引用,也是非常不错的,但那样依赖关系太强了.//同样,我们经常会碰到一些这样的情况,有一串的编号和一串的名称进行对应,我们经常要从编号找名称,或从名称找编号. //所以,此处提取出来了两个对象TDoubleObjList和TDo
2004-12-30 08:17:00 1047 1
原创 生成表中的数据的脚本。
在A服务器中有表 table1 ,想把该表的内容导到 B服务器中,这两个数据库没联网,怎么办?导成外部文件,再用导入导出。。。。 这太笨了吧,如果对方服务器是INTERNET上的,只能执行服本怎么办,晕死了吧,用这个存储过程来帮你。ALTER proc sp_GetTableData @objname nvarchar(776)as-- set @objname=s_cod
2004-12-29 23:25:00 985
原创 在查询分析器中,用快捷键取得字段的列表。
ALTER procedure sp_getfields @tablename varchar(100) as declare tmpCursor cursor for select name from syscolumns where id = Object_ID(@tablename) open tmpCursor declare @fieldna
2004-12-29 23:01:00 1006
原创 查询分析器中,用快捷键取字段的描述
ALTER procedure sp_columnscript @tablename varchar(50), @columnname varchar(50) = nullas/***************************** 修改日期:2003-04-09 修改人:wu 备注:取得某个表的备注:*****************************/ declare
2004-12-29 22:59:00 846
原创 MSSQL中取得计算机名
ALTER FUNCTION S_GetComputerName()RETURNS varchar(50)AS BEGIN declare @returnvalue varchar(50) select @returnvalue = hostname from master..sysprocesses where spid = @@spid Return(Rtr
2004-12-29 22:55:00 1141
原创 mssql中十进制转换成十六进制字符串
ALTER function IntToHex(@i int)returns varchar(20)asbegindeclare @tmpint intset @tmpint = @ideclare @result varchar(20)set @result = while @i begin set @tmpint = @i % 16 set @i = @i / 16 s
2004-12-29 22:54:00 2010
原创 接口小用
很多人总是问我,接口怎么用,什么时候用它。猛地被他们一问,只能讲讲以前的应用,发现都不是非常容易理解,今天发现有一个实例,还是非常好讲解的。我们有一个对数据进行快速下载的函数。procedure TDataSwitch.DownTable(ASQLStr, ATableName: string);var tmpDataSet: TDataSet; tmpDestDataSet: TDataSe
2004-12-29 22:29:00 835
原创 对象的关系
今天趁着第一个阶段编码的结束,花了点时间将几个关键对象重构了一次,现在看看,代码还是流畅多了,看来用测试驱动开发,还是比较好的,虽然看起来时间花上去了,但心里有了底,而且也给测试减少了一些工作,重构的时候不再是那么胆小了。用DUNIT很不习惯的一点就是,不像其它的自动化测试工具那样,能够对界面进行处理,虽然写的代码与界面关系已经不大了,但有时还是免不了漏掉些事情。把今天的流水账记一下吧1、写代码时
2004-12-29 22:17:00 903
原创 渴望走出困境
一直都没有办法摆脱目前所面临的处境,由于力量不是非常的平衡,在经过多次的磨合之后,都让人感觉很不成功。现在摆在目前的任务有好几个1、新项目的开发:按照我的预期目标,新的项目应该是由三个左右的人一起进行调研,整理分析的,可因为最近的事特别多,只能由一个刚进公司半年的一个分析员来进行,说真的,感觉一个字,糟透了,每天都必须要我花上两个来小时的时候与他一起讨论,然后让他根据这些进行总结,归纳,但他却总也
2004-12-29 21:57:00 837
原创 查看字串内容
在调试存储过程时,对于一些超过255个字符的字符串如何显示呢?因为不管是PRINT还是SELECT都不方便 最好的办法当然是写一个存储过程来显示它 create procedure sp_getstr @str varchar(4000) /********** 修改人: qiubole 备注:读取串里面内容 **********/as declare @i
2004-08-01 14:48:00 614
原创 视图妙用
1、分离逻辑与业务数据。 众所周知,在与数据库相互的应用系统的设计过程中,我们经常会对其操作行为分离,当然,这第一步就是要求不要用数据库敏感控件,第二就是要求显示与操作分离,最好的办法就是采用视图,比如我们有如下需求。 A,查看一张单据的明细 B,对该明细进行编辑 虽然需求很简单,但如果要考虑到需求的变更,就需要我们经常重新组织查看的方式,因
2004-08-01 14:42:00 820
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人