- 博客(254)
- 资源 (3)
- 收藏
- 关注
关系代数五种基本操作和四程组合操作
五种基本操作:并(Union):设关系R和关系S具有相同的元数n,且相应的属性取自同一个域,则关系R和关系S的并由属于R或属于S的元组组成,其结果仍为n元的关系差(Difference):设关系R和关系S具有相同的元数n,且相应的属性取自同一个域,则关系R和关系S的差由属于关系R而不属于关系S的元组组成,其结果仍为n元的关系笛卡尔积(Cartesian Product):设关系R和关...
2008-03-04 23:40:00 2897
原创 关系数据模型
用二维表表示实体集,用关键码表示实体间联系的数据模型称为关系模型。域D1,D2,D3.....Dn上的笛卡尔积的子集称为在域D1,D2,D3.....Dn上的关系。关系的成员为元组。关系具有以下特点: 关系可以看成是由行和列交叉组成的二维表格,它表示一个实体集 表中的一行称为一个元组,可用来表示实体集中的一个实体 表中的列称为属性,列名即为属性名,表中的属
2008-03-04 23:19:00 2530
关系数据模型
用二维表表示实体集,用关键码表示实体间联系的数据模型称为关系模型。域D1,D2,D3.....Dn上的笛卡尔积的子集称为在域D1,D2,D3.....Dn上的关系。关系的成员为元组。关系具有以下特点:关系可以看成是由行和列交叉组成的二维表格,它表示一个实体集表中的一行称为一个元组,可用来表示实体集中的一个实体表中的列称为属性,列名即为属性名,表中的属性名不能相同列的取值...
2008-03-04 23:19:00 328
转载 获取单据编号的存储过程
CREATE TABLE [dbo].[BillNo]( [Id] [int] IDENTITY(1,1) NOT NULL, [BillName] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, [MaxNo] [int] NULL, [MaxDate] [varchar](20) COLLATE Chines
2008-02-25 23:01:00 1232
获取单据编号的存储过程
CREATETABLE[dbo].[BillNo]([Id][int]IDENTITY(1,1)NOTNULL,[BillName][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,[MaxNo][int]NULL,[MaxDate][varchar](20)COLLATEChinese_PRC_CI_ASNULL,[Prefix][varchar](...
2008-02-25 23:01:00 672
原创 CodeIgniter类库之Validation Class(续)
在之前的一篇文章《CodeIgniter类库之Validation Class 》向大家介绍过CodeIgniter的Validation类库用法,但并不是很全面,现在对其进行部分补充。Validation可以对提交的表单中的数据进行验证,当验证失败后会返回到表单让用户重新录入。当需要用户录入很多数据的时候,我们就希望能够的验证失败后,在表单中保留那些正确的数据,用户只要重新录入不符合验证规则
2008-02-20 11:50:00 1798
CodeIgniter类库之Validation Class(续)
在之前的一篇文章《CodeIgniter类库之Validation Class 》向大家介绍过CodeIgniter的Validation类库用法,但并不是很全面,现在对其进行部分补充。Validation可以对提交的表单中的数据进行验证,当验证失败后会返回到表单让用户重新录入。当需要用户录入很多数据的时候,我们就希望能够的验证失败后,在表单中保留那些正确的数据,用户只要重新录入不符合验证规...
2008-02-20 11:50:00 114
原创 Delphi Open Tools API - How to create and add new menu item
之前提介绍过如何编写一个菜单专家(Menu Wizard),但它有一个不足之处--就是我们所编写的菜单项只能作为Delphi IDE环境中的“Help”菜单的子项出现。如果我们想在Delphi IDE主菜单中任一位置插入我们自己的菜单项又应该如何做呢? 其实办法很简单,只需要编写一个插件专家(Add-in Wizard),在其构造函数中将菜单插入到Delphi IDE主菜单中,并
2008-01-23 10:47:00 1551
Delphi Open Tools API - How to create and add new menu item
之前提介绍过如何编写一个菜单专家(Menu Wizard),但它有一个不足之处--就是我们所编写的菜单项只能作为Delphi IDE环境中的“Help”菜单的子项出现。如果我们想在Delphi IDE主菜单中任一位置插入我们自己的菜单项又应该如何做呢?其实办法很简单,只需要编写一个插件专家(Add-in Wizard),在其构造函数中将菜单插入到Delphi IDE主菜单中,并在其析构函数中...
2008-01-23 10:47:00 181
原创 Delphi Open Tools API - Menu Wizard
在Delphi中编写一个Menu Wizard也是相当的简单,在实现IOTAWizard接口的同时,也实现IOTAMenuWizard接口即可。
2008-01-21 22:52:00 1153
原创 Delphi Open Tools API - Simple Wizard
之前向大家简单的介绍了Open Tools API,现在我们就要亲自动手编写一个简单的Wizard,来体验Open Tools API的魅力所在。 在Delphi6中,不再推荐大家使用ExptIntf单元中的TIExpert类做为我们自己编写的Wizard的基类,而是改用TInterfacedObject做为其基类,并实现ToolsAPI单元中的一个或我个接口。 编写
2008-01-21 09:56:00 2062
Delphi Open Tools API - Simple Wizard
之前向大家简单的介绍了Open Tools API,现在我们就要亲自动手编写一个简单的Wizard,来体验Open Tools API的魅力所在。在Delphi6中,不再推荐大家使用ExptIntf单元中的TIExpert类做为我们自己编写的Wizard的基类,而是改用TInterfacedObject做为其基类,并实现ToolsAPI单元中的一个或我个接口。编写一个Wizard必须要实...
2008-01-21 09:56:00 131
原创 Delphi Open Tools API概述
Delphi为我们提供了一组AIP(Open Tools API),允许我们使用这些函数,将自定义的菜单项、工具栏按钮、创建窗体专家以及更多的东西加入到IDE中,以提高自己的开发效率。 使用Tools API是一件很容易的事,只要实现一些特定的接口,并调用另一些接口提供的服务即可。编写一个Tools API代码和编写组件或是属性编辑器很类似,必须将这些代码编译为设计期包或是DLL
2008-01-20 20:56:00 3183
Delphi Open Tools API概述
Delphi为我们提供了一组AIP(Open Tools API),允许我们使用这些函数,将自定义的菜单项、工具栏按钮、创建窗体专家以及更多的东西加入到IDE中,以提高自己的开发效率。使用Tools API是一件很容易的事,只要实现一些特定的接口,并调用另一些接口提供的服务即可。编写一个Tools API代码和编写组件或是属性编辑器很类似,必须将这些代码编译为设计期包或是DLL加载到Delp...
2008-01-20 20:56:00 221
原创 自己动手编写Delphi Expert
在刚刚开始编程阶段,自己一步步编写出一个登录窗体,或是一个能够对数据表记录进行增、删、改的窗体时,会感到非常的兴奋。但随着编程时间和编写项目的增加,会发现这种没有什么技术含量的窗体被不断的重复编写,于是乎开始思考有没有一种一劳永逸的办法可以帮助我们摆脱这种窘境呢?有的朋友或者会说,将这些做成一个标准的窗体存放在某个地主,在需要的时候将其Copy过来,然后略为修改。不可否认,这也是一种方法,
2008-01-09 23:22:00 1902
自己动手编写Delphi Expert
在刚刚开始编程阶段,自己一步步编写出一个登录窗体,或是一个能够对数据表记录进行增、删、改的窗体时,会感到非常的兴奋。但随着编程时间和编写项目的增加,会发现这种没有什么技术含量的窗体被不断的重复编写,于是乎开始思考有没有一种一劳永逸的办法可以帮助我们摆脱这种窘境呢?有的朋友或者会说,将这些做成一个标准的窗体存放在某个地主,在需要的时候将其Copy过来,然后略为修改。不可否认,这也是一种方法,但对于...
2008-01-09 23:22:00 95
转载 MSSQL数据库中Text类型字段在PHP中被截断之解
在PHP中使用了MSSQL数据库,恰巧数据库中又使用了Text类型字段,于是问题产生了。每次从数据库中查询得到的数据总是被莫名的截断,一开始是以为我使用的PHP框架中对字符串的长度有所限制,后来发现这是个较愚蠢的想法,因为在提交数据时可以将字符串内容全部的提交到数据库中,只是读取时发生此现象,于是上网搜寻是否有类似的问题。运气还挺不错,第一次搜索就找到了解决的办法,遂决定将其转贴在我的Bl
2008-01-03 21:11:00 3744 3
MSSQL数据库中Text类型字段在PHP中被截断之解
在PHP中使用了MSSQL数据库,恰巧数据库中又使用了Text类型字段,于是问题产生了。每次从数据库中查询得到的数据总是被莫名的截断,一开始是以为我使用的PHP框架中对字符串的长度有所限制,后来发现这是个较愚蠢的想法,因为在提交数据时可以将字符串内容全部的提交到数据库中,只是读取时发生此现象,于是上网搜寻是否有类似的问题。运气还挺不错,第一次搜索就找到了解决的办法,遂决定将其转贴在我的Blog中...
2008-01-03 21:11:00 192
原创 CodeIgniter类库之Validation Class
在进行BS编程时,我们时常需要对客户提交的数据进行验证。每种脚本语言都有一套自己的验证模式,CodeIgnite也提供了一套相当好用的类库 -- Validation Class。 和使用其他类库一样,在使用Validation Class之前需要将其加载。$this->load->library("validation"); 加载之后我们就可以使用$this->validati
2007-12-11 14:36:00 1773
CodeIgniter类库之Validation Class
在进行BS编程时,我们时常需要对客户提交的数据进行验证。每种脚本语言都有一套自己的验证模式,CodeIgnite也提供了一套相当好用的类库 -- Validation Class。和使用其他类库一样,在使用Validation Class之前需要将其加载。$this->load->library("validation");加载之后我们就可以使用$this->val...
2007-12-11 14:36:00 154
原创 Delphi与Java中的日期互换
在最近做的一个项目中用到了Java和Delphi,发现它们不能正确读取对方的日期类型,如在Java中写入一个值为“2007-12-1”的日期值,通过Delphi读取却不是这个值了。 通过查阅资料,发现两者对日期类型的定义略有不同。Java中日期使用的是长整型进行存储的,它表示距“1970-1-1”的毫秒数。如“1970-1-2”是在“1970-1-1”后的86400000毫秒,所以J
2007-12-07 09:25:00 2197 2
Delphi与Java中的日期互换
在最近做的一个项目中用到了Java和Delphi,发现它们不能正确读取对方的日期类型,如在Java中写入一个值为“2007-12-1”的日期值,通过Delphi读取却不是这个值了。通过查阅资料,发现两者对日期类型的定义略有不同。Java中日期使用的是长整型进行存储的,它表示距“1970-1-1”的毫秒数。如“1970-1-2”是在“1970-1-1”后的86400000毫秒,所以Java中就...
2007-12-07 09:25:00 92
原创 CodeIgniter类库之Profiler Class
在之前有讲到Benchmarking Class的用法(参见CodeIgniter类库之Benchmarking Class),他只能显示出两个基准点之间所消耗的时间信息。如果想得到现多的对调试程序有帮助的信息,则可以使用CodeIgniter中的Profile Class,他不仅可以在页面底部显示出我们以及系统定义的所有基准点的时间消耗,同时还会显示出提交的数据和数据库查询的信息,为我们
2007-11-26 20:01:00 1627
CodeIgniter类库之Profiler Class
在之前有讲到Benchmarking Class的用法(参见CodeIgniter类库之Benchmarking Class),他只能显示出两个基准点之间所消耗的时间信息。如果想得到现多的对调试程序有帮助的信息,则可以使用CodeIgniter中的Profile Class,他不仅可以在页面底部显示出我们以及系统定义的所有基准点的时间消耗,同时还会显示出提交的数据和数据库查询的信息,为我们调试...
2007-11-26 20:01:00 155
原创 CodeIgniter类库之Benchmarking Class
CodeIgniter中有个Benchmarking类库,它是被系统自动被加载的,不需要手工加载。Benchmarking类库能够计算出任意两个被标记点之间的代码执行时间。通过这个数值,可以评估程序员编写的程序的效率。 另外,当CodeIgniter框架被调用时,系统会调用Benchmark类库中的方法,以计算出Output类库将所有内容正确的发送至浏览器所执行的时间。
2007-11-22 23:47:00 2250
CodeIgniter类库之Benchmarking Class
CodeIgniter中有个Benchmarking类库,它是被系统自动被加载的,不需要手工加载。Benchmarking类库能够计算出任意两个被标记点之间的代码执行时间。通过这个数值,可以评估程序员编写的程序的效率。另外,当CodeIgniter框架被调用时,系统会调用Benchmark类库中的方法,以计算出Output类库将所有内容正确的发送至浏览器所执行的时间。可以在我们自己编写的...
2007-11-22 23:47:00 115
原创 CodeIgniter类库之Calendar Class
CodeIgniter作为一款优秀的PHP开源框架,提供了相当丰富的类库供编程人员使用,这其中也包括对日历进行处理的Calendar Class。 Claendar Class能够帮助我们动态的创建日历,支持使用模板对其进行样式化以便给提供更好的用户体验,还能够对日历中的日期单元格进行链接设置。 在使用Calendar Class之前,需要使用$this->lo
2007-11-22 11:46:00 1869 1
CodeIgniter类库之Calendar Class
CodeIgniter作为一款优秀的PHP开源框架,提供了相当丰富的类库供编程人员使用,这其中也包括对日历进行处理的Calendar Class。Claendar Class能够帮助我们动态的创建日历,支持使用模板对其进行样式化以便给提供更好的用户体验,还能够对日历中的日期单元格进行链接设置。在使用Calendar Class之前,需要使用$this->load->l...
2007-11-22 11:46:00 112
原创 Delphi VCL Framework中的ForEach模式
在实际的工作中偶尔会遇到如下情况:让一个类继承架构的对象实体能够通过一致的方法执行另外一个目标类对象的方法或是独立的函数,目标类需要被执行的方法或是独立的函数可以自由地改变或是增加而会影响执行类的架构。这个时候就会用到ForEach设计模式。 ForEach模式的目的是让拥有稳定继承架构的类对象能够执行外部可变化的方法或是函数。 它适用于以下两种情况: 如果应用系统
2007-11-20 22:27:00 2190
Delphi VCL Framework中的ForEach模式
在实际的工作中偶尔会遇到如下情况:让一个类继承架构的对象实体能够通过一致的方法执行另外一个目标类对象的方法或是独立的函数,目标类需要被执行的方法或是独立的函数可以自由地改变或是增加而会影响执行类的架构。这个时候就会用到ForEach设计模式。ForEach模式的目的是让拥有稳定继承架构的类对象能够执行外部可变化的方法或是函数。它适用于以下两种情况:如果应用系统中已经有一个稳定的继承架构...
2007-11-20 22:27:00 254
原创 Delphi中获取某类的祖先类及其所在单元名称
前几天在CSDN社区看到一篇《如何得到自身单元名称》的帖子,其中一位名为sdzeng网友给出了答案。受此启发,自己写了一个函数,用来获取指定类的所有祖先类的名称及其所在的单元名称。//参数说明://AClass: 需要获取祖先类的类//ASeries: 是一个字符串列表,用来存放返回的祖先类及其所在单元的名称procedure GetInheritanceSeries(AClass
2007-11-17 21:09:00 2937 2
Delphi中获取某类的祖先类及其所在单元名称
前几天在CSDN社区看到一篇《如何得到自身单元名称》的帖子,其中一位名为sdzeng网友给出了答案。受此启发,自己写了一个函数,用来获取指定类的所有祖先类的名称及其所在的单元名称。//参数说明://AClass:需要获取祖先类的类//ASeries:是一个字符串列表,用来存放返回的祖先类及其所在单元的名称procedureGetInheritanceSeries(AClass:TCla...
2007-11-17 21:09:00 197
原创 Delphi中的工厂模式
在面向对象的程序设计中,某一功能的实现往往是依赖多个类的协同工作,这当中不必可避免的会有一个核心的关键类,非关键类对关键类的依赖程度比较高(耦合比较紧),关键类的变动会景响到非关键类与其通信。比如在某个MIS系统中,用户数据是存储在文件中的,那么所有数据的读取与保存都依赖与那和与文件进行通信的类。突然某一天客户说要将数据存储到数据库中,那么我们是必要找出所有使用这些与文件通信的类的代码,并
2007-11-16 20:31:00 3629
Delphi中的工厂模式
在面向对象的程序设计中,某一功能的实现往往是依赖多个类的协同工作,这当中不必可避免的会有一个核心的关键类,非关键类对关键类的依赖程度比较高(耦合比较紧),关键类的变动会景响到非关键类与其通信。比如在某个MIS系统中,用户数据是存储在文件中的,那么所有数据的读取与保存都依赖与那和与文件进行通信的类。突然某一天客户说要将数据存储到数据库中,那么我们是必要找出所有使用这些与文件通信的类的代码,并使用新...
2007-11-16 20:31:00 281
转载 五种常见的PHP设计模式
工厂模式 最初在设计模式 一书中,许多设计模式都鼓励使用松散耦合。要理解这个概念,让我们最好谈一下许多开发人员从事大型系统的艰苦历程。在更改一个代码片段时,就会发生问题,系统其他部分 —— 您曾认为完全不相关的部分中也有可能出现级联破坏。该问题在于紧密耦合 。系统某个部分中的函数和类严重依赖于系统的其他部分中函数和类的行为和结构。您需要一组模式,使这些类能够相互通信,但不希望将它们紧密绑定
2007-11-16 16:03:00 1290
五种常见的PHP设计模式
工厂模式最初在设计模式 一书中,许多设计模式都鼓励使用松散耦合。要理解这个概念,让我们最好谈一下许多开发人员从事大型系统的艰苦历程。在更改一个代码片段时,就会发生问题,系统其他部分 —— 您曾认为完全不相关的部分中也有可能出现级联破坏。该问题在于紧密耦合 。系统某个部分中的函数和类严重依赖于系统的其他部分中函数和类的行为和结构。您需要一组模式,使这些类能够相互通信,但不希望将它们紧密绑定...
2007-11-16 16:03:00 71
原创 使用面向对象工具进行着面向过程的开发
在传统方法学里有两大分支 ---- 面向过程方法学和面向对象方法学。随着软件技术的发展,面向对象方法学的好外日益彰显,支持面向对象开发的开发工具也如雨后春笋般的涌向世面,C++、C#、Java、Delphi等等多不胜数。好多程序员朋友也跟随潮流,学习和使用这些开发工具(包括曾经的我)。工具换了,但开发思想却没有更换,或者说是没有发生太大的变化,只不过是使用面向对象的工具进行着面向过程的开发
2007-11-10 14:04:00 1445 1
使用面向对象工具进行着面向过程的开发
在传统方法学里有两大分支 ---- 面向过程方法学和面向对象方法学。随着软件技术的发展,面向对象方法学的好外日益彰显,支持面向对象开发的开发工具也如雨后春笋般的涌向世面,C++、C#、Java、Delphi等等多不胜数。好多程序员朋友也跟随潮流,学习和使用这些开发工具(包括曾经的我)。工具换了,但开发思想却没有更换,或者说是没有发生太大的变化,只不过是使用面向对象的工具进行着面向过程的开发工作。...
2007-11-10 14:04:00 85
原创 获取Delphi中定义的枚举类型的名称和值
利用TypInfo单元的GetEnumName和GetEnumValue可以遍历任意枚举类型,并获取其名称和值。下面是示例Demo。procedure TForm1.btnTestClick(Sender: TObject);var p: PTypeData; i: Integer; s: String; pt: PTypeInfo;begin ListBox1.Item
2007-11-08 10:13:00 7749
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人