﻿<?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>博客园-花纯春</title><link>http://www.cnblogs.com/meta/</link><description>最近爱泡的论坛 安福瑞论坛 http://anforen.5d6d.com</description><language>zh-cn</language><lastBuildDate>Wed, 15 Oct 2008 23:16:48 GMT</lastBuildDate><pubDate>Wed, 15 Oct 2008 23:16:48 GMT</pubDate><ttl>60</ttl><item><title>Visual Studio 2008的使用感受</title><link>http://www.cnblogs.com/meta/archive/2008/10/13/1309889.html</link><dc:creator>花纯春</dc:creator><author>花纯春</author><pubDate>Mon, 13 Oct 2008 05:12:00 GMT</pubDate><guid>http://www.cnblogs.com/meta/archive/2008/10/13/1309889.html</guid><wfw:comment>http://www.cnblogs.com/meta/comments/1309889.html</wfw:comment><comments>http://www.cnblogs.com/meta/archive/2008/10/13/1309889.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/meta/comments/commentRss/1309889.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/meta/services/trackbacks/1309889.html</trackback:ping><description><![CDATA[摘要: 到这里我们大家可能都对Visual Studio有一定的认识，即便我们不是专业的相关技术开发人员，相信我们也能在身边的人用到的工具中对其有所所闻。从我用过Visual Studio 2008之后，我更加不断在朋友之间宣扬该产品，它尤其是在常见的使用场景在性能上的改进，无论是从开发效率，还是运行速度、稳定性方面，它的出现不得不说是我们大家的福音 &nbsp;&nbsp;<a href='http://www.cnblogs.com/meta/archive/2008/10/13/1309889.html'>阅读全文</a><img src ="http://www.cnblogs.com/meta/aggbug/1309889.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43012/" target="_blank">[新闻]最富有科技公司：中移动310亿美元居首</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Hyper-V挑战VMware老大地位</title><link>http://www.cnblogs.com/meta/archive/2008/10/13/1309878.html</link><dc:creator>花纯春</dc:creator><author>花纯春</author><pubDate>Mon, 13 Oct 2008 04:58:00 GMT</pubDate><guid>http://www.cnblogs.com/meta/archive/2008/10/13/1309878.html</guid><wfw:comment>http://www.cnblogs.com/meta/comments/1309878.html</wfw:comment><comments>http://www.cnblogs.com/meta/archive/2008/10/13/1309878.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/meta/comments/commentRss/1309878.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/meta/services/trackbacks/1309878.html</trackback:ping><description><![CDATA[摘要: 长久以来，在业内有这么一个神话，就是在虚拟化产品中，VMware是最有经验的公司，100%的财富 500强公司和92%的财富1000强公司，全球总共有超过10万的用户。VMware还拥有11个虚拟化专利权，在2007年，VMware的收入达到了13.3亿美元。这个神话造就了VMware在虚拟化产品的独霸地位。但神话终究是神话，终究有破灭的一天，而VMware十年的神话此刻也到了一个终点，因为Hyper-V的出现。&nbsp;&nbsp;<a href='http://www.cnblogs.com/meta/archive/2008/10/13/1309878.html'>阅读全文</a><img src ="http://www.cnblogs.com/meta/aggbug/1309878.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43012/" target="_blank">[新闻]最富有科技公司：中移动310亿美元居首</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>SharePoint中如何获得当前用户的loginName</title><link>http://www.cnblogs.com/meta/archive/2008/10/07/1305364.html</link><dc:creator>花纯春</dc:creator><author>花纯春</author><pubDate>Tue, 07 Oct 2008 03:17:00 GMT</pubDate><guid>http://www.cnblogs.com/meta/archive/2008/10/07/1305364.html</guid><wfw:comment>http://www.cnblogs.com/meta/comments/1305364.html</wfw:comment><comments>http://www.cnblogs.com/meta/archive/2008/10/07/1305364.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/meta/comments/commentRss/1305364.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/meta/services/trackbacks/1305364.html</trackback:ping><description><![CDATA[<h2>SharePoint中如何获得当前用户的loginName</h2>
<div class="t_msgfont" id="postmessage_226">选了解一下其属性。<br />
SPUser.LoginName Property (Microsoft.SharePoint)<br />
Gets the user name of the user. <strong>Namespace:</strong> Microsoft.SharePoint<br />
<strong>Assembly:</strong> Microsoft.SharePoint (in microsoft.sharepoint.dll) <img alt="" src="http://i.msdn.microsoft.com/platform/Controls/CollapsibleArea/resources/minus.gif" onload="attachimg(this, 'load')" border="0"> Syntax <br />
<table class="t_table" cellspacing="0">
    <tr>
            <td>Visual Basic (Declaration)<br />
            <br />
            </td>
        </tr>
        <tr>
            <td><font color="blue">Public</font> <font color="blue">ReadOnly</font> <font color="blue">Property</font> LoginName <font color="blue">As</font> <font color="blue">String</font></td>
        </tr>
    </table>
