﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="df.xslt" version="1.0"?>
<xmls>
  <channel type="博文">
    <title><![CDATA[C++\MFC]]></title>
    <link>1</link>
    <item>
      <title><![CDATA[C++内存对象大会战]]></title>
      <link>5</link>
      <body><![CDATA[这是一篇对于理解内存操作很好的文章，重点讲述了内存的三个类别：栈、堆、与静态存储区。作者： peter_jiang 出处： csdnblog　　如果一个人自称为程序高手，却对内存一无所知，那么我可以告诉你，他一定在吹牛。用C或C++写程序，需要更多地关注内存，这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能，更为主要的是，当我们操作内存的时候一不小心就会出现问题，而且很多时候，这些问题都是不易发觉的，比如内存泄漏，比如悬挂指针。笔者今天在这里并不是要讨论如何避免这些问题，而是想从另外一个角度来认识C++内存对象。 　　我们知道，C++将内存划分为三个逻辑区域：堆、栈和静态存储区。既然如此，我称位于它们之中的对象分别为堆对象，栈对象以及静态对象。那么这些不同的内存对象有什么区别了？堆对象和栈对象各有什么优劣了？如何禁止创建堆对象或栈对象了？这些...]]></body>
      <author>
      </author>
      <source><![CDATA[http://ysky.blog.ccidnet.com/blog/ccid/do_showone/tid_55864.html]]></source>
      <comments>r=000000;h=000021;</comments>
      <pubdate>2007-05-13 19:45:23</pubdate>
    </item>
    <item>
      <title><![CDATA[VC6.0下配置boost库使用正则表达式]]></title>
      <link>7</link>
      <body><![CDATA[最近做开发碰到了长字符串匹配、搜索的问题，最先想到的是使用正则表达式，简单、高效。
但是我用的开发工具是VC6.0，不支持正则表达式。
上网baidu一下，发现支持正则的库还真不少，大概有以下几种：boost，GNU，VC7带的ATL中的和微软发布的greta。
网上的朋友对boost评价不错，决定就使用是它了！
1、接下来的就是下载boost库，网上很好找。我下载的是压缩包，20多M，解压后将近100多M。
我解压的目录是D:\boost
2、然后是编译，我只要支持正则表达式就可以，因此只需要编译D:\boost\libs\regex\build目录下的文件。据说全部编译要花将近2个小时，没有验证过，在我家里的机器上编译正则表达式部分只用了不到5分钟。
网上介绍的如何编译最多的一篇文章是“VC利用boost库解析正则表达式”，如果有人能根据这篇文章编译成功不妨告诉小弟一声……
以下是我的操作：
在“运行”里输...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000002;h=000183;</comments>
      <pubdate>2007-05-15 00:14:35</pubdate>
    </item>
    <item>
      <title><![CDATA[分享两款很实用的Socket调试工具]]></title>
      <link>17</link>
      <body><![CDATA[这两款工具曾经对我学习、熟悉Socket编程起了很大作用。SocketTool是一款通用的Socket调试工具，SockMon主要针对WinSocket API编程，强烈推荐。
SocketTool调试软件是一款网络TCP/UDP通信调试工具，本工具集功能强大与简单易用为一体，是无需安装的免费绿色软件。她可以帮助网络编程人员、网络维护人员检查所开发的网络应用软硬件的通信状况。 

SocketTool

★ 全面集成 TCP服务器/客户端; UDP服务器/客户端; UDP广播/组播 功能★ 支持多Socket并行测试, 采用树状Socket可视化界面,所有Socket句柄一目了然★ 在一个程序内可进行多句柄/多类型的Socket的创建/删除/以及数据收发等操作★ 支持16进制的发送和16进制接收显示，支持汉字以及文本发送 ★ 用户可以方便的把接收到的数据保存下来★ 支持发送、接收字节数统计 ★ 支持数据循环发送,同一内容可自动发送1次至1...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000214;</comments>
      <pubdate>2007-06-23 15:18:01</pubdate>
    </item>
    <item>
      <title><![CDATA[利用WinInet类下载http文件]]></title>
      <link>18</link>
      <body><![CDATA[最近在写一个类似Flashget的程序，其核心就是从网络上下载文件。
尝试过几个方法：
1、直接socket实现http下载
此方法实现太复杂，需要非常熟悉tcp\ip协议栈，短时间很难实现稳定下载。
2、Windows API的URLDownloadToFile
这个方法是最简单，一个函数就搞定一切。
但是缺点也很多：
函数依赖IE。还好，从IE3.0就已经开始支持这个函数功能，而且IE是捆绑Windows的，所以这个缺点可以忽略。
实现进度条困难。虽然有一个回调函数可以解决这个问题，需要重载一个模板类。
最大的缺点是太简单，下载过程不能很好控制，稳定性跟IE一样……
3、利用WinInet
协议支持HTTP\FTP\Gopher，实现简单，过程可控，是最佳选择。
下面是一个简单的实现代码：
//创建 CInternetSession对象,初始化WinInet,并连接服务器&nbsp;&nbsp;m_pInetSession=new CInternetSession(NULL&nbsp;&nbsp...]]></body>
      <author>
      </author>
      <source><![CDATA[]]></source>
      <comments>r=000004;h=000564;</comments>
      <pubdate>2007-06-23 17:32:42</pubdate>
    </item>
    <item>
      <title><![CDATA[Socket编程典型过程时序图]]></title>
      <link>69</link>
      <body><![CDATA[在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model)。该模式的建立基于以下两点：1、非对等作用；2、通信完全是异步的。

客户机/服务器模式在操作过程中采取的是主动请示方式， 首先服务器方要先启动，并根据请示提供相应服务（过程如下）： 
1、打开一通信通道并告知本地主机，它愿意在某一个公认地址上接收客户请求。
2、等待客户请求到达该端口。
3、接收到重复服务请求，处理该请求并发送应答信号。
4、返回第二步，等待另一客户请求。
5、关闭服务器。

客户方： 
1、打开一通信通道，并连接到服务器所在主机的特定端口。
2、向服务器发送服务请求报文，等待并接收应答；继续提出请求……
3、请求结束后关闭通信通道并终止。

面向连接的套接字的系统调用时序图


无连接协议的套接字调用时序图


面向连接的应用程序流程图]]></body>
      <author>
      </author>
      <source><![CDATA[http://www.vckbase.com/document/viewdoc/?id=484]]></source>
      <comments>r=000000;h=000062;</comments>
      <pubdate>2008-01-09 15:46:01</pubdate>
    </item>
  </channel>
  <channel type="博文">
    <title><![CDATA[３Ｐ技术]]></title>
    <link>2</link>
    <item>
      <title><![CDATA[JSP中的汉字问题解决办法]]></title>
      <link>1</link>
      <body><![CDATA[&lt;%--JSP的汉字问题JSPhanzi.jsp--%&gt;&lt;%@ page contentType="text/html;charset=gb2312"%&gt;&lt;!--页面显示汉字编码--&gt;&lt;html&gt;&lt;head&gt;&lt;title&gt;JSP中的汉字问题&lt;/title&gt;&lt;/head&gt;&lt;body&gt; &lt;%&nbsp;&nbsp;&nbsp; String HelloMsg="你好";&nbsp;&nbsp;&nbsp; out.println(HelloMsg);&nbsp;&nbsp;&nbsp; String name=request.getParameter("name");//可正常显示页面汉字&nbsp;&nbsp;&nbsp; name=new String(name.getBytes("ISO8859_1"),"gb2312");//表单提交汉字处理&nbsp;&nbsp;&nbsp; out.println(name);%&gt;&lt;form name="chinese" method="post" action="index.jsp"&gt;&nbsp; &lt;input type="text" name="name"&gt;&nbsp; &lt;input type="submit" name="Submit" value="提交"&gt;&lt;/form&gt;&lt;...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000056;</comments>
      <pubdate>2007-01-09 00:00:00</pubdate>
    </item>
    <item>
      <title><![CDATA[XMLHTTP远程抓取网页上的所有图片的实例]]></title>
      <link>2</link>
      <body><![CDATA[上周换了工作，初来新公司上班，工作量不大，闲暇时研究了XMLHTTP对象，于是写了这个程序。&nbsp;XMLHTTP远程抓取网页上的所有图片，并保存到本地，对远程数据抓取和Ajax技术感兴趣的朋友可作为参考。&nbsp; XMLHTTP已被广泛用于网上流行的小偷程序、Ajax技术和数据同步机制。&nbsp;
getimage.rar]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000003;h=000589;</comments>
      <pubdate>2007-01-11 00:00:00</pubdate>
    </item>
    <item>
      <title><![CDATA[通用的连接数据库的JavaBean]]></title>
      <link>4</link>
      <body><![CDATA[/*作者:ysky*OICQ:94357027*2006-1-21**/package ConnectionDB;import java.sql.*;public class DBConnection{//变量声明private Connection conn;private Statement stmt;private ResultSet rs;private int affectedRowCount; private String dbpath;//默认构造函数public DBConnection(){conn = null;stmt = null;rs = null;affectedRowCount = 0;dbpath = null;}//构造函数，初始化对象(连接Access)public DBConnection(String strDbpath){dbpath = strDbpath;conn = null;stmt = null;affectedRowCount = 0;try{&nbsp; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");&nbsp; }catch(ClassNotFoundException e){&nbsp; System.out.print("Driver Error!");&nbsp; }try{&nbsp; String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000002;h=000039;</comments>
      <pubdate>2007-01-11 00:00:00</pubdate>
    </item>
    <item>
      <title><![CDATA[ASP中英文混合字符串的截取]]></title>
      <link>12</link>
      <body><![CDATA[&nbsp;在asp页面显示列表的时候，为了不撑破行，总是需要截取部分字符显示。如果全部是中文或英文字符串就好办多了，left()就搞定，但是对于中英文混合的字符串就不是那么简单，中文一个字符的宽度接近英文字符的2倍。下面是我的解决办法，三个函数，使用CnCutString(orgStr, length, fill)就可以了，其他二个函数是被它调用的。




&nbsp;'功能：&nbsp;截取包含中文的字符串&nbsp;'参数：&nbsp;orgStr 原字符串, len 截取长度&nbsp;'注意：一个中文字符相当于两个字符或字母，length 是英文字符长度&nbsp;Function CnSubString(orgStr, length)&nbsp;&nbsp;Dim orgLen, tmpLen, i&nbsp;&nbsp;orgLen = Len(orgStr)&nbsp;&nbsp;tmpLen = 0&nbsp;&nbsp;IF orgLen &gt;= 1 Then&nbsp;&nbsp;&nbsp;For i = 1 to orgLen&nbsp;&nbsp;&nbsp;&nbsp;IF ASC(Mid(orgStr,...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000140;</comments>
      <pubdate>2007-06-16 13:41:13</pubdate>
    </item>
    <item>
      <title><![CDATA[javascript缩放图片]]></title>
      <link>19</link>
      <body><![CDATA[在页面显示图片的时候总是对图片撑破布局，或者图片变形，很郁闷。尤其上用户自己上传的图片大小、比例不能限制太死。虽然动态页面可以在后台写程序做图片处理，但是给我的感觉就是牛刀杀鸡。
我的办法就是在前台用js控制，简单、实用，减轻服务器负担。





// 等比例缩放图片// 参数: image 图片对象 width 最大宽度 height 最大高度function zoom(image, width, height){
//&nbsp;计算原图宽高比率&nbsp;var scale = image.width/image.height;&nbsp;if (image.width &gt; width || image.height &gt; height)&nbsp;{&nbsp;&nbsp;// 按比例转换&nbsp;&nbsp;image.width = scale * height &lt; width ? (height * scale) : width;&nbsp;&nbsp;image.height = scale * height &gt;= width ? (width / scale) : height;&nbsp;}}
调用方式也是及其简单：...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000477;</comments>
      <pubdate>2007-06-25 10:21:33</pubdate>
    </item>
    <item>
      <title><![CDATA[XPath的简明语法]]></title>
      <link>23</link>
      <body><![CDATA[XPath 是一个标准, 如果你E文足够好, 你可以打开Ms sql server的帮助, 然后点击Microsoft Data Access Component (MDAC) 2.6 和 Extensible Markup Language (XML) 2.6 文档里面有一个章节, 叫做&nbsp; XML&gt;&gt;XSLTReference&gt;&gt;XPath Syntax这个里面有详细的说明, 如果你嫌烦, 就看下面的简单说明, 如果只是要知道如何利用Xpath来寻找你要的Node, 下面的知识已经够用了:&nbsp;XPath 是XML的查詢語言，和SQL的角色很類似。以下面XML為例，介紹XPath 的語法。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Empire Burlesque&nbsp;&nbsp;&nbsp; Bob Dylan&nbsp;&nbsp;&nbsp; 10.90&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; Hide your heart&nbsp;&nbsp;&nbsp; Bonnie Tyler&nbsp;&nbsp;&nbsp; 9.90&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; Greatest Hits &nbsp;&nbsp;&n...]]></body>
      <author>
      </author>
      <source><![CDATA[http://]]></source>
      <comments>r=000000;h=000138;</comments>
      <pubdate>2007-07-09 11:37:42</pubdate>
    </item>
    <item>
      <title><![CDATA[javascript图片播放器类]]></title>
      <link>30</link>
      <body><![CDATA[因为上次改版的需要，把相册放到右侧。原来打算放一张最新的相片，但是感觉太单调，于是想做一个图片播放的效果。网上也有很多这样的代码，有java的，有js的，java的就不在考虑范围，看了一些js的，感觉太繁琐，臃肿。
干脆自己写了这个类，很简洁：





/* 图片播放器类 */function ImagePlayer(){&nbsp;this.images = new Array();&nbsp;this.frames = new Array();&nbsp;this.index = 0;&nbsp;this.width = 0;&nbsp;this.height = 0;&nbsp;&nbsp;for (var i = 0; i &lt; arguments.length; i++){ this.push(arguments[i]); }}
ImagePlayer.prototype.push = function(image){&nbsp;this.images.push(image);}
ImagePlayer.prototype.size = function(width, height){&nbsp;this.width = width;&nbsp;this.height = height;}
ImagePlayer.prototype.di...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000121;</comments>
      <pubdate>2007-07-26 14:15:38</pubdate>
    </item>
    <item>
      <title><![CDATA[javascript 封装的Ajax类，简化操作]]></title>
      <link>40</link>
      <body><![CDATA[/* =============================================-- Author:&nbsp;fnsword-- Create date: 2007-09-30-- Description:&nbsp;Ajax封装类-- BLOG:&nbsp;http://www.fnsword.com-- =============================================*/
function Ajax(){&nbsp;// 创建XmlHttp对象&nbsp;this.Ajax = (function ()&nbsp;{&nbsp;&nbsp;var XmlHttp = false;&nbsp;&nbsp;if (window.XMLHttpRequest) {&nbsp;&nbsp;&nbsp;XmlHttp = new XMLHttpRequest();&nbsp;&nbsp;&nbsp;if (XmlHttp.overrideMimeType) XmlHttp.overrideMimeType("text/xml");&nbsp;&nbsp;}&nbsp;&nbsp;else if (window.ActiveXObject) {&nbsp;&nbsp;&nbsp;try {&nbsp;&nbsp;&nbsp;&nbsp;XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");&nbsp;&nbsp;&nbsp;} catch (e) {&nbsp;&nbsp;&nbsp...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000245;</comments>
      <pubdate>2007-09-30 12:36:21</pubdate>
    </item>
    <item>
      <title><![CDATA[动态载入javascript脚本(按需载入)]]></title>
      <link>43</link>
      <body><![CDATA[一个站点通常需要一些javascript脚本代码，我们习惯上将整理好的js作为一个库加载到页面。一个不好的习惯是把整个js库放到一个文件，当html页面需要使用时一次加载，我见过的最大的库600多K，很简单的一个弹出窗口也要load一次，不要说效率了，人看到代码就难受。比较好的办法是把类库函数整理分类放在不同的文件，html页面上需要哪些功能就装载对应的js文件，如果一个页面需要多个功能，就需要多次&lt;script language="javascript" type="text/javascript" src="url.js"&gt;，有点麻烦，代码看起来也不够简洁。
我不是一个勤劳的人，讨厌罗嗦的代码，想到一个懒办法，前几天发布了一个Ajax封装类，刚好派上用场，利用Ajax同步动态加载jaavscript脚本。





// 容错window.onerror = function (){ return true; };
var TISW2783DJNODS = document.getElementsBy...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000177;</comments>
      <pubdate>2007-10-10 10:30:35</pubdate>
    </item>
    <item>
      <title><![CDATA[javascript图片播放器类改进版]]></title>
      <link>44</link>
      <body><![CDATA[先前发布过一个javascript图片播放器类(点击进入)，写的粗糙，近日做了一些改进：

改进了类的封装，隐藏一些属性和方法； 
把定时执行的window.setInterval封装到类内部window.setTimeout，把window.setTimeout封装到类内部需要一点技巧：var me = this;window.setTimeout(function(){me.setup();}, this.rhythm * 1000); 
去掉size()方法，由程序自动判断并适应容器； 
增加指定容器属性，更加灵活；





/* =============================================-- Author:&nbsp;fnsword-- Create date: 2007-10-12-- Description:&nbsp;图片播放器类 V2.0-- BLOG:&nbsp;http://www.fnsword.com-- =============================================*/
/* 图片播放器类 */function imageplayer(){&nbsp;var images = new Array();&nbsp;var frames = new ...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000168;</comments>
      <pubdate>2007-10-12 13:00:02</pubdate>
    </item>
    <item>
      <title><![CDATA[ADO方式连接数据库，及自动填充参数的存储过程类(PHP)]]></title>
      <link>49</link>
      <body><![CDATA[&nbsp;最近接触php，惊叹其函数库之丰富，但是相当杂乱，仅链接数据库的函数多达5、6个，基本目前主流数据库都对应自己的函数库，不知道php的设计者是怎么想的。php4面向对象太弱，好在php5加强许多，而且终于是加入了PDO数据库访问方式，但不是核心模块，需要手工配置，我目前还没用试用，不知道效果如何。&nbsp;我的blog是在虚拟主机上建立的，支持php5/.net2.0，另外购买的ms sql server 2005数据库。打算一部分功能用php实现，作学习实践php之用。phpinfo()显示不支持mssql，但是可以用adodb。加上bolg都是用的存储过程，于是决定用php改写《自动填充参数的存储过程类(C#)》：





&lt;?php//adodb链接数据库类class adodb {&nbsp;private $connectionstring = NULL;&nbsp;private $description = NULL;&nbsp;private $connection = NULL;
&nbsp;// 构造函数，利...]]></body>
      <author>fnwsord</author>
      <source><![CDATA[]]></source>
      <comments>r=000001;h=000165;</comments>
      <pubdate>2007-11-07 16:50:09</pubdate>
    </item>
    <item>
      <title><![CDATA[javascript 相关的一些小技巧]]></title>
      <link>61</link>
      <body><![CDATA[事件源对象event.srcElement.tagNameevent.srcElement.type
捕获释放event.srcElement.setCapture();event.srcElement.releaseCapture();
事件按键event.keyCodeevent.shiftKeyevent.altKeyevent.ctrlKey
事件返回值event.returnValue
鼠标位置event.xevent.y
窗体活动元素document.activeElement
绑定事件document.captureEvents(Event.KEYDOWN);
访问窗体元素document.all("txt").focus();document.all("txt").select();
窗体命令document.execCommand
窗体COOKIEdocument.cookie
菜单事件document.oncontextmenu
创建元素document.createElement("SPAN");
根据鼠标获得元素：document.elementFromPoint(event.x,event.y).tagName=="TDdocument.elementFromPoint(event.x,event.y).appendChild(ms)
窗体图片document.images[索引]
...]]></body>
      <author>
      </author>
      <source><![CDATA[http://hi.baidu.com/leanor/blog/item/8e098813ba68c5826538db54.html]]></source>
      <comments>r=000000;h=000012;</comments>
      <pubdate>2008-01-05 10:18:33</pubdate>
    </item>
    <item>
      <title><![CDATA[介绍 JSON]]></title>
      <link>64</link>
      <body><![CDATA[JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式，但是也使用了类似于C语言家族的习惯（包括C, C++, C#, Java, JavaScript, Perl, Python等）。这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构：

“名称/值”对的集合（A collection of name/value pairs）。不同的语言中，它被理解为对象（object），纪录（record），结构（struct），字典（dictionary），哈希表（hash table），有键列表（keyed list），或者关联数组 （associative array）。 
值的有序列表（An ordered list of values）。在大部分语言中，它被理解为数组（array）。 
这些都是常见的数据结构。事实上...]]></body>
      <author>
      </author>
      <source><![CDATA[http://www.json.org/json-zh.html]]></source>
      <comments>r=000001;h=000023;</comments>
      <pubdate>2008-01-07 10:10:21</pubdate>
    </item>
    <item>
      <title><![CDATA[JavaScript 使用面向对象的技术创建高级 Web 应用程序]]></title>
      <link>65</link>
      <body><![CDATA[JavaScript 对象是词典

JavaScript 函数是最棒的

构造函数而不是类

原型

静态属性和方法

闭包

模拟私有属性

从类继承

模拟命名空间

应当这样编写 JavaScript 代码吗？

展望

面向对象编程 (OOP) 是一种流行的编程方法，很多 JavaScript 库中都使用这种方法，以便更好地管理和维护基本代码。JavaScript 支持 OOP，但与诸如 C++、C# 或 Visual Basic® 等流行的 Microsoft® .NET Framework 兼容语言相比，它支持 OOP 的方式非常不同，因此主要使用这些语言的开发人员开始可能会觉得在 JavaScript 中使用 OOP 很奇怪而且不直观。我写本文就是为了深入讨论 JavaScript 语言实际上如何支持面向对象编程，以及您如何使用这一支持在 JavaScript 中高效地进行面向对象开发。下面首先讨论对象（还能先讨论其他别的什么呢？）。JavaScript ...]]></body>
      <author>
      </author>
      <source><![CDATA[http://msdn.microsoft.com/msdnmag/issues/07/05/javascript/default.aspx?loc=zh]]></source>
      <comments>r=000002;h=000050;</comments>
      <pubdate>2008-01-07 12:08:45</pubdate>
    </item>
  </channel>
  <channel type="博文">
    <title><![CDATA[.NET(C#)]]></title>
    <link>3</link>
    <item>
      <title><![CDATA[自动填充参数的存储过程类(C#)]]></title>
      <link>13</link>
      <body><![CDATA[我在用C#调用sql2005的存储过程，觉得设置参数太烦锁了，参数名、类型、宽度、输入/输出/返回值，每次都要设置，2、3个参数还好办，有时候达到十几、二十个，最多的一次40多个，代码又长又臭，人也累半死。
&nbsp;为了摆脱这种体力劳动，我就尝试寻找一个简便的方法。在sql server数据库中有一些系统表，保存该库中所有的"对象"，当然有存储过程名，参数名，宽度，类型等等。
请参见：SQL Server 2005中各个系统表的作用
执行一下这个sql：




SELECT B.[name], C.[name] AS [type], B.length, B.isoutparam, B.isnullableFROM sysobjects AS A INNER JOIN";syscolumns AS B ON A.id = B.id AND A.xtype = 'P' AND A.name = '你的存储过程名' INNER JOINsystypes C ON B.xtype = C.xtype AND C.[name] &lt;&gt; 'sysname'ORDER BY ROW_NUMBER() OVER (ORDER BY B.id)...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000005;h=001500;</comments>
      <pubdate>2007-06-16 14:01:15</pubdate>
    </item>
    <item>
      <title><![CDATA[关于"由于线程退出或应用程序请求，已放弃 I/O 操作。"]]></title>
      <link>20</link>
      <body><![CDATA[在用C# Socket异步网络通信编程的时候，碰到"由于线程退出或应用程序请求，已放弃 I/O 操作。"异常。debug跟踪后发现问题出在
Socket.EndReceive(ar);
我写的是一个服务器程序，参考《Visual C#.NET网络核心编程》这本电子书，分析原因：启动接收数据线程提前退出。
启动接收线程的代码如下：




Thread Receive = new Thread(delegate()// C#2.0的匿名代理方法&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;State.Socket.BeginReceive(State.Buffer, 0, State.Buffer.Length, 0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new AsyncCallback(OnReceive), State);&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;&nbsp;Receive.IsBackground = true;&nbsp;&nbsp;&nbsp;Receive.Start();
这一段代码的目的是要启动一个线程，暂且不管正确与否。
下面这一段就是异常代码：

...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000748;</comments>
      <pubdate>2007-06-25 15:17:34</pubdate>
    </item>
    <item>
      <title><![CDATA[发布两个数据加密解密方法：DES加密解密,AES加密解密]]></title>
      <link>22</link>
      <body><![CDATA[DES算法描述简介：
DES是Data Encryption Standard（数据加密标准）的缩写。它是由IBM公司研制的一种加密算法，美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准；它是一个分组加密算法，他以64位为分组对数据加密。同时DES也是一个对称算法：加密和解密用的是同一个算法。它的密匙长度是56位（因为每个第8 位都用作奇偶校验），密匙可以是任意的56位的数，而且可以任意时候改变．





/// &lt;summary&gt;&nbsp;&nbsp;/// DES加密&nbsp;&nbsp;/// &lt;/summary&gt;&nbsp;&nbsp;/// &lt;param name="Data"&gt;被加密的明文&lt;/param&gt;&nbsp;&nbsp;/// &lt;param name="Key"&gt;密钥&lt;/param&gt;&nbsp;&nbsp;/// &lt;param name="Vector"&gt;向量&lt;/param&gt;&nbsp;&nbsp;/// &lt;returns&gt;密文&lt;/returns&gt;&nbsp;&nbsp;public ...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000201;</comments>
      <pubdate>2007-07-06 15:07:24</pubdate>
    </item>
    <item>
      <title><![CDATA[C#截取中英文混合字符串]]></title>
      <link>26</link>
      <body><![CDATA[关于截取中英文混合字符串的方案我已经写过一篇 ASP中英文混合字符串的截取(点击阅读),
总的思路还是分别找出中文和英文字符,一个字符中文的宽度相当英文字符的2倍。
用C#来做更简单，网上已经有很多这样的文章了，我参考了一些，做了简化：





&nbsp;&nbsp;/// &lt;summary&gt;&nbsp;&nbsp;/// 截取中英文混合字符串&nbsp;&nbsp;/// &lt;/summary&gt;&nbsp;&nbsp;/// &lt;param name="original"&gt;原始字符串&lt;/param&gt;&nbsp;&nbsp;/// &lt;param name="length"&gt;截取长度&lt;/param&gt;&nbsp;&nbsp;/// &lt;param name="fill"&gt;截取串小于原始串时,尾部附加字符串&lt;/param&gt;&nbsp;&nbsp;/// &lt;returns&gt;&lt;/returns&gt;&nbsp;&nbsp;public static String CnCutString(String original, Int32 length, String fill)&nbsp;&nb...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000109;</comments>
      <pubdate>2007-07-20 11:26:20</pubdate>
    </item>
    <item>
      <title><![CDATA[生成指定长度的随机字符串]]></title>
      <link>27</link>
      <body><![CDATA[废话少说，先上代码：





&nbsp;&nbsp;/// &lt;summary&gt;&nbsp;&nbsp;/// 生成指定长度的随机字符串&nbsp;&nbsp;/// &lt;/summary&gt;&nbsp;&nbsp;/// &lt;param name="length"&gt;长度&lt;/param&gt;&nbsp;&nbsp;/// &lt;param name="type"&gt;类型&lt;/param&gt;&nbsp;&nbsp;/// &lt;returns&gt;随机字符串&lt;/returns&gt;&nbsp;&nbsp;public static String RandomCode(Int32 length, RandomType type)&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;Char[] Seed = new Char[]{&nbsp;&nbsp;&nbsp;&nbsp;'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',&nbsp;&nbsp;&nbsp;&nbsp;'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',&nbsp;&nbsp;&nbsp;&nbsp;'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',&nbsp;&nbsp;&nbsp;&nbsp;'u', 'v', 'w',...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000080;</comments>
      <pubdate>2007-07-20 11:38:40</pubdate>
    </item>
    <item>
      <title><![CDATA[发布一款小软件及源码－密码箱]]></title>
      <link>29</link>
      <body><![CDATA[互联网时代，当我们在享用网络给我们带来便利的同时，也尝到了新一种的烦琐。我们使用Email、IP电话卡、信用卡、应用系统例如OA、CRM、ERP、即时通信等系统，访问论坛、局域网、因特网，需要使用太多的账号与密码！网站管理员还要记住域名管理、FTP、远程登录等的账号密码，并且，为安全起见，还不能将密码设得太简单。
大多数的朋友都有过这样的经历：&nbsp;·长时间不使用某个网站，忘记了自已注册的账号及密码&nbsp;·大多数的密码都相同&nbsp;·用自已的生日、电话号码作为密码&nbsp;·长时间不更改密码(因为怕忘了！)&nbsp;·黑客无处不在，稍不小心就可能造成不可估量的损失。&nbsp;·有些网页及软件提供自动密码保存，在方便登录的同时也为窥探者提供了房间钥匙。
为解决这种烦恼，于是写了这个小软件OU Coffer(奥优密码箱)。其主要功能是帮助您记忆账号与密码，安全存储，减轻...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000114;</comments>
      <pubdate>2007-07-26 10:21:56</pubdate>
    </item>
    <item>
      <title><![CDATA[C#中使用Int32还是int？]]></title>
      <link>31</link>
      <body><![CDATA[最近在网上发现一些这样的言论，C#语言中的int是Int32的别名，因此两者是一样的。
有此结论大多来源于这样一段话：




C# 语言的组成部分中的所有简单类型均为 .NET Framework 系统类型的别名。也就是说int 是 System.Int32 的别名。int是关键字，又是System.Int32结构的别名，因此int拥有了System.Int32的所有属性和方法。.NET通过这样的方式，让int合理合法的拥有了对象的能力。
这段话本身是没有问题的，但是得出int和Int32两者一样的结论是不准确的。

不错int等同于Int32,int是特定于编程语言的写法。
而Int16,Int32,Int64是特定于CLR公共语言运行时的写法,在.NET的编程规范中推荐使用此种写法,而代替int。
对于64位程序开发,并不是说写成int或者非Int64就不能执行于64位元的 CPU上,因为我们所写的都是ManagedCode(托管代码),能否运行于64位元CPU...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000001;h=000267;</comments>
      <pubdate>2007-07-30 16:38:38</pubdate>
    </item>
    <item>
      <title><![CDATA[C#生成高质量缩略图]]></title>
      <link>36</link>
      <body><![CDATA[&nbsp;&nbsp;&nbsp; 以前用asp做web最痛苦的就是图片上传、处理，只能借助com组件实现，在asp.net里面实现这些功能简直就是轻而易举，完全傻瓜化的操作。&nbsp;&nbsp;&nbsp; 一个图片处理类，Miniature(Int32 Width, Int32 Height)方法生成高质量、清晰的缩略图：




&nbsp;/// &lt;summary&gt;&nbsp;/// 图象处理类&nbsp;/// &lt;/summary&gt;&nbsp;public class CExImage&nbsp;{&nbsp;&nbsp;#region 数据成员&nbsp;&nbsp;private String _LastError = String.Empty;&nbsp;&nbsp;private Image _Image = null;&nbsp;&nbsp;#endregion
&nbsp;&nbsp;#region 属性&nbsp;&nbsp;/// &lt;summary&gt;&nbsp;&nbsp;/// 处理的 Image 对象&nbsp;&nbsp;/// &lt;/summary&gt;&nbsp;&nbsp;public Image Image&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;set&nbsp;&nbsp;&nbsp...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000189;</comments>
      <pubdate>2007-08-16 23:32:04</pubdate>
    </item>
    <item>
      <title><![CDATA[推荐使用成员初始化语句]]></title>
      <link>37</link>
      <body><![CDATA[为了方便内容的开展，先说说一个对象的构造过程。
对于类型第一个实例的构造过程大致如下：
1． 分配静态成员的内存空间，此时空间存储数据为0；
2． 执行静态成员的初始化语句；
3． 执行基类的静态构造函数；
4． 执行类型的静态构造函数；
5． 分配成员的内存空间，此时空间存储数据为0；
6． 执行成员的初始化语句；
7． 执行相应的基类构造函数；
8． 执行类型的构造函数。
那么对于同类型的后续创建对象，前4个步骤不用执行的，直接从第5步开始。
（这里有些出入，对于如下例子：
&nbsp;&nbsp;&nbsp; public class clsA
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static readonly string strA = "A";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static clsA()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nb...]]></body>
      <author>
      </author>
      <source><![CDATA[http://blog.csdn.net/Knight94/archive/2006/09/01/1153251.aspx]]></source>
      <comments>r=000000;h=000123;</comments>
      <pubdate>2007-08-28 11:18:34</pubdate>
    </item>
    <item>
      <title><![CDATA[4行C#代码打造专业数据库连接配置界面]]></title>
      <link>39</link>
      <body><![CDATA[以前做Winform程序，居然专门做一个界面来配置连接字符串。今天无意中发现：竟然可以直接调用VS.net2005中的配置界面来处理。
使用方法也及其简便：
一、添加引用C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Microsoft.Data.ConnectionUI.Dialog.dll
二、引入名称空间using Microsoft.Data.ConnectionUI;
三、代码1、DataConnectionDialog dlg = new DataConnectionDialog();2、dlg.DataSources.Add(DataSource.SqlDataSource);3、dlg.SelectedDataProvider = DataProvider.SqlDataProvider;4、DataConnectionDialog.Show(dlg, this);
四、运行界面出来了，是不是相当的专业!
DataConnectionDialog 还有很多属性，配置这些属性可以改变窗口外观，满足不同需求。]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000003;h=000259;</comments>
      <pubdate>2007-09-20 15:46:07</pubdate>
    </item>
    <item>
      <title><![CDATA[通用连接数据库的C#类]]></title>
      <link>62</link>
      <body><![CDATA[采用工厂模式思想，通用连接ms sql server/oracle：





using System;using System.Collections.Generic;using System.Text;
using System.Data.Common;using System.Data.SqlClient;using System.Data.OracleClient;
namespace fnSwordLibrary.Data{&nbsp;public class CuConnection : IDisposable&nbsp;{&nbsp;&nbsp;#region 数据成员&nbsp;&nbsp;private String _ConnectionString = null;&nbsp;&nbsp;private DbConnection _Connection = null;&nbsp;&nbsp;private CuDbType _DbType = CuDbType.SQL;
&nbsp;&nbsp;private String _Description = String.Empty;&nbsp;&nbsp;#endregion
&nbsp;&nbsp;#region 构造函数&nbsp;&nbsp;public CuConnection(CuDbType DbType)&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;this.DbType = DbType;&nbsp;&nbsp;...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000118;</comments>
      <pubdate>2008-01-05 10:25:03</pubdate>
    </item>
    <item>
      <title><![CDATA[自动填充参数的存储过程类(C#)【加强版】]]></title>
      <link>63</link>
      <body><![CDATA[对《自动填充参数的存储过程类(C#)》(点击进入)做了重大改进，引入工厂模式：兼容ms sql server存储过程，oracle存储过程、函数。





using System;using System.Collections;using System.Text;
using System.Xml;using System.Data;using System.Data.Common;using System.Data.SqlClient;using System.Data.OracleClient;
namespace fnSwordLibrary.Data{&nbsp;/// &lt;summary&gt;&nbsp;/// Author:&nbsp;&nbsp;&nbsp;黄剑平&nbsp;/// Create date:&nbsp;2007-11-11&nbsp;/// Description:&nbsp;自动填充参数的存储过程类【加强版】&nbsp;/// QQ:&nbsp;&nbsp;&nbsp;&nbsp; 94357027&nbsp;/// BLOG:&nbsp;&nbsp;&nbsp;http://www.fnsword.com&nbsp;/// Mail:&nbsp;&nbsp;&nbsp;fnsword@126.com&nbsp;/// &lt;/summary&gt;&nbsp;public class CuPr...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000052;</comments>
      <pubdate>2008-01-05 11:01:26</pubdate>
    </item>
    <item>
      <title><![CDATA[C# 3.0：自动属性、对象初始化器、集合初始化器 和 扩展方法]]></title>
      <link>66</link>
      <body><![CDATA[自动属性




/// &lt;summary&gt;/// AutomaticProperties（自动属性）的摘要说明/// &lt;/summary&gt;public class AutomaticProperties{&nbsp;&nbsp;&nbsp; public int ID { get; set; }
&nbsp;&nbsp;&nbsp; // 上面的ID属性（自动属性）等同于下面的ID属性
&nbsp;&nbsp;&nbsp; // private int _id;&nbsp;&nbsp;&nbsp; // public int ID&nbsp;&nbsp;&nbsp; // {&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp; get { return _id; }&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp; set { _id = value; }&nbsp;&nbsp;&nbsp; // }}

对象初始化器





/// &lt;summary&gt;/// ObjectInitializers（对象初始化器）的摘要说明/// &lt;/summary&gt;public class ObjectInitializers{&nbsp;&nbsp;&nbsp; public int ID { get; set; }&nbsp;&nbs...]]></body>
      <author>
      </author>
      <source><![CDATA[http://www.cnblogs.com/webabcd/archive/2007/10/11/920349.html]]></source>
      <comments>r=000000;h=000036;</comments>
      <pubdate>2008-01-07 15:51:53</pubdate>
    </item>
    <item>
      <title><![CDATA[在.NET应用中调用java程序]]></title>
      <link>71</link>
      <body><![CDATA[很多时候我们不可避免的要用到别人写的东西。就拿我来说。很多应用是用.NET写的。也有很多程序是用JAVA写的。这就带来了很多麻烦，有时候要实现同样的功能，必须写两遍代码。
那么我们有没有办法让C#直接调用java写好的东西呢？(java直接调用。net的程序也是可以的)。
这里需要提到的就是IKVM.NET开源程序。这个开源程序不想过多的介绍，说多了也没有太多的意义，有兴趣可以深入研究，他的源代码可以到http://sourceforge.net/project/showfiles.php?group_id=69637去下载。
简单的介绍一下 IKVM.NET 还是有必要的。&nbsp;&nbsp;&nbsp; IKVM.NET是一个针对Mono和微软.net框架的java实现，其设计目的是在.NET平台上运行java程序。它包含了以下的组建：&nbsp;&nbsp;&nbsp; * 一个用.NET实现的java虚拟机；&nbsp;&nbsp;&nbsp; * 一个java类库的.NET实现；&nbsp;&nbsp;&nbsp...]]></body>
      <author>
      </author>
      <source><![CDATA[http://www.cnblogs.com/debugcn/archive/2008/02/21/net_java_1.html]]></source>
      <comments>r=000001;h=000045;</comments>
      <pubdate>2008-02-22 15:46:51</pubdate>
    </item>
  </channel>
  <channel type="博文">
    <title><![CDATA[DataBase]]></title>
    <link>4</link>
    <item>
      <title><![CDATA[在VC中使用ADO开发数据库应用程序]]></title>
      <link>3</link>
      <body><![CDATA[一、ADO概述 
ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的，是一个便于使用的应用程序层接口。ADO 使您能够编写应用程序以通过 OLE.DB 提供者访问和操作数据库服务器中的数据。ADO 最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ADO 在关键的应用方案中使用最少的网络流量，并且在前端和数据源之间使用最少的层数，所有这些都是为了提供轻量、高性能的接口。之所以称为 ADO，是用了一个比较熟悉的暗喻，OLE 自动化接口。
OLE DB是一组”组件对象模型”(COM) 接口，是新的数据库低层接口，它封装了ODBC的功能，并以统一的方式访问存储在不同信息源中的数据。OLE DB是Microsoft UDA(Universal Data Access)策略的技术基础。OLE DB 为任何数据源提供了高性能的访问，这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义...]]></body>
      <author>
      </author>
      <source><![CDATA[http://ysky.blog.ccidnet.com/blog/ccid/do_showone/tid_53302.html]]></source>
      <comments>r=000000;h=000333;</comments>
      <pubdate>2007-01-11 00:00:00</pubdate>
    </item>
    <item>
      <title><![CDATA[用T-SQL实现本地文件操作(SQL 2000)]]></title>
      <link>6</link>
      <body><![CDATA[最近用VC为公司写一个远程数据库监控程序，程序需要在内网长时间运行。
其实很简单，用户在WEB页面提交数据到数据库，软件间隔一段时间询问一次数据库，如果有新的记录就做相应的处理。
但是WEB页面提交的记录很复杂：记录主要保存文本文件路径,但是文本文件可能包含真实数据，也可能包含另外一条数据库记录的ID，还可能包含另外一个文件路径。
总之，最后的结果上得到用户提交的文件的路径，然后下载文件，处理文件。
如果把全部的分析操作都放到应用程序来实现，可能需要多次查询远程数据库取记录，降低速度，增加了程序复杂度。
所以就想能不能在存储过程中把所有的分析操作搞定,然后返回用#号分割各个文件路径(path1#path2#path3)的一条记录集呢！
在网上搜索,查询MSDN,终于成功了!目前程序已经安全、准确运行了一周。
当然还加入了一些不可忽视的工作：最早...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000045;</comments>
      <pubdate>2007-05-15 00:12:02</pubdate>
    </item>
    <item>
      <title><![CDATA[SqlServer存储过程编写经验和优化]]></title>
      <link>8</link>
      <body><![CDATA[一、前言：在经过一段时间的存储过程开发之后，写下了一些开发时候的小结和经验与大家共享，希望对大家有益，主要是针对Sybase和SQL Server数据库，但其它数据库应该有一些共性。 二、适合读者对象：数据库开发程序员，数据库的数据量很多，涉及到对SP（存储过程）的优化的项目开发人员，对数据库有浓厚兴趣的人。 
三、介绍：在数据库的开发过程中，经常会遇到复杂的业务逻辑和对数据库的操作，这个时候就会用SP来封装数据库操作。如果项目的SP较多，书写又没有一定的规范，将会影响以后的系统维护困难和大SP逻辑的难以理解，另外如果数据库的数据量大或者项目对SP的性能要求很，就会遇到优化的问题，否则速度有可能很慢，经过亲身经验，一个经过优化过的SP要比一个性能差的SP的效率甚至高几百倍。 
四、　内容： 
1、开发人员如果用到其他库的Table或View，务必在当前库中建立Vi...]]></body>
      <author>
      </author>
      <source><![CDATA[http://ysky.blog.ccidnet.com/blog/ccid/do_showone/tid_59653.html]]></source>
      <comments>r=000000;h=000053;</comments>
      <pubdate>2007-05-16 12:29:45</pubdate>
    </item>
    <item>
      <title><![CDATA[MS SQL Server 2005 通用分页存储过程]]></title>
      <link>11</link>
      <body><![CDATA[相信写过跟DB相关程序的人都会涉及的数据分页问题。从本质上来看，大概有两种方式：1）直接取记录集，分页显示所需数据 2）在数据库中分页，返回部分数据，优劣显而易见。
在sql server数据库中直接用在程序中嵌入sql语句也能达到很好的分页效果，但是效率、方便使用上不如存储过程。效率就不用多说了，取最大页码就是不是嵌入sql一次就能搞定的。
一年前在ms sql server 2000下写过一个分页存储过程，效果很好，至少至今还在被用户使用。今年开始接触2005版本，在t-sql上2005相对2000改进不少，觉得有必要改进我的分页存储过程了。
在一个月前写了这个存储过程，代码相对2000版本简化了很多：





&nbsp;2007-07-12 22:11:00 update
-- =============================================-- Author:&nbsp;&nbsp;黄剑平-- Create date: 2007-5-11-- Description:&nb...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000003;h=000705;</comments>
      <pubdate>2007-05-23 22:15:39</pubdate>
    </item>
    <item>
      <title><![CDATA[t-sql实现md5加密]]></title>
      <link>14</link>
      <body><![CDATA[首先申明，代码并非我原创，来源无从考究。这段代码很有用，于是贴出来分享。
每个函数开头都有一行：WITH ENCRYPTION&nbsp;，表示是否加密，如果注释掉该行，函数编译后可以看到源码。建议不要注释。
md5.rar]]></body>
      <author>
      </author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000080;</comments>
      <pubdate>2007-06-16 18:36:39</pubdate>
    </item>
    <item>
      <title><![CDATA[如何判断触发器被那种状态触发,INSERT,UPDATE,DELETE？]]></title>
      <link>21</link>
      <body><![CDATA[一个触发器内三种INSERT,UPDATE,DELETE状态都包括,如何判断触发器被那种状态触发?
例如：
一个文章表（ID，标题，文章，点击数，评论数）
一个评论表（文章ID，评论，评论时间）
当发表评论时，文章表.评论数加一，当删除评论时，文章表.评论数减一。
我们可以用两种方法：
1)直接用sql，insert 评论表，立即update文章表。
2)在评论表加入触发器。
如果用触发器，就要对评论表insert、delete做触发，可以分别写两个触发器，但是感觉不紧凑，两个触发的操作很简单，能写到一个触发器不是很好吗？要达到这个目的，必须在判断触发器被那种状态触发。




理解触发器里面的两个临时的表：deleted , inserted 。注意deleted 与inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。&nbsp; 一个update 的过程可以看作为：生成新的记录到inserted表，复制旧的记录到dele...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000453;</comments>
      <pubdate>2007-06-28 10:33:51</pubdate>
    </item>
    <item>
      <title><![CDATA[数据库设计：建立动态可扩展的联系方式]]></title>
      <link>68</link>
      <body><![CDATA[在开发Web应用系统中，用户管理是一个核心的问题。管理用户，必不可少要管理用户的联系方式。一般情况下，人们会建立一个专门的联系方式表，包含电话、Email、QQ、MSN等联系方式。不难发现，即便我们考虑得再周全，也无法罗列全部的联系方式，如手机、座机、小灵通、大灵通、skype等。那么，如何才能使用户能够自由添加各种联系方式而不会影响系统本身呢？让我们来探讨这个问题的解决。 

一、直接在用户表中增加联系方式字段
我们最先在管理用户的时候，会直接在用户表后面添加联系方式，如下表：





用户名

单位

phone

email


张三

A公司

01012345678

aa@163.com
（表1）
这在用户张三只有一个电话和一个Email地址的情况下，没有问题。但是，有一天，张三买了一个手机，并且把手机作为一种很重要的联系方式。开发人员很直观的想法就是在后面再...]]></body>
      <author>
      </author>
      <source><![CDATA[http://blog.csdn.net/z365days/archive/2007/10/29/1852814.aspx]]></source>
      <comments>r=000000;h=000043;</comments>
      <pubdate>2008-01-09 14:45:42</pubdate>
    </item>
  </channel>
  <channel type="博文">
    <title><![CDATA[程序人生]]></title>
    <link>5</link>
    <item>
      <title><![CDATA[一个程序员如何月进万金的]]></title>
      <link>9</link>
      <body><![CDATA[本人与大家一样，原来只是一个普通的程序员，靠给软件公司打工谋生。后来感觉这样长期干下去没有什么前途，虽然现在年轻还可以加班加点靠拼身体吃饭，以后年纪大了怎么办？听说很多人自己单干每年靠共享软件都可以赚几十万，我为什么就不行？仗着自己技术好，并且当时已经有了成熟软件的思路，我就辞职出来加入共享软件这一行当了。
通过半年多的日夜苦干，软件终于编出来了。由于我觉得自己的软件功能比较新颖，编程的技术也很好，以为只要一发布就会大家抢着注册购买，也可以像那些成名的共享软件作者一样每月坐拿几万元，结果却是令我想象不到的，在发布后的第一年，只有1个人注册，只得到可怜的几十元。我这下才认识到了软件推广的重要性 — 我们作为技术人员，往往是重技术轻营销，结果是再好的软件也由于无人知晓而只能孤芳自赏。我这时就有意在网上搜索软件推广方面...]]></body>
      <author>
      </author>
      <source><![CDATA[http://ysky.blog.ccidnet.com/blog/ccid/do_showone/tid_59648.html]]></source>
      <comments>r=000001;h=000038;</comments>
      <pubdate>2007-05-16 12:30:59</pubdate>
    </item>
    <item>
      <title><![CDATA[About Me]]></title>
      <link>10</link>
      <body><![CDATA[姓名：黄剑平
性别：男
年龄：24
职业：软件工程师
籍贯：中国·湖北·咸宁
目前所在地：深圳
OICQ：94357027
Email ：fnsword@162.com
语言只是一种形式，编程是一种思想。没有做不到，只有想不到。]]></body>
      <author>
      </author>
      <source><![CDATA[]]></source>
      <comments>r=000002;h=000436;</comments>
      <pubdate>2007-05-16 12:32:13</pubdate>
    </item>
    <item>
      <title><![CDATA[请不要做浮躁的人]]></title>
      <link>16</link>
      <body><![CDATA[不要放过任何看上去很简单的小编程问题－－他们往往并不是那么简单，或者可以引伸出很多知识点 
浮躁的人容易说：XX语言不行了，应该学YY；－－是你自己不行了吧！？ 
浮躁的人容易问：我到底该学什么；－－别问，学就对了； 
浮躁的人容易问：XX有前途吗；－－建议你去抢银行； 
浮躁的人容易说：我要中文版！我的英文不行！－－不行？学呀！ 
浮躁的人容易问：XX和YY哪个好；－－告诉你吧，都好－－只要你学就行； 
浮躁的人分两种：a）只观望而不学的人；b）只学不坚持的人； 
把时髦的技术挂在嘴边，还不如把过时的技术记在心里； 
学习编程的最好的方法之一就是阅读源代码； 
在任何时刻都不要认为自己手中的书已经足够多了； 
看得懂的书，请仔细看；看不懂的书，请硬着头皮看； 
别指望看第一遍书就能记住和掌握什么－－请看第二遍、第三遍； 
学习编程的秘诀是：编程，编程，再编程； 
...]]></body>
      <author>fnsword</author>
      <source><![CDATA[http://]]></source>
      <comments>r=000007;h=000527;</comments>
      <pubdate>2007-06-23 15:02:13</pubdate>
    </item>
    <item>
      <title><![CDATA[我的Dell? Inspiron? 1420]]></title>
      <link>28</link>
      <body><![CDATA[中央处理器
采用全新一代英特尔®迅驰®双核处理器技术－英特尔®酷睿™2双核处理器T5250 (1.5GHz,2MB Cache, 667MHz FSB)及内置Intel® PRO/Wireless 3945 802.11a/g 无线网卡
操作系统
正版 Windows Vista™ Home Basic
内存
1GB 双通道 DDR2 内存
显示器
14.1英寸WXGA TFT显示屏(TrueLife)
硬盘
120GB* SATA 硬盘(5400转)
光驱
8X DVD+/-RW*
显卡
NVIDIA® GeForce™ Go 8400M GS 显卡，内含 128MB DDR3 独立显存
订单状态：

实物：]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000002;h=000295;</comments>
      <pubdate>2007-07-24 21:45:28</pubdate>
    </item>
    <item>
      <title><![CDATA[国产软件当自强，国货当自强]]></title>
      <link>32</link>
      <body><![CDATA[在CSDN上介绍国产达梦数据库系统，不由得一阵振奋，如此强大的数据库可以媲美sql server、oracle。立即下载试用……
说实话，从开始登录达梦数据库官方主页，我就心凉了半截－－不管怎么看都不算专业。
先忍了吧，
安装试用，几个会合下来实在无法忍受，可操作性极差，界面基本没有人性化……。实在无法再把这个东西跟sql server、oracle有任何联想了。
顺便贴上05年的一个帖子：





脆弱的国产电子政务平台：达梦数据库在发布会现场接连发现BUG (2005.07.11) csdn 记者
在6月29日全国政协专委会议楼多功能厅举行的“国产数据库电子政务解决方案暨成功实施发布会”上，csdn技术记者在体验达梦4.0.6（for linux平台）数据库时，居然接连发现比较重要的bug，一时令现场的达梦工程师和市场人员手忙脚乱。
记者主要体验了达梦数据库的管理客户端Jmanager，进行了一系列...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000002;h=000271;</comments>
      <pubdate>2007-07-31 16:42:20</pubdate>
    </item>
    <item>
      <title><![CDATA[让我们记住曾经有过一个出色的公司叫作Macromedia]]></title>
      <link>35</link>
      <body><![CDATA[Macromedia被并购进入Adobe的尘埃已经落定，新的产品，新的策略将在2006年产生。我相信一定有不少人对Macromedia公司的历史颇感兴趣，在这里，我为大家贴出一个完整无误的Macromedia历史和发展进程，相信能够帮助不少人了解Macromedia这家公司是如何发展并推动Web进程的，让我们记住曾经的Web发展之路上，曾经有过一个出色的公司叫作Macromedia。

1984年，美国芝加哥，MacroMind公司成立。公司致力于高质量的音频和视频和动画在艺术领域的软件开发。产品包括MacroMind3D，Action!，和VideoWorks（这就是以后的Director）。
1987年，MacroMind搬迁，从芝加哥搬到旧金山410 Townsend Street，位于MultiMedia Gulch地区。同年，VideoWorks 2.0发布，此外，另外2家公司Paracomp和Authorware成立，Paracomp主要产品是Swivel3D，Authorware的产品则和他的名字相同。
1988年，VideoWo...]]></body>
      <author>
      </author>
      <source><![CDATA[http://]]></source>
      <comments>r=000001;h=000180;</comments>
      <pubdate>2007-08-09 15:39:54</pubdate>
    </item>
    <item>
      <title><![CDATA[The serializable class XXX ... serialVersionUID ...]]></title>
      <link>38</link>
      <body><![CDATA[The serializable class XXX does not declare a static final serialVersionUID field of type long
中文翻译：可序列化的类&nbsp;XXX 未声明类型为 long 的静态终态 serialVersionUID 字段
serialVersionUID作用：序列化时为了保持版本的兼容性，即在版本升级时反序列化仍保持对象的唯一性。
可以随便写一个，在Eclipse中它替你生成一个，有两种生成方式：一个是默认的1L，比如：private static final long serialVersionUID = 1L;一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段，比如：private static final long serialVersionUID = -8940196742313994740L;之类的。
当一个类实现了Serializable接口，如果没有定义serialVersionUID，Eclipse会提供这个提示功能告诉你去定义之。 在Eclipse中点击类中warning的图标一下，Eclipse就会自动...]]></body>
      <author>
      </author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000149;</comments>
      <pubdate>2007-09-10 10:06:34</pubdate>
    </item>
    <item>
      <title><![CDATA[细节成就Vista]]></title>
      <link>41</link>
      <body><![CDATA[看了一些批判Vista，甚至是将其贬为一款“失败”的操作系统的文章，结合自己一年时间Vista的实际使用，我想从一个用户的角度谈一下这款时下备受争议的操作系统。相信部分媒体并不客观的评测和一些浅尝辄止用户的主观判断是造成大家非议的原因，那么Vista真的是那么好高骛远一无是处吗？看了以下Vista相对于XP的细节方面的改进，相信能够改变大家对于Vista的印象，它的确是一款值得一试的操作系统。
- Vista对多处理器的资源分配能力比XP优秀XP设计时就不是一款针对多处理器优化的系统，最多也只能支持2个CPU以SMP方式工作，对于目前流行的双核CPU来说并不能发挥最高的运行效率，一个核心累死另一个偷懒，或者一个进程锁死两个核心的情况也时有发生，有的甚至还要依靠补丁来改善情况。而Vista本身就是一款对于多处理器优化的系统，在当前多核CPU流行的年代更是如鱼得...]]></body>
      <author>
      </author>
      <source><![CDATA[http://www.cnbeta.com/articles/40077.htm]]></source>
      <comments>r=000000;h=000118;</comments>
      <pubdate>2007-09-30 13:54:58</pubdate>
    </item>
    <item>
      <title><![CDATA[ERP(Enterprise Resource Planning)最通俗解释]]></title>
      <link>70</link>
      <body><![CDATA[ERP(Enterprise Resource Planning)企业资源计划系统，是指建立在信息技术基础上，以系统化的管理思想，为企业决策层及员工提供决策运行手段的管理平台。一天中午，丈夫在外给家里打电话："亲爱的老婆，晚上我想带几个同事回家吃饭可以吗？"(订货意向)妻子："当然可以，来几个人，几点来，想吃什么菜？"丈夫："6个人，我们7点左右回来，准备些酒，烤鸭，番茄炒蛋，凉菜，蛋花汤…….你看可以吗 "(商务沟通)妻子："没问题，我会准备好的。"(订单确认)妻子记录下需要做的菜单(MPS计划)，具体要准备的东西：鸭，酒，番茄，鸡蛋，调料……(BOM物料清单)，发现需要：1只鸭蛋，5瓶酒，4个鸡蛋……(BOM展开)，炒蛋需要6个鸡蛋，蛋花汤需要4个鸡蛋(共用物料).打开冰箱一看(库房)，只剩下2个鸡蛋(缺料)来到自由市场，妻子："请问鸡蛋怎么卖？"(采购询价)小贩："1个1元，半打5元，1打9.5元。"妻子："我只需要8个...]]></body>
      <author>
      </author>
      <source><![CDATA[]]></source>
      <comments>r=000002;h=000057;</comments>
      <pubdate>2008-01-21 15:58:18</pubdate>
    </item>
  </channel>
  <channel type="博文">
    <title><![CDATA[文摘收藏]]></title>
    <link>6</link>
    <item>
      <title><![CDATA[我为什么感觉那么累？]]></title>
      <link>15</link>
      <body><![CDATA[好久没到自己的blog逛了，最近感觉忙了很多。
一周的工作后 ，我常感到疲惫不堪，为此我的解释是睡眠不足。可最近，看了一组数据之后才知道，我不是缺乏睡眠，而是工作过度。
中国一共有 12亿人口，其中有 三亿退休，那就只剩下9亿人工作了； 8亿人在农村，那 就只剩下一亿人在工作；二千万是学生， 那只剩下八千万人在工作；这八千万当中有四千万是政府工作人员，其中一千万在打牌 ，一千万在看报，七百万在厕所，一千万在聊天，三百万在打毛衣。
那只剩下四千万人在工作；三千万人工作在机关事业单位，只剩下一千万人在工作；剩下的人里，有三百万是军人，只剩 下七百万人做工作；在任意的时间里，全国各医院都共有二百八十五万三千七百九十六人接受治疗，只剩下四百一十四万六千二百零四人在工作；其中四百一十四万六千一百零二人正在坐牢，而其中再有一百人在驱使、监督、评价...]]></body>
      <author>
      </author>
      <source><![CDATA[]]></source>
      <comments>r=000008;h=000460;</comments>
      <pubdate>2007-06-22 11:56:27</pubdate>
    </item>
    <item>
      <title><![CDATA[britney lucky mtv]]></title>
      <link>24</link>
      <body><![CDATA[britney lucky mtv 

加载完成后，点击播放按钮开始播放……
(This is a story about a girl named Lucky)Early morningshe wakes upKnock knock knockon the doorIt's time for make upperfect smileIt's you they're all waiting forThey goIsn't she lovelythis hollywood girlAnd they sayShe's so luckyshe's a starBut she cry cry cryin her lonely heart thinkingIf there's nothingmissing in my lifeThen why do thesetears come at nightLost in an image in a dreamBut there's no onethere to wake her upAnd the world is spinningand she keeps on winningBut tell mewhat happens when it stopsThey goIsn't she lovelythis hollywood girlAnd they sayShe's so luckyshe's a starBut she cry cry cryin her lonely heart thinkingIf...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000001;h=000172;</comments>
      <pubdate>2007-07-14 13:55:21</pubdate>
    </item>
    <item>
      <title><![CDATA[shania.twain I'm gonna getcha good mtv]]></title>
      <link>25</link>
      <body><![CDATA[shania.twain I'm gonna getcha good mtv

加载完成后，点击播放按钮开始播放……
Let's go!
Don't wantcha for the weekend -don't wantcha for a nightI'm only interested if I can have you for life - yeahUh, I know I sound serious - and baby I amYou're a fine piece of real estate, and I'm gonna get me some land
Oh, yeahSo, don't try to run - honey, love can be funThere's no need to be alone - when you find that someone
(I'm gonna getcha)I'm gonna getcha while I gotcha in sight(I'm gonna getcha)I'm gonna getcha if it takes all night(Yeah, you can betcha)You can betcha by the time I say "go," you'll never say "no"(I'm gonna getcha)I'm gonna getcha, it's a matter of fact(I'm gonna getcha)I'm gonn...]]></body>
      <author>fnsword</author>
      <source><![CDATA[]]></source>
      <comments>r=000000;h=000125;</comments>
      <pubdate>2007-07-14 15:21:19</pubdate>
    </item>
    <item>
      <title><![CDATA[部分学生作文摘录-奇文共赏(老师日记)]]></title>
      <link>33</link>
      <body><![CDATA[&nbsp;“一同学的作文：我和同学某某一起骑车出门玩，突然他的车气门芯坏了，我就把我的拔下来给他装上，后来我俩一起高高兴兴骑车回家了。”
&nbsp;小学时候的作文经常写好人好事，于是老是有人写捡到钱，后来愈演愈烈，有同学为了夸大自己的功绩，写在公园捡到1亿元，都是10元人民币的，厚度有一语文书（四年级的）那么厚，我当场念出来，那同学也浑身发抖……
&nbsp;“大家还记得小学时候的《小蝌蚪找妈妈》吗？我让学生模仿这个写一篇关于某某人的作文，有个同学是这样模仿的：我的妈妈雪白的肚皮，鼓鼓的眼睛……”
&nbsp;“三年级的一篇课文叫《公园的一角》，于是我要同学写一篇《我家的一角》。一位同学提笔就写：我家的一角很漂亮，又圆又亮，我每天要去两次，是一只马桶。”
&nbsp;“我要求学生用“果然”这词来造句，一位同学就写：我三个月没洗澡，身上果然臭了。”
&nbsp;“小学时听...]]></body>
      <author>
      </author>
      <source><![CDATA[http://]]></source>
      <comments>r=000000;h=000125;</comments>
      <pubdate>2007-08-07 18:31:32</pubdate>
    </item>
    <item>
      <title><![CDATA[一篇能令老师自杀的小学作文]]></title>
      <link>34</link>
      <body><![CDATA[星期一到了……小英在交完作业后，中午马上被老师教去罚站，附加念500遍“我以后不敢编谎话欺骗老师了”。&nbsp;&nbsp;&nbsp; WHY？为何这名老师要残忍的对待这名柔弱的小学生？看看她作文是怎么写的吧!
————————————&nbsp;&nbsp;&nbsp; 星期日&nbsp;&nbsp;&nbsp; 今天是礼拜日，虽然昨天去海洋公园玩到晚上11：00多，可是今天我们起了个大早，就到海洋公园旁边的太平山去摘水果，因为奶奶跟爷爷就住在太平山。&nbsp;&nbsp;&nbsp; 我们到了太平山下后，就把鞋子脱了开始爬山，大约1分钟就到山顶了。山顶上的空气很好，爷爷带我们去他的果园。&nbsp;&nbsp;&nbsp; 哇……爷爷的果园好大，种了好多果树，有西瓜树、草莓树、菠萝树……因为我太小了爬不上树，爷爷就爬上西瓜树，摘了一颗最大的西瓜丢给爸爸，爸爸用一只手就接起来了！&nbsp;&nbsp;&nbsp; 果园还有很多长在地上的水果，像...]]></body>
      <author>
      </author>
      <source><![CDATA[http://]]></source>
      <comments>r=000005;h=000391;</comments>
      <pubdate>2007-08-07 18:45:44</pubdate>
    </item>
    <item>
      <title><![CDATA[IT评弹：当企鹅目露凶光地扯掉最后一块遮羞布]]></title>
      <link>45</link>
      <body><![CDATA[不光it人，几乎每一个上网的人都要每天和企鹅见面，看着他裸着身体确实有一种耍流氓的嫌疑，一会儿跳个妇科病广告、一会儿蹦个男科病广告，一会又插播一条癌症肿瘤心血管疾病广告，看着烦人。
　　近月来的it界戾气比较重，蹲监狱的就有三个，一个是做杀毒软件的，一个是制造病毒的，还有一个就是给企鹅做遮羞布的小陈。
　　前两个被抓，在杨得意看来是正常的，触犯法律了嘛。而小陈的被抓则完全出乎意料。连不少街坊上的老人都说小陈挺乖的，唯一做错的事就是不应该选择裁缝这个职业，给企鹅连续作7年的遮羞布（也就是屁帘儿）。可惜街坊上的老人不是法官，说的话也不是法律，所以小陈被抓只能成为一个事实，哪怕这个事实比较让人难以接受，就像南京的小彭同学因为好心扶老奶奶过马路，结果却要倒赔4万块钱那样叫人心绪难平，省身自危。
　　小陈被抓了，蹲监狱的那种。杨得意，包括...]]></body>
      <author>
      </author>
      <source><![CDATA[http://news.pconline.com.cn/news/yang/0710/1121623.html]]></source>
      <comments>r=000001;h=000107;</comments>
      <pubdate>2007-10-20 13:43:51</pubdate>
    </item>
    <item>
      <title><![CDATA[这是罪有应得、死有余辜，那么中国网民岂不都要死光]]></title>
      <link>46</link>
      <body><![CDATA[最近有一个IT评论博客因为找不到话题而低迷了，更新缓慢不说，一更新还都是老消息旧消息烂消息，经常的用Google的图片充数，用Google Reader的摘录功能假模假样的搞个每日网摘充数。最近珊瑚虫被抓还爬出来给政府说官话，给腾讯递手纸，搞的我实在是憋不下去了，不骂几句实在不解愤。我还不敢点这个博客的名，害怕被他“厉害”的技术掐死，被口水淹死，中国互联网虽然不自由，但咱不谈政治说说这珊瑚虫事件总可以吧。
引用：总的来说，从软件产业内部的观点来看，这起案件事实清晰，没有什么争议，腾讯公司对于知识产权的处理也没有什么不当，然而令人不解的是，网络上看到有些人对于陈寿福的盗版行为表示支持，并对腾讯的做法不满，这令人感觉非常奇怪。
　　我说两句：这件事确实没什么争议，但是我们亲爱的祖国怎么连真正的盗版都不去抓，却跑到这里来行使正义来了。就连美国...]]></body>
      <author>
      </author>
      <source><![CDATA[http://lxz.name/html/hypocrite-qq.html]]></source>
      <comments>r=000001;h=000145;</comments>
      <pubdate>2007-10-20 13:49:23</pubdate>
    </item>
    <item>
      <title><![CDATA[徽剑: 汉语编程-汉芯之后的中国软件界大骗局]]></title>
      <link>47</link>
      <body><![CDATA[一、闹得沸沸扬扬的汉语编程二、汉语编程其实是一个大骗局三．汇编都是英文的，其他变成汉语有什么用四、其实汉语编程很好创造出来，但是却没什么用五、中国人编程难的问题和出路在那里
一、闹得沸沸扬扬的汉语编程
这几年以来，特别是最近一段时间，汉语编程闹得沸沸扬扬，大有我中华民族之骄傲，如果不加紧实行汉语编程，中华民族就要消失了。徽剑本对于汉语编程不以为然，一直没有理会。之所以写这篇文章，是因为徽剑前几天接到一电话，是北京一家公司打过来的，大谈推广汉语编程，要跟徽剑的公司合作在深圳推广，于是徽剑查了一下资料，发现这两年所谓的汉语编程这场闹剧居然愈演愈烈，于是徽剑不得不出来揭露下。对比去年的汉芯事件，徽剑认为，所谓的汉语编程只不过是另一场汉芯的重演而已。所以看完本文，特别是程序员朋友，如果您认为徽剑说的有理，请将本文多多转发到...]]></body>
      <author>
      </author>
      <source><![CDATA[http://www.cnbeta.com/articles/41273.htm]]></source>
      <comments>r=000000;h=000080;</comments>
      <pubdate>2007-11-03 10:20:58</pubdate>
    </item>
    <item>
      <title><![CDATA[谨以此文献给才毕业2 - 5年的朋友]]></title>
      <link>48</link>
      <body><![CDATA[我们终于进入了这个社会。从此结束了被学校老师看管的生涯，结束了做父母乖宝贝的日子，也结束从父母兄长那里拿钱的幸福时光。
　　 我们从家里搬了出来，提着自己半新不旧的行囊找了间不能再廉价的破房子租了下来，开始了闯荡的生活。我们的眼光充满了好奇，我们的血液里流淌着激情，我们的钱夹却空前的瘦小。在面对第一个老板第一批同事第一份工作的时候，我们是那样的慷慨激昂，我们认为自己无所不能，我们幻想很快就可以打造一片属于自己的天地，我们对未来充满了信心。并且希望从别人艳羡的目光中找到一点点骄傲的资本。可是渐渐的我们才知道，其实现实和自己的理想有着天壤之别。我们发现了老板是多么的阴险狠毒同事是多么的势利小气工作是多么的枯燥无趣，我们也发现了房租水电气费把人愁死了。发薪的日子总好像遥不可及，商店里的东西仿佛只是为别人摆设，我们还...]]></body>
      <author>
      </author>
      <source><![CDATA[http://dev.csdn.net/author/ComplexAdaptiveSys/677a319704ff4a33850c1becad77b419.html]]></source>
      <comments>r=000003;h=000128;</comments>
      <pubdate>2007-11-06 14:29:11</pubdate>
    </item>
  </channel>
</xmls>