行政区划程序的设计的详细介绍

行政区划程序的设计的详细介绍

Author:水如烟

总目录:行政区划数据方案设计

上一篇,行政区划程序的设计(八)

虽然前面分析了好多,提到了好些关键处,可真到写代码时,还是免不了会忽视过去。
刚才测试了昨晚的代码,这里出了问题:

PrivateSubUpdateDatabaseByDataSet(ByValdsAsDataSet)
ForEachtableAsDataTableInds.Tables
UpdateDatabaseByDataTable(table)

Next
EndSub

应该是:

PrivateSubUpdateDatabaseByDataSet(ByValdsAsDataSet)
'确保按版本由旧至新顺序更新

DimmDataVersionArray(ds.Tables.Count-1)AsString
ForiAsInteger=0Tods.Tables.Count-1
mDataVersionArray(i)=ds.Tables(i).TableName
Next

Array.Sort(mDataVersionArray)
'如果第一个版本大于最后一个版本,则倒置
IfmDataVersionArray(0)>mDataVersionArray(mDataVersionArray.Length-1)Then
Array.Reverse(mDataVersionArray)
EndIf

ForiAsInteger=0TomDataVersionArray.Length-1
UpdateDatabaseByDataTable(ds.Tables(mDataVersionArray(i)))
Next

EndSub

这一点,在考虑数据库的设计时就特别的强调过。昨晚写代码时就忘了。所以无论如何的有把握,最好还是将要点写在纸条上,不时的看一下好。

下面分析RegionalCodeCenter项目的要点。

程序说到这里,或许你认为是不是我将简单的问题复杂了,用得着建那么多的项目吗?可是到了RegionalCodeCenter这个项目,再分析下来,我会觉得项目还不够用。

再次重温各个项目的作用。
RegionalCodeLibary仅仅与数据库打交道。数据库夹带着它,无论到哪,都用得着。没有这个项目,只有数据库,无论是谁,都要走这个项目相似的路。它对外提供的结果,都是Framework的基础类。它没什么要求,很简单。它是满足这个方案需求的核心。核心的东西,就是需要简单。

RegionalCodeCommon项目。它是从全局全方位的角度来引领方案需求实现过程的思维。它是纵观全局的,也是横向联系的。但是它也是民主的,它仅仅是展现给编码者应注意些什么,如果你愿意,可以使用它提供的一些属性和方法,不愿意,你尽可绕开它。如果想少走弯路,快些上路,弄清楚并把握好它的意念,从而甘心接受它的“约束”,是值得的。

针对特定方案,你研究了,有体会了,也应该充实这个项目的内容,让它更具生气。

ReionalCodeCenter项目。它要联系上RegionalCodeLibary,并把RegionalCodeLibary提供的服务内容转成我们需要的特定内容,再转身,传给用户。
RegionalCodeLibary是方案的核心,而它呢,则是方案的中心,也是方案的关键,最纷繁复杂的了。
在这里,居中一刀切下来,就变成以后要说的Remoting(webservice我还没接触过)方式了。

如果你能体会“一刀切”,那么,后面的代码就好理解的了。

只能笼统说。下面边写代码边说好些。但要注意,写这个项目往往是先写RegionalCodeCommon项目的。

下一篇,行政区划程序的设计(十),RegionalCodeCommon项目的设计。