<br />
<table class="t_table" cellspacing="0">
    <tr>
            <td>Visual Basic (Usage)<br />
            <br />
            </td>
        </tr>
        <tr>
            <td><font color="blue">Dim</font> instance <font color="blue">As</font> SPUser<font color="blue">Dim</font> value <font color="blue">As</font> <font color="blue">String</font>value = instance.LoginName</td>
        </tr>
    </table>
<br />
<table class="t_table" cellspacing="0">
    <tr>
            <td>C#<br />
            <br />
            </td>
        </tr>
        <tr>
            <td><font color="blue">public</font> <font color="blue">string</font> LoginName { <font color="blue">get</font>; }</td>
        </tr>
    </table>
<br />
Property ValueA string that contains the user name. <br />
<br />
<br />
<img alt="" src="http://i.msdn.microsoft.com/platform/Controls/CollapsibleArea/resources/minus.gif" onload="attachimg(this, 'load')" border="0"> See Also <br />
Reference<a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spuser.aspx" target="_blank"><font color="#0033cc">SPUser Class</font></a><br />
<a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spuser_members.aspx" target="_blank"><font color="#0033cc">SPUser Members</font></a><br />
<a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.aspx" target="_blank"><font color="#0033cc">Microsoft.SharePoint Namespace</font></a><br />
<br />
参考：<a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spuser.loginname.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spuser.loginname.aspx</a><br />
<br />
如此<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%BD%E2%BE%F6">解决</span>：<a href="http://geekswithblogs.net/shervin/archive/2008/05/19/122238.aspx" target="_blank"><font color="#810081">How to get the current user logged into Sharepoint</font></a> <br />
<font size="2"></font>the following snippet get the current user lgged into Sharepoint and displays his/her Name, Login name, Email and all the groups he/she belongs to.<br />
<font size="2"><font color="#0000ff">try</font></font><font size="2"> {</font><font size="2"><font color="#008080">SPWeb</font></font><font size="2"> web = </font><font size="2"><font color="#008080">SPControl</font></font><font size="2">.GetContextWeb(Context);</font><font size="2"><font color="#008080">SPUser</font></font><font size="2"> sUser = web.CurrentUser; </font><font size="2"><font color="#0000ff">string</font></font><font size="2"> str = </font><font size="2"><font color="#800000">"Name:"</font></font><font size="2"> + sUser.Name + </font><font size="2"><font color="#800000">"&lt;BR&gt;"</font></font><font size="2">; </font><font size="2"><font color="#800000">"Login Name :"</font></font><font size="2"> + sUser.LoginName + </font><font size="2"><font color="#800000">"&lt;BR&gt;"</font></font><font size="2">; </font><font size="2"><font color="#800000">"Email:"</font></font><font size="2"> + sUser.Email + </font><font size="2"><font color="#800000">"&lt;BR&gt;"</font></font><font size="2">; </font><font size="2"><font color="#800000">"Groups:"</font></font><font size="2"> + sUser.Groups.Count + </font><font size="2"><font color="#800000">"&lt;BR&gt;"</font></font><font size="2">; </font><font size="2"><font color="#0000ff">foreach</font></font><font size="2"> (</font><font size="2"><font color="#008080">SPGroup</font></font><font size="2"> grp </font><font size="2"><font color="#0000ff">in</font></font><font size="2"> sUser.Groups) { </font><font size="2"><font color="#800000">" * "</font></font><font size="2"> + grp.Name + </font><font size="2"><font color="#800000">" total Members:"</font></font><font size="2"> + grp.Users.Count + </font><font size="2"><font color="#800000">"&lt;BR&gt;"</font></font><font size="2">; </font><font size="2"><font color="#0000ff">catch</font></font><font size="2"> (</font><font size="2"><font color="#008080">Exception</font></font><font size="2"> ex) { </font><font size="2"><font color="#800000">"No Current User"</font></font><font size="2"> ; </font><br />
<br />
<br />
<br />
<br />
<br />
str += <br />
str += <br />
str += <br />
<br />
<br />
str += <br />
}<br />
lblInfo.Text = str;<br />
} <br />
<br />
lblInfo.Text=<br />
} <br />
<br />
<a href="http://geekswithblogs.net/shervin/archive/2008/05/19/122238.aspx" target="_blank">http://geekswithblogs.net/shervin/archive/2008/05/19/122238.aspx</a></div>
<p>&nbsp;</p>
<p>原文首发：<a href="http://anforen.5d6d.com/thread-158-1-1.html">http://anforen.5d6d.com/thread-158-1-1.html</a></p><img src ="http://www.cnblogs.com/meta/aggbug/1305364.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43010/" target="_blank">[新闻]华盛顿抛弃微软Office 选择Google Apps</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>绝对值得写下来的知识！关于VPC与三类网的问题</title><link>http://www.cnblogs.com/meta/archive/2008/09/27/1301091.html</link><dc:creator>花纯春</dc:creator><author>花纯春</author><pubDate>Sat, 27 Sep 2008 14:40:00 GMT</pubDate><guid>http://www.cnblogs.com/meta/archive/2008/09/27/1301091.html</guid><wfw:comment>http://www.cnblogs.com/meta/comments/1301091.html</wfw:comment><comments>http://www.cnblogs.com/meta/archive/2008/09/27/1301091.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/meta/comments/commentRss/1301091.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/meta/services/trackbacks/1301091.html</trackback:ping><description><![CDATA[<p>绝对值得写下来的知识！关于VPC与三类网的问题</p>
<p>为此，我花了大半天时间，只要网上有的，中英文资料都找遍了，没解决。后来，还是自己试验，通过实践解决了。</p>
<p>情况是这样的，以前我用2个VPC，搭建SPS环境，成功了的，每台VPC都用的是双网卡，一个是真实网卡，即与物理机一样的，另一个是微软虚拟网卡，loopback.</p>
<p>IP分别设为10.50.50.X ，物理的设为192.168.100.X (实际上物理的这个，是自动获取的，为了上外网)</p>
<p>&nbsp;</p>
<p>VPC和物理机，以及VPC与VPC之间都能ping通。也能与其他物理机互通。</p>
<p>&nbsp;</p>
<p>最近，我在装OCS，同样也需要实现上面这一行的效果。N台互通。</p>
<p>&nbsp;</p>
<p>但，我用10.50.50.X这种设法就是不行。能与其他物理机通，但就是不能VPC之间互相ping通。</p>
<p>因为我想只用一个网卡了。双网卡，对OCS来说有问题。至少，我不需要。</p>
<p>&nbsp;</p>
<p>通过N次的查找资料，未果。</p>
<p>&nbsp;</p>
<p>在这样的资料提示下：</p>
<p>&#8220;<span class="Apple-style-span" style="word-spacing: 0px; font: 14px Arial; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0"> </p>
<p style="text-indent: 2em; line-height: normal">我们通常都是通过Ping命令来初步诊断网络状况的，但在Virtual PC的共享网络方式，Ping命令会碰到以下问题：</p>
<p style="text-indent: 2em; line-height: normal">1. Ping 192.168.131.254 不会有回应</p>
<p style="text-indent: 2em; line-height: normal">在Virtual PC 共享网络方式下，网关192.168.131.254对Ping命令不进行回应的，这是在软件设计时如此设定的。虽然不响应，但是网络连接还是工作的。因此在共享方式下，虚拟机中不能使用Ping 192.168.131.254网关来判断网络是否完好。</p>
<p></span>&#8221;</p>
<p>我想到了改为192打头的来试试，俗称C类网。</p>
<p>&nbsp;</p>
<p>一试就成功了。</p>
<p>&nbsp;</p>
<p>特此记一下。免得其他人搜解决办法时，搜不到。故放到网上。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>VPC这家伙，MS这家伙，都没有写资料出来。</p>
<p>亏我上午还高兴的认为MS将SQL　Uninstall的fatal error资料都写得那么精彩。咆。。。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>===</p>
<p>顺便再帖个相关资料：</p>
<p><span class="Apple-style-span" style="word-spacing: 0px; font: 14px/22px Arial; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0">地址分配对应用来说更多的是如何理解为什么会这样分配给你ip地址，需要自己做ip规划的机会是很少的，除非是私有的大型的网络，真正需要考虑大规模ip规划的工程师在全国应该不会超过3位数。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
1、IP地址<span class="Apple-converted-space">&nbsp;</span><br />
<br />
IP地址标识着网络中一个系统的位置。我们知道每个IP地址都是由两部分组成的：网络号和主机号。其中网络号标识一个物理的网络，同一个网络上所有主机需要同一个网络号，该号在互联网中是唯一的；而主机号确定网络中的一个工作端、服务器、路由器其它TCP/IP主机。对于同一个网络号来说，主机号是唯一的。每个TCP/IP主机由一个逻辑IP地址确定。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
网络号和主机号<span class="Apple-converted-space">&nbsp;</span><br />
<br />
IP地址有两种表示形式：二进制表示(1和0太多了就搞不清)和点分十进制表示。每个IP地址的长度为4字节，由四个8位域组成，我们通常称之为八位体。八位体由句点.分开，表示为一个0-255之间的十进制数。一个IP地址的4个域分别标明了网络号和主机号。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
2、地址类型<span class="Apple-converted-space">&nbsp;</span><br />
<br />
为适应不同大小的网络，internet定义了5种IP地址类型。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
可以通过IP地址的前八位来确定地址的类型：<span class="Apple-converted-space">&nbsp;</span><br />
<br />
类型 IP形式 网络号 主机号<span class="Apple-converted-space">&nbsp;</span><br />
<br />
A类 w.x.y.z w x.y.z w时1——126<span class="Apple-converted-space">&nbsp;</span><br />
<br />
B类 w.x.y.z w.x y.z w是128——191<span class="Apple-converted-space">&nbsp;</span><br />
<br />
C类 w.x.y.z w.x.y z w是192——223<span class="Apple-converted-space">&nbsp;</span><br />
<br />
我们来看一下这5类地址：<span class="Apple-converted-space">&nbsp;</span><br />
<br />
A类地址：可以拥有很大数量的主机，最高位为0，紧跟的7位表示网络号，余24位表示主机号，总共允许有126个网络。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
B类地址：被分配到中等规模和大规模的网络中，最高两位总被置于二进制的10，允许有16384个网络。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
C类地址：被用于局域网。高三位被置为二进制的110，允许大约200万个网络。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
D类地址：被用于多路广播组用户，高四位总被置为1110，余下的位用于标明客户机所属的组。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
E类地址是一种仅供试验的地址。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
私有ip范围，这主要是提供给企业内部网络建设时使用的ip地址，这些ip地址不会出现在internet 上，用户在考虑内部ip设置是可以直接使用，而不需要申请，而且从外部业不可以访问这些ip地址，实际使用的过程中需要在内部网络和外部网络之间设置nat服务器。<span class="Apple-converted-space">&nbsp;</span><br />
10.0.0.0 - 10.255.255.255 or 10.0.0.0/8<span class="Apple-converted-space">&nbsp;</span><br />
<br />
172.16.0.0 - 172.31.255.255 0r 172.16.0.0/12<span class="Apple-converted-space">&nbsp;</span><br />
<br />
192.168.0.0- 192.168.255.255 or 192.168.0.0/16<span class="Apple-converted-space">&nbsp;</span><br />
<br />
3、地址分配指南<span class="Apple-converted-space">&nbsp;</span><br />
<br />
在分配网络号和主机号时应遵守以下几条准则：<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(1)网络号不能为127。大家知道该标识号被保留作回路及诊断功能，还记得平时ping<span class="Apple-converted-space">&nbsp;</span><br />
<br />
127.0.0.1？<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(2)不能将网络号和主机号的各位均置1。如果每一位都是1的话，该地址会被解释为网内广播而不是一个主机号。(TCP/IP是一个可广播的协议嘛)<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(3)相应于上面一条，各位均不能置0，否则该地址被解释为&#8220;就是本网络&#8221;。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(4)对于本网络来说，主机号应该是唯一。(否则会出现IP地址已分配或有冲突之类的错误)<span class="Apple-converted-space">&nbsp;</span><br />
<br />
分配网络号<span class="Apple-converted-space">&nbsp;</span><br />
<br />
对于每个网络以及广域连接，必须有唯一的网络号，主机号用于区分同一物理网络中的不同主机。如果网络由路由器连接，则每个广域连接都需要唯一的网络号。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
分配主机号<span class="Apple-converted-space">&nbsp;</span><br />
<br />
主机号用于区分同一网络中不同的主机，并且主机号应该是唯一的。所有的主机包括路由器间的接口，都应该有唯一的网络号。路由器的主机号，要配置成工作站的缺省网关地址。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
有效的主机号<span class="Apple-converted-space">&nbsp;</span><br />
<br />
A类：w.0.0.1--w.255.255.254<span class="Apple-converted-space">&nbsp;</span><br />
<br />
B类：w.x.0.1--w.x.255.254<span class="Apple-converted-space">&nbsp;</span><br />
<br />
C类：w.x.y.1--w.x.y.254<span class="Apple-converted-space">&nbsp;</span><br />
<br />
4、子网屏蔽和IP地址<span class="Apple-converted-space">&nbsp;</span><br />
<br />
TCP/IP上的每台主机都需要用一个子网屏蔽号。它是一个4字节的地址，用来封装或&#8220;屏蔽&#8221;IP地址的一部分，以区分网络号和主机号。当网络还没有划分为子网时，可以使用缺省的子网屏蔽；当网络被划分为若干个子网时，就要使用自定义的子网屏蔽了。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
缺省值<span class="Apple-converted-space">&nbsp;</span><br />
<br />
我们来看看缺省的子网屏蔽值，它用于一个还没有划分子网的网络。即使是在一个单段网络上，每台主机也都需要这样的缺省值。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
它的形式依赖于网络的地址类型。在它的4个字节里，所有对应网络号的位都被置为1，于是每个八位体的十进制值都是255；所有对就主机号的位都置为0。例如：C类网地址192.168.0.1和相应的缺省屏蔽值255.255.255.0。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
变长子网<span class="Apple-converted-space">&nbsp;</span><br />
<br />
由于固定的abc方式分配ip地址存在很大的浪费，所以现在使用很多的子网分配方式采用变场子网的形式，可以更加的灵活。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
确定数据包的目的地址<span class="Apple-converted-space">&nbsp;</span><br />
<br />
我们说把屏蔽值和IP地址值做&#8220;与&#8221;的操作其实是一个内部过程，它用来确定一个数据包是传给本地还是远程网络上的主机。其相应的操作过程是这样的：当TCP/IP初始化时，主机的IP地址和子网屏蔽值相&#8220;与&#8221;。在数据包被发送之前，再把目的地址也和屏蔽值作&#8220;与&#8221;，这样如果发现源IP地址和目的IP地址相匹配，IP协议就知道数据包属于本地网上的某台主机；否则数据包将被送到路由器上。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
注：我们知道&#8220;与&#8221;操作是将IP地址中的每一位与子网屏蔽中相应的位按逻辑与作比较。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
建立子网<span class="Apple-converted-space">&nbsp;</span><br />
<br />
1、 子网简介<span class="Apple-converted-space">&nbsp;</span><br />
<br />
一个网络实际上可能会有多个物理网段，我们把这些网段称之为子网，其使用的IP地址是由某个网络号派生而得到的。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
将一个网络划分成若干个子网，需要使用不同的网络号或子网号。当然了，划分子网有它的优点，通过划分子网，每个单位可以将复杂的物理网段连接成一个网络，并且可以：<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(1) 混合使用多种技术，比如以太网和令牌环网。(最流行的两种接口都支持了哦)<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(2) 克服当前技术的限制，比如突破每段主机的最大数量限制。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(3) 通过重定向传输以及减少广播等传输方式以减轻网络的拥挤。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
实现子网划分<span class="Apple-converted-space">&nbsp;</span><br />
<br />
在动手划分子网之前，我们一定要先分析一下自己的需求以及将来的规划。一般情况下我们遵循这样的准则：<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(1) 确定网络中的物理段数量。(就是子网个数嘛)<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(2) 确定每个子网需要的主机数。注意一个主机至少一个IP地址。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(3) 基于此需求，定义：整个网络的子网屏蔽、每个子网唯一的子网号和每个子网的主机号范围。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
子网屏蔽位<span class="Apple-converted-space">&nbsp;</span><br />
<br />
在定义一个子网屏蔽之前，确定一下将来需要的子网数量及每子网的主机数是必不可少的一步。因为当更多的位用于子网屏蔽时，就有更多的可用子网了，但每个子网中的主机数将减少。(这和定义IP地址的概念正好相反)<span class="Apple-converted-space">&nbsp;</span><br />
<br />
2、定义子网屏蔽<span class="Apple-converted-space">&nbsp;</span><br />
<br />
将网络划分成若干个子网时，必须要定义好子网屏蔽。我们来看看定义的步骤：<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(1)确定物理网段也就是子网的个数，并将这个数字转换成二进制数。比如B类地址，分6个子网就是110。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(2)计算物理网段数(子网数)的二进制位数，这里是110，所以需要3位。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(3)以高位顺序(从左到右)将这个反码转换成相应的十进制值，因为需要3位，就将主机号前3位作为子网号，这里是11100000，所以屏蔽就是255.255.224.0。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
3、定义子网号<span class="Apple-converted-space">&nbsp;</span><br />
<br />
子网号与子网屏蔽的位数相同。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(1)列出子网号按高到低的顺序使用的位数。例如子网屏蔽使用了3位，二进制值是11100000。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(2)将最低的一位1转换成十进制，用这个值来定义子网的增量。这个例子中是1110，所以增量是32。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(3)用这个增量迭加从0开始的子网号，直到下一个值为256。这个例子中就是w.x.32.1-w.x.63.254、w.x.64.1-w.x.127.254等。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
4、定义子网中的主机号<span class="Apple-converted-space">&nbsp;</span><br />
<br />
从上面的例子看出，一旦定义了子网号，就已经确定了每个子网的主机号了。我们在做每次增量后得出的值表明了子网中主机号范围的起始值。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
确定每个子网中的主机数目<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(1)计算主机号可用的位数。例如在B类网中用3位定义了网络号，那么余下的13位定义了主机号。<span class="Apple-converted-space">&nbsp;</span><br />
<br />
(2)将这个余下的位数也就是主机号转换为十进制，再减去1。例如13位值1111111111111转换为十进制的话就是8191，所以这个网络中每个子网的主机数就是8190了。</span></p>
<img src ="http://www.cnblogs.com/meta/aggbug/1301091.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43009/" target="_blank">[新闻]微软：WGA验证每小时黑屏是善意提醒</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>word 2007开多窗口时，切换窗口极慢的解决办法</title><link>http://www.cnblogs.com/meta/archive/2008/09/23/1297319.html</link><dc:creator>花纯春</dc:creator><author>花纯春</author><pubDate>Tue, 23 Sep 2008 09:45:00 GMT</pubDate><guid>http://www.cnblogs.com/meta/archive/2008/09/23/1297319.html</guid><wfw:comment>http://www.cnblogs.com/meta/comments/1297319.html</wfw:comment><comments>http://www.cnblogs.com/meta/archive/2008/09/23/1297319.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/meta/comments/commentRss/1297319.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/meta/services/trackbacks/1297319.html</trackback:ping><description><![CDATA[<p>word 2007开多窗口时，切换窗口极慢的解决办法</p>
<p>office 2007最近用得是越来越冒火，就因为2GB内存的电脑，居然看word文档，切换窗口会卡!!</p>
<p>后来找到原因。如此解决。我只取消了其中一个，就是PDF。</p>
<p>Word 2007 切换慢的原因及解决方法<br />
　　Word2007打开多个文档后，互相切换时系统反应慢的原因及解决办法：最近用word2007编辑文档时，忽然发现在两个文档之间切换时word反应迟钝，要好几秒才能对文档进行编辑。记得以前刚装好word2007时没有这个现象啊，互相切换根本不会延迟啊，百思不得其解。<br />
　　解决方法：</p>
<p>运行word，在加载项禁用一些软件的的加载项。再打开两个文档，互相切换，爽，再也没有延迟了。</p>
<p>原文首发：<a href="http://anforen.5d6d.com/redirect.php?tid=61&amp;goto=lastpost#lastpost">http://anforen.5d6d.com/redirect.php?tid=61&amp;goto=lastpost#lastpost</a></p>
<img src ="http://www.cnblogs.com/meta/aggbug/1297319.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43008/" target="_blank">[新闻]研究表明上网可以提高记忆力</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>SQL Server 2005 安装不了SP2的原因及解决办法</title><link>http://www.cnblogs.com/meta/archive/2008/09/23/1297315.html</link><dc:creator>花纯春</dc:creator><author>花纯春</author><pubDate>Tue, 23 Sep 2008 09:41:00 GMT</pubDate><guid>http://www.cnblogs.com/meta/archive/2008/09/23/1297315.html</guid><wfw:comment>http://www.cnblogs.com/meta/comments/1297315.html</wfw:comment><comments>http://www.cnblogs.com/meta/archive/2008/09/23/1297315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/meta/comments/commentRss/1297315.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/meta/services/trackbacks/1297315.html</trackback:ping><description><![CDATA[摘要: 简言之，就是改了机器名，而SERVER中的名还是以前的，so...&nbsp;&nbsp;<a href='http://www.cnblogs.com/meta/archive/2008/09/23/1297315.html'>阅读全文</a><img src ="http://www.cnblogs.com/meta/aggbug/1297315.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43008/" target="_blank">[新闻]研究表明上网可以提高记忆力</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>在VPC中使用回环网的原因和操作步骤!</title><link>http://www.cnblogs.com/meta/archive/2008/09/23/1297264.html</link><dc:creator>花纯春</dc:creator><author>花纯春</author><pubDate>Tue, 23 Sep 2008 09:01:00 GMT</pubDate><guid>http://www.cnblogs.com/meta/archive/2008/09/23/1297264.html</guid><wfw:comment>http://www.cnblogs.com/meta/comments/1297264.html</wfw:comment><comments>http://www.cnblogs.com/meta/archive/2008/09/23/1297264.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/meta/comments/commentRss/1297264.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/meta/services/trackbacks/1297264.html</trackback:ping><description><![CDATA[摘要: 在VPC中使用回环网的原因和操作步骤!Microsoft Virtual PC Tip - Using the Microsoft Loopback Adapter &nbsp;&nbsp;<a href='http://www.cnblogs.com/meta/archive/2008/09/23/1297264.html'>阅读全文</a><img src ="http://www.cnblogs.com/meta/aggbug/1297264.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43008/" target="_blank">[新闻]研究表明上网可以提高记忆力</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>专业IT顾问写的教程　一步一步　截图　安装OCS 很详细 </title><link>http://www.cnblogs.com/meta/archive/2008/09/23/1296612.html</link><dc:creator>花纯春</dc:creator><author>花纯春</author><pubDate>Tue, 23 Sep 2008 02:38:00 GMT</pubDate><guid>http://www.cnblogs.com/meta/archive/2008/09/23/1296612.html</guid><wfw:comment>http://www.cnblogs.com/meta/comments/1296612.html</wfw:comment><comments>http://www.cnblogs.com/meta/archive/2008/09/23/1296612.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/meta/comments/commentRss/1296612.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/meta/services/trackbacks/1296612.html</trackback:ping><description><![CDATA[<h2>有朋友问起，我很久没发文章了，是啊，最近在不断的换学新东西 学，也没什么好发的。只有发些安装部署类的了。</h2>
<h2>&nbsp;</h2>
<h2>专业IT顾问写的教程　一步一步　截图　安装OCS 很详细</h2>
<div class="t_msgfont" id="postmessage_52"><u><a href="http://www.confusedamused.com/notebook/ocs-2007-installation-part-1/" target="_blank">http://www.confusedamused.com/notebook/ocs-2007-installation-part-1/</a></u><br />
<br />
<u><span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%D7%A8%D2%B5">专业</span>IT<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%B9%CB%CE%CA">顾问</span>写的<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%BD%CC%B3%CC">教程</span>　一步一步　截图　安装<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=OCS">OCS</span> 很详细</u></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>现在，我正在照这教程来装OCS。</p>
<p>全程记录在 安福瑞论坛 的OCS版帖子中。现在喜欢上用这论坛了。速度快，操作人性化...</p>
<p>&nbsp;</p>
<p>现转部分内容到博客上来，那边帖子不断更新中。</p>
<p>&nbsp;</p>
<h2>AdminPak.exe在windows 2003下安装失败</h2>
<div class="t_msgfont" id="postmessage_66">AdminPak.exe在windows 2003下安装失败，我可是用的Windows server 2003 R2版本啊。</div>
<div class="t_msgfont">&nbsp;</div>
<div class="t_msgfont">
<h2>最早是按国内的一篇教程来安装的</h2>
<div class="t_msgfont" id="postmessage_69">直接在DC上安装了，因为我用的英文的操作系统，而安装的是中文的OCS，安装后，即也没有提示成功，也没有提供失败，整个就是没反应。也不知是否改动了域控的设置。现在照这个英文的来安装，就在另一台VPC虚拟机上安装了。好慢啊，现在进度条才3%。<br />
也没有出现部署向导。<br />
DC上是先装了证书服务和提升域为2003本地模式的。</div>
</div>
<div class="t_msgfont">&nbsp;</div>
<div class="t_msgfont"><a href="http://anforen.5d6d.com/viewthread.php?tid=46&amp;pid=69&amp;page=1&amp;extra=page%3D1#pid69">http://anforen.5d6d.com/viewthread.php?tid=46&amp;pid=69&amp;page=1&amp;extra=page%3D1#pid69</a></div>
<div class="t_msgfont">原帖点上面的URL。</div>
<img src ="http://www.cnblogs.com/meta/aggbug/1296612.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43008/" target="_blank">[新闻]研究表明上网可以提高记忆力</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>更新的资料和随想，都放到我新建的小站“安福瑞论坛”了</title><link>http://www.cnblogs.com/meta/archive/2008/09/23/1296323.html</link><dc:creator>花纯春</dc:creator><author>花纯春</author><pubDate>Mon, 22 Sep 2008 16:31:00 GMT</pubDate><guid>http://www.cnblogs.com/meta/archive/2008/09/23/1296323.html</guid><wfw:comment>http://www.cnblogs.com/meta/comments/1296323.html</wfw:comment><comments>http://www.cnblogs.com/meta/archive/2008/09/23/1296323.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/meta/comments/commentRss/1296323.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/meta/services/trackbacks/1296323.html</trackback:ping><description><![CDATA[<p>今天，成都天气真热，极度的闷热，预报的下暴雨，结果一点雨星也没有。专家真TMD成砖家了。<br />
很久没有写博文了，因为我最近作了个称作&#8220;安福瑞论坛&#8221;的小站。因为我喜欢古代的&#8220;瑞福祥&#8221;，所以取这个名。<br />
上面什么内容都放，当然除了非法的哈。<br />
随时，可开新版。速度和版本都比BLOG要好。<br />
所以，有很多新的随想和资料，我都放上面了。故而博客上就没少内容了。</p>
<p>欢迎您来作版主。<br />
网址：<a href="http://anforen.5d6d.com/">http://anforen.5d6d.com/</a><br />
</p>
<img src ="http://www.cnblogs.com/meta/aggbug/1296323.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43008/" target="_blank">[新闻]研究表明上网可以提高记忆力</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Oracle11g之实用技术--将数据插入Oracle数据库时如何得到其rowId</title><link>http://www.cnblogs.com/meta/archive/2008/09/19/1294019.html</link><dc:creator>花纯春</dc:creator><author>花纯春</author><pubDate>Fri, 19 Sep 2008 04:36:00 GMT</pubDate><guid>http://www.cnblogs.com/meta/archive/2008/09/19/1294019.html</guid><wfw:comment>http://www.cnblogs.com/meta/comments/1294019.html</wfw:comment><comments>http://www.cnblogs.com/meta/archive/2008/09/19/1294019.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/meta/comments/commentRss/1294019.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/meta/services/trackbacks/1294019.html</trackback:ping><description><![CDATA[<p><strong>Oracle11g之实用技术--将数据插入Oracle数据库时如何得到其rowId<br />
</strong>Oracle11g有诸多的新特性，相信各位已经从很多渠道了解到了(注：还不清楚的请访问<a href="http://wmdata.com.cn/oracle/11g/index.asp?froms=blog">http://wmdata.com.cn/oracle/11g/index.asp?froms=blog</a>)，在此，我重点介绍一下如何在Oracle11g中插入数据时得到RowId，并公布一下，才发现的小秘密。</p>
<p>在有些应用场景下，我们需要在将数据插入到数据库时，返回rowId。Oracle有一条返回语句。其语法如下：</p>
<p><br />
INSERT INTO &lt;table_name&gt;<br />
(column_list)<br />
VALUES<br />
(values_list)<br />
RETURNING &lt;value_name&gt;<br />
INTO &lt;variable_name&gt;;</p>
<p>但在插入数据后，如何得到rowId呢？<br />
在JDBC中，可以使用Callback语句去执行Procedure，因此，我们可以从连接对象产生Callback语句，并执行插入命令的SQL脚本，这样以从对象得到返回值。这个关键是如何写这条插入语句？并且如何去调用语句以及如何得到返回值。<br />
&nbsp;<br />
以下是我的测试代码。</p>
<p>创建测试数据库</p>
<p>创建一个表FI_T_USER,这个表包含2字段，第一个是主键USER_ID，另一个是USER_NAME。创建语句如下：</p>
<p>create table FI_T_USER(<br />
&nbsp;&nbsp;&nbsp; USER_ID varchar2(20) primary key, <br />
&nbsp;&nbsp;&nbsp; USER_NAME varchar2(100)<br />
);</p>
<p>写测试代码</p>
<p>以下是我的测试代码：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000">/*</span><span style="color: #008000"><br />
&nbsp;*&nbsp;File&nbsp;name:&nbsp;TestInsertReturnRowId.java<br />
&nbsp;*&nbsp;<br />
&nbsp;*&nbsp;Version:&nbsp;v1.0<br />
&nbsp;*&nbsp;<br />
&nbsp;*&nbsp;<br />
&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;test.com.sinosoft.database;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.sql.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;oracle.jdbc.OracleTypes;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.commons.lang.StringUtils;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.commons.logging.Log;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.commons.logging.LogFactory;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.sinosoft.database.DBConnectionPool;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.sinosoft.database.SqlQueryUtils;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.sinosoft.exception.SDBException;<br />
<br />
</span><span style="color: #008000">/**</span><span style="color: #008000"><br />
&nbsp;*&nbsp;<br />
&nbsp;*&nbsp;<br />
&nbsp;*&nbsp;测试调用JDBC，往Oracle中插入数据，返回对应的ROWID<br />
&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;TestInsertReturnRowId&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;Log&nbsp;log&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;LogFactory<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getLog(TestInsertReturnRowId.</span><span style="color: #0000ff">class</span><span style="color: #000000">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestInsertReturnRowId&nbsp;tester&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TestInsertReturnRowId();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;rowId&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;tester.insertUser(</span><span style="color: #000000">"</span><span style="color: #000000">Stephen</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">liwp</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">The&nbsp;rowId&nbsp;is:</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;rowId);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;insertUser(String&nbsp;userId,&nbsp;String&nbsp;userName)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(StringUtils.isEmpty(userId)&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;StringUtils.isEmpty(userName))&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.error(</span><span style="color: #000000">"</span><span style="color: #000000">Please&nbsp;specify&nbsp;the&nbsp;userId&nbsp;and&nbsp;userName</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;check&nbsp;whether&nbsp;the&nbsp;user&nbsp;has&nbsp;already&nbsp;in&nbsp;the&nbsp;database</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;querySQL&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">select&nbsp;count(1)&nbsp;as&nbsp;cnt&nbsp;from&nbsp;FI_T_USER&nbsp;where&nbsp;USER_ID&nbsp;=&nbsp;'</span><span style="color: #000000">"</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;userId&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">'</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;insert&nbsp;statement</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;insertSQL&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">begin&nbsp;insert&nbsp;into&nbsp;FI_T_USER(USER_ID,&nbsp;USER_NAME)&nbsp;values(?,?)&nbsp;return&nbsp;rowid&nbsp;into&nbsp;?;end;</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;con&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DBConnectionPool.getConnection(</span><span style="color: #000000">"</span><span style="color: #000000">test</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(con&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.error(</span><span style="color: #000000">"</span><span style="color: #000000">Error&nbsp;on&nbsp;get&nbsp;the&nbsp;connection!</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;rowCount&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;SqlQueryUtils.getIntValue(querySQL,&nbsp;con);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(rowCount&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.error(</span><span style="color: #000000">"</span><span style="color: #000000">User&nbsp;with&nbsp;userId&nbsp;=&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;userId&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;already&nbsp;exists!</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;insert&nbsp;the&nbsp;data&nbsp;to&nbsp;the&nbsp;database</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CallableStatement&nbsp;cs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;con.prepareCall(insertSQL);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cs.setString(</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;userId);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cs.setString(</span><span style="color: #000000">2</span><span style="color: #000000">,&nbsp;userName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cs.registerOutParameter(</span><span style="color: #000000">3</span><span style="color: #000000">,&nbsp;OracleTypes.VARCHAR);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cs.execute();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;rowId&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cs.getString(</span><span style="color: #000000">3</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;rowId;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(SQLException&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(SDBException&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">finally</span><span style="color: #000000">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(con&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(SQLException&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
</span></div>
<p><br />
这里面很重要的代码是指定插入SQL脚本这句：</p>
<p>String insertSQL = "begin insert into FI_T_USER(USER_ID, USER_NAME) values(?,?) return rowid into ?;end;";</p>
<p>接下来的关键是，注册输出参数，并在执行语句后得到这个参数。</p>
<p>这些代码非常有用，不仅能在Oracle11g上使用，还可支持Oracle10和Oracle 9.2。</p>
<p><br />
好了，本文开头所述，我发现的这个Oracle11g的秘密就是：<br />
Oracle11g能在将数据导出备份时压缩数据，并且效率惊人。据Oracle11g白皮书中介绍，压缩率可达到74.67% , 本文主要介绍的是在Oracle11g中的实用技巧—插入数据时取得RowId，至于压缩嘛，就下次有机会再写了。<br />
</p>
<img src ="http://www.cnblogs.com/meta/aggbug/1294019.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43007/" target="_blank">[新闻]为什么叫Windows 7？</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>