﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-诗.程序.人生-文章分类-ECO</title><link>http://www.cnitblog.com/starter/category/2684.html</link><description>我们互相笑一笑，
就知道了幸福的滋味，
把已逝的青春都忘了。</description><language>zh-cn</language><lastBuildDate>Wed, 05 Oct 2011 23:38:44 GMT</lastBuildDate><pubDate>Wed, 05 Oct 2011 23:38:44 GMT</pubDate><ttl>60</ttl><item><title>关于Access中ECO的解决</title><link>http://www.cnitblog.com/starter/articles/10211.html</link><dc:creator>诗.程序.人生</dc:creator><author>诗.程序.人生</author><pubDate>Mon, 08 May 2006 08:46:00 GMT</pubDate><guid>http://www.cnitblog.com/starter/articles/10211.html</guid><wfw:comment>http://www.cnitblog.com/starter/comments/10211.html</wfw:comment><comments>http://www.cnitblog.com/starter/articles/10211.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/starter/comments/commentRss/10211.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/starter/services/trackbacks/10211.html</trackback:ping><description><![CDATA[
		<p>改变connection配置中blobsize ,把1024改成65535。</p>
		<p>还有原有的自增型字段,会变成长整型.这时最好直接再把长整型改为自增型.这个一定要早做.因为一旦有了数据就不大好改了.</p>
		<p>设置PersistenceMapperXXX<br />PersistenceMapperxxx.SqlDatabaseConfig.SupportsDefaultColumnValues = false <br />PersistenceMapperxxx.SqlDatabaseConfig.UseSql92Joins = false. <br />PersistenceMapperxxx.SqlDatabaseConfig.DropColumnTemplate=<br />“ALTER TABLE &lt;TableName&gt; DROP COLUMN &lt;ColumnName&gt;”</p>
		<p>
				<br />It seems that the BooleanAsBit mapper stores "true" incorrectly. I suggest changing the mapper for System.Boolean to the one used in for example interbase (open the collection editor for PersistenceMapperxxx.SqlDatabaseConfig.PersistenceMappers, locate the System.Boolean entry and change the mapper to: Borland.Eco.Persistence.Default.BooleanAsInteger </p>
		<p>
				<br />After that, things should run fairly smoothly with Access... </p>
<img src ="http://www.cnitblog.com/starter/aggbug/10211.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/starter/" target="_blank">诗.程序.人生</a> 2006-05-08 16:46 <a href="http://www.cnitblog.com/starter/articles/10211.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对于数据库中有中文字段名的处理</title><link>http://www.cnitblog.com/starter/articles/10210.html</link><dc:creator>诗.程序.人生</dc:creator><author>诗.程序.人生</author><pubDate>Mon, 08 May 2006 08:45:00 GMT</pubDate><guid>http://www.cnitblog.com/starter/articles/10210.html</guid><wfw:comment>http://www.cnitblog.com/starter/comments/10210.html</wfw:comment><comments>http://www.cnitblog.com/starter/articles/10210.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/starter/comments/commentRss/10210.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/starter/services/trackbacks/10210.html</trackback:ping><description><![CDATA[要修改ECO_ORMAPPING<br /><br />要修改XML头使之<br />&lt;?xml version="1.0" encoding="gb2312"?&gt;<br /><br />否则无法Mapping。<img src ="http://www.cnitblog.com/starter/aggbug/10210.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/starter/" target="_blank">诗.程序.人生</a> 2006-05-08 16:45 <a href="http://www.cnitblog.com/starter/articles/10210.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自定义Ocl 动态变量</title><link>http://www.cnitblog.com/starter/articles/10208.html</link><dc:creator>诗.程序.人生</dc:creator><author>诗.程序.人生</author><pubDate>Mon, 08 May 2006 08:37:00 GMT</pubDate><guid>http://www.cnitblog.com/starter/articles/10208.html</guid><wfw:comment>http://www.cnitblog.com/starter/comments/10208.html</wfw:comment><comments>http://www.cnitblog.com/starter/articles/10208.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/starter/comments/commentRss/10208.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/starter/services/trackbacks/10208.html</trackback:ping><description><![CDATA[
		<p>在创建EcoSpace时，加入以下语句。<br />vhFirstname.EcoSpace = EcoSpace; //这一步的确很奇怪，必须手工加上才行。<br />vhFirstname.Element.AsObject := txtFirstname.Text;</p>
		<p>
				<br />自定义Ocl静态变量<br />首先在界面上增加一个ExpressionHandle，命名为ehRate，设定RootHandle 属性为rhRoot，<br />该组件将用于保存税率定义，然后添加一个OclVariables 组件，点击OclVariableCollection<br />属性，调出属性编辑器，添加一个Ocl 变量定义，设定变量的名称为TaxRate，然后设定变量的ElementHandle 为ehRate，同时设定ehRate 的<br />Expression 属性为0.06，对应于税率。然后将ehAcctItem 的Tax 字段的表达式由原来的<br />Amount*0.06 改为Amount*taxRate，注意这里的taxRate 的首字母一定要小写，否则表达式<br />校验会报错。再次运行程序，你会发现税费算出的结果确实等于Amount*0.06。<br />税率</p>
<img src ="http://www.cnitblog.com/starter/aggbug/10208.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/starter/" target="_blank">诗.程序.人生</a> 2006-05-08 16:37 <a href="http://www.cnitblog.com/starter/articles/10208.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eco中的ocl查询语句</title><link>http://www.cnitblog.com/starter/articles/10209.html</link><dc:creator>诗.程序.人生</dc:creator><author>诗.程序.人生</author><pubDate>Mon, 08 May 2006 08:37:00 GMT</pubDate><guid>http://www.cnitblog.com/starter/articles/10209.html</guid><wfw:comment>http://www.cnitblog.com/starter/comments/10209.html</wfw:comment><comments>http://www.cnitblog.com/starter/articles/10209.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/starter/comments/commentRss/10209.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/starter/services/trackbacks/10209.html</trackback:ping><description><![CDATA[
		<p>我们假定有两个类，其中一个是person,另一个是每个人工作的部门类department,两者之间的关系是person 0..* ------department 0..1,person类中有name:string,telephone:string,birthday:datetime;department类有name:string</p>
		<p>我们试着来做一些查询:</p>
		<p>person(类中的所有成员) 因为eco 中person类事实上是映射到person 数据表的，ocl语句中person是指的类，select 语句中person指的是表。<br />person.allinstances  相当于select * from person <br />person.allinstances-&gt;size 相当于select count(*) from person<br />person.allinstances-&gt;select(name='张三') 相当于select * from person where name='张三'<br />person.allinstances.birthday 相当于select birthday from person<br />person.allinstances-&gt;select(birthday&gt;=#1997-01-01) 相当于select * from person where birthday&gt;=#1997-01-01<br />person.allinstances-&gt;select(birthday.indaterange(#1975-01-01,#1995-01-01))下面我就不作比方了indaterange相当于between;<br />person.allinstances.formatdatetime('d mmmm yyyy')显示特定的日期格示如 9 december 1995是上面的一种对应显示<br />person.allinstances.name.concat( ' some text')与<br />person.allinstances.name+'some text'是一致的,相当于select name+'some text ' from person<br />person.allinstances.department 返回的是一个对象，指的是它对应的部门是哪一个，在sql语句中应无对应功能。</p>
		<p>department.allinstances.person.birthday 是指所有部门中的所有人员的生日<br />department.allinstances-&gt;collect(person) 所有部门的所有成员，不重复的。<br />department.allinstances-&gt;collect(person)-&gt;collect(birthday)所有部门所有成员的生日集合。<br />department.allinstances-&gt;collect(person-&gt;size)<br />每一个部门中人员总数集合，有点类似于select语句中的group by 的味道<br />person.allinstances-&gt;orderby(birthday)不用说，是排序的结果<br />person.allinstances-&gt;orderdescending(birthday)倒序<br />person.allinstances-&gt;first返回第一条<br />person.allinstances-&gt;orderby(name)-&gt;last 姓名排序后的最后一条<br />person.allinstances-&gt;at(2)第二条记录<br />person.allinstances-&gt;subsequence(2,6)第二条到第六条<br />person.allinstances-&gt;select(name.sqllike('%张%'))姓名中含姓张的所有人%为通配符</p>
		<p>相信这些对eco学习的人来说很有用，因为我最初为找到这些资料大费周章。后续的细节我会陆续补上。</p>
		<p> </p>
<img src ="http://www.cnitblog.com/starter/aggbug/10209.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/starter/" target="_blank">诗.程序.人生</a> 2006-05-08 16:37 <a href="http://www.cnitblog.com/starter/articles/10209.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OCL的对象查询方法</title><link>http://www.cnitblog.com/starter/articles/10207.html</link><dc:creator>诗.程序.人生</dc:creator><author>诗.程序.人生</author><pubDate>Mon, 08 May 2006 08:35:00 GMT</pubDate><guid>http://www.cnitblog.com/starter/articles/10207.html</guid><wfw:comment>http://www.cnitblog.com/starter/comments/10207.html</wfw:comment><comments>http://www.cnitblog.com/starter/articles/10207.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/starter/comments/commentRss/10207.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/starter/services/trackbacks/10207.html</trackback:ping><description><![CDATA[
		<p>private void btnCount_Click(object sender, System.EventArgs e)<br />{<br />//获得Ocl评估服务接口<br />IOclService oclService=<br />(IOclService)this.GetCurrentPerson().AsIObject().ServiceProvider.<br />GetEcoService(typeof(IOclService));<br />IElement itemCount=<br />oclService.EvaluateAndSubscribe(<br />this.GetCurrentPerson().AsIObject(),"AcctItems-&gt;Size",null,null);<br />int count=(int)itemCount.AsObject;<br />MessageBox.Show("账目数:"+count);<br />}</p>
		<p>
				<br />前面我们提到了Ocl 只是一种对象查询语言，我们不能使用它对对象数据进行类似于<br />Sql 语言中的Insert, Update，Delete 等操作，如果要想修改对象数据的话，需要对Ocl 查询<br />后返回的对象进行操作，最后调用UpdateDatabase 方法进行更新。</p>
<img src ="http://www.cnitblog.com/starter/aggbug/10207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/starter/" target="_blank">诗.程序.人生</a> 2006-05-08 16:35 <a href="http://www.cnitblog.com/starter/articles/10207.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EcoSpace设计页上的几个按钮的说明</title><link>http://www.cnitblog.com/starter/articles/10206.html</link><dc:creator>诗.程序.人生</dc:creator><author>诗.程序.人生</author><pubDate>Mon, 08 May 2006 08:33:00 GMT</pubDate><guid>http://www.cnitblog.com/starter/articles/10206.html</guid><wfw:comment>http://www.cnitblog.com/starter/comments/10206.html</wfw:comment><comments>http://www.cnitblog.com/starter/articles/10206.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/starter/comments/commentRss/10206.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/starter/services/trackbacks/10206.html</trackback:ping><description><![CDATA[
		<p>Select Package 则允许我们控制进行可持久性的UML包，对于不想进行持久性的UML<br />包，可以把它排除在持久保存范围外。点击Select UML Package按钮，会选中需要处理的包。</p>
		<p>Convert a Compiled Model to Eco III ModeLayer 这个不太用，可能是用于将现有ECO II模型转换到EcoIII模型。</p>
		<p>Wrap Existing Database with Eco 这个是用于将一个现有的数据库中的表，转换到类，并生成Mapping XML文件。这个用于转换数据库表。</p>
		<p>Generate Schema 这个是用于将自创建的类，在数据库中生成表。</p>
		<p>Envolve Schema 这个是用于将类的变化更新到表中去。这个操作会删除表中数据，改变表的结构，增加几个用于记录对象的表。我在这里称为全对象数据库 。</p>
		<p>Validate Model 这个只是用于测试一个数据库表与类是否相符。</p>
		<p>Genarate Dafault Mapping XML 这是用生成一个OR对应关系配置XML，可以将此文件放到FilePrevider中去。但这里生成Mapping是对应全对象数据库。</p>
		<p>Save OR Mapping To DB 这个是用于将OR对应关系配置保存到DB中去。会生成表ECO_ORMAPPING。</p>
<img src ="http://www.cnitblog.com/starter/aggbug/10206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/starter/" target="_blank">诗.程序.人生</a> 2006-05-08 16:33 <a href="http://www.cnitblog.com/starter/articles/10206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ECO中基本的增、删、更新等操作</title><link>http://www.cnitblog.com/starter/articles/10204.html</link><dc:creator>诗.程序.人生</dc:creator><author>诗.程序.人生</author><pubDate>Mon, 08 May 2006 08:29:00 GMT</pubDate><guid>http://www.cnitblog.com/starter/articles/10204.html</guid><wfw:comment>http://www.cnitblog.com/starter/comments/10204.html</wfw:comment><comments>http://www.cnitblog.com/starter/articles/10204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/starter/comments/commentRss/10204.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/starter/services/trackbacks/10204.html</trackback:ping><description><![CDATA[
		<p>增：<br />new Person(EcoSpace);</p>
		<p>增关联对象：<br />AcctItem acct=new AcctItem(EcoSpace);<br />acct.Person=(Person)ehPerson.Element.GetAsCollection()[dgPersons.CurrentRowIn<br />dex].AsObject;</p>
		<p>删：<br />ehPerson.Element.GetAsCollection().RemoveAt(dgPersons.CurrentRowIndex);<br />ehAcctItem.Element.GetAsCollection().RemoveAt(dgAcctItems.CurrentRowIndex);</p>
		<p>彻底删除：<br />AcctItem item=(AcctItem)ehAcctItem.Element.GetAsCollection()[Index].AsObject;<br />item.AsIObject().Delete();</p>
		<p>
				<br />数据更新（写到数据库中）：<br />EcoSpace.UpdateDatabase();<br /></p>
<img src ="http://www.cnitblog.com/starter/aggbug/10204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/starter/" target="_blank">诗.程序.人生</a> 2006-05-08 16:29 <a href="http://www.cnitblog.com/starter/articles/10204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Borland2006下ECO的数据库应用开发</title><link>http://www.cnitblog.com/starter/articles/10203.html</link><dc:creator>诗.程序.人生</dc:creator><author>诗.程序.人生</author><pubDate>Mon, 08 May 2006 08:28:00 GMT</pubDate><guid>http://www.cnitblog.com/starter/articles/10203.html</guid><wfw:comment>http://www.cnitblog.com/starter/comments/10203.html</wfw:comment><comments>http://www.cnitblog.com/starter/articles/10203.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/starter/comments/commentRss/10203.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/starter/services/trackbacks/10203.html</trackback:ping><description><![CDATA[我根据陈省的《基于ECOIII 的UML 模型驱动的数据库应用开发》经过在Borland2006下调试与修改，写了《Borland2006下ECO的数据库应用开发》。大家可以照着这里做一遍，会有一个基本的认识。<br /><a href="/Files/starter/Borland2006" &gt;<br="">http://www.cnitblog.com/Files/starter/Borland2006下ECO的数据库应用开发1.rar</a><br /><a href="/Files/starter/Borland2006">http://www.cnitblog.com/Files/starter/Borland2006下ECO的数据库应用开发2.rar</a><br /><a href="/Files/starter/Borland2006">http://www.cnitblog.com/Files/starter/Borland2006下ECO的数据库应用开发3.rar</a><img src ="http://www.cnitblog.com/starter/aggbug/10203.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/starter/" target="_blank">诗.程序.人生</a> 2006-05-08 16:28 <a href="http://www.cnitblog.com/starter/articles/10203.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>今天先上传两篇非常重要的学习Borland与ECO的基础文章</title><link>http://www.cnitblog.com/starter/articles/10176.html</link><dc:creator>诗.程序.人生</dc:creator><author>诗.程序.人生</author><pubDate>Sun, 07 May 2006 12:30:00 GMT</pubDate><guid>http://www.cnitblog.com/starter/articles/10176.html</guid><wfw:comment>http://www.cnitblog.com/starter/comments/10176.html</wfw:comment><comments>http://www.cnitblog.com/starter/articles/10176.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/starter/comments/commentRss/10176.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/starter/services/trackbacks/10176.html</trackback:ping><description><![CDATA[这是ECOII的一个官方介绍，一步步的很详细。看后必有所得。<a href="/Files/starter/del2005_object_relational_mapping.rar"><br />http://www.cnitblog.com/Files/starter/del2005_object_relational_mapping.rar</a><br /><br />这是Borland2005的一个技术介绍，实现了许多的东西，照上面的例子演练一篇，很有意义。<br /><a href="/Files/starter/delphi_2005_overview.rar">http://www.cnitblog.com/Files/starter/delphi_2005_overview.rar</a><img src ="http://www.cnitblog.com/starter/aggbug/10176.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/starter/" target="_blank">诗.程序.人生</a> 2006-05-07 20:30 <a href="http://www.cnitblog.com/starter/articles/10176.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>