Blog信息 |
blog名称:注册会计师(注会)练习软件 日志总数:398 评论数量:116 留言数量:27 访问次数:3272658 建立时间:2005年6月6日 |

| |
[borland eco 技术]ocl查询中的日期处理和变量 软件技术
吕向阳 发表于 2006/5/3 13:05:38 |
[borland eoc delphi ocl 日期 查询]
ocl查询语句中,日期型的常量表示如下#2006-01-01 例如想查询一个人类中生日在90年以后的语句应为
'person.allinsances->selcet(birthday>#1990-01-01'并且要十分注意的是细小的差别也导致程序运行出错,比方今天早上就为这个错误调试了好一会,原因出在:1990-01-01 ,不能将其设为1990-1-1,而这种表达在原delphi中是允许的.另外在ocl中不允许直接出现一般的变量,而只能是eco的变量,举一段代码
var vs: IVariableFactoryService; ov: IModifiableVariableList; rRet: IElementCollection; sCount: string; begin vs := EcoSpace.VariableFactoryService; //定义一个变量工厂 ov := vs.CreateVariableList ('vToday', DateTime.Today); //利用变量工厂建立一个变量列表,其中有一变量为vtoday指向datetime.today rRet := EcoSpace.OclService.Evaluate('Person.allInstances->select (Birthday >= vToday)', ov).GetAsCollection; //在ocl语句中利用这个vtoday变量 sCount := (rRet.Count as Tobject).ToString; //得到最后计算结果 MessageBox.Show (sCount); end; |
|
|