﻿<?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>BlogJava-翠湖月色-随笔分类-数据库(Sql server,My sql)</title><link>http://www.blogjava.net/matthew2006/category/35915.html</link><description>No Buddha tree at all,And bright mirror nor.Now nothing at all,How dusts any more ? </description><language>zh-cn</language><lastBuildDate>Mon, 22 Jun 2009 07:29:15 GMT</lastBuildDate><pubDate>Mon, 22 Jun 2009 07:29:15 GMT</pubDate><ttl>60</ttl><item><title>MySQL超时问题</title><link>http://www.blogjava.net/matthew2006/archive/2009/06/22/283573.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Mon, 22 Jun 2009 06:56:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2009/06/22/283573.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/283573.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2009/06/22/283573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/283573.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/283573.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个都起灰尘的项目，最近出现一个问题。描述如下：当天使用很正常，到了第二天就不能登录使用，具体的说不能访问数据库。重启&#8220;小猫&#8221;之后，能正常使用，但到第二天又不行啦。根据日志分析，是MySQL数据库连接关闭了。<br />
&#8220;java.sql.SQLException<br />
MESSAGE: Communication link failure: java.net.SocketException, underlying cause: Software caused connection abort: recv failed&#8221;.<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上网查了些帖子，发现可能是MySQL5.0版本的一个bug：超时问题。MySQL默认等待时间间隔wait_timeout是8小时，也就是8小时内，我们的系统没有使用，没有对数据库进行访问的话，数据库会关闭连接，而当我们系统用这些连接对数据库进行访问时，就会出现上述问题。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;解决办法有2种：<br />
1. 对于MySQL5之前的版本，如Mysql4.x，只需要修改连接池配置中的URL，添加一个参数：autoReconnect=true，如果是MySQL5及以后的版本，则需要修改my.ini文件。在[mysqld]后面添加上： wait_timeout=1814400，把默认的8小时尽量延长。<br />
2. 采用第三方的数据库连接池来管理连接， 如，proxool、C3P0等。性能方面据说proxool更强些。由于该系统用了hibernate，对C3P0支持比较好，C3P0.jar包无需另外下载。C3P0和hibernate的配置也相对简单，如下，<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 先把C3P0.jar包拷贝到WEB-INF\lib下，然后修改hibernate.cfg.xml文件，加入以下内容：<br />
<span style="font-style: italic"><wbr>&lt;!--C3P0 setting--&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="hibernate.connection.provider_class"&gt;org.hibernate.connection.C3P0ConnectionProvider&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="hibernate.c3p0.min_size"&gt;2&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="hibernate.c3p0.timeout"&gt;5000&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="hibernate.c3p0.max_statements"&gt;100&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="hibernate.c3p0.idle_test_period"&gt;3000&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="hibernate.c3p0.acquire_increment"&gt;2&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name="hibernate.c3p0.validate"&gt;false&lt;/property&gt;</span><wbr><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这样基本可以解决MySQL的超时问题，如何检查该方法是否有效呢？可以通过修改服务器的系统日期，把日期往前推几个月，然后再访问系统，看是否还报错。<br />
</span><!--v:3.2-->
<img src ="http://www.blogjava.net/matthew2006/aggbug/283573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2009-06-22 14:56 <a href="http://www.blogjava.net/matthew2006/archive/2009/06/22/283573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL Server不能启动 </title><link>http://www.blogjava.net/matthew2006/archive/2009/04/19/266402.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sun, 19 Apr 2009 04:55:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2009/04/19/266402.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/266402.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2009/04/19/266402.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/266402.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/266402.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;快半年没碰这个东西了，前两天突然要打开以前的项目，发现SQL Server数据库死活启动不起来。一直用着My SQL也就没理它。发现在服务管理器里面启动不了，在企业管理器里面也不能连接本地local连接，在服务里面MSSQLServer服务也不能启动。之前一直是正常使用的，好久没动它，居然就启动不了啦。奇怪！<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;进SQL Server的日志查看，发现如下描述：<br />
<br />
<span style="font-style: italic"><wbr>2009-04-17 23:32:20.16 server&nbsp;&nbsp;&nbsp;&nbsp;Copyright (C) 1988-2002 Microsoft Corporation.<br />
2009-04-17 23:32:20.16 server&nbsp;&nbsp;&nbsp;&nbsp;保留所有权利。<br />
2009-04-17 23:32:20.16 server&nbsp;&nbsp;&nbsp;&nbsp;服务器进程 ID 是 520。<br />
2009-04-17 23:32:20.16 server&nbsp;&nbsp;&nbsp;&nbsp;将 SQL Server 消息记录在文件&#8220;C:\Program Files\Microsoft SQL Server\MSSQL\log\ERRORLOG&#8221;中。<br />
2009-04-17 23:32:20.34 server&nbsp;&nbsp;&nbsp;&nbsp;SQL Server 正在以优先级&#8220;normal&#8221;（已检测到 1 CPU）启动。<br />
2009-04-17 23:32:26.84 server&nbsp;&nbsp;&nbsp;&nbsp;已为 thread 模式处理而配置了 SQL Server。<br />
2009-04-17 23:32:26.91 server&nbsp;&nbsp;&nbsp;&nbsp;使用 dynamic 锁分配。[500] 锁块，[1000] 锁所有者块。<br />
2009-04-17 23:32:28.21 spid3&nbsp;&nbsp;&nbsp;&nbsp; 启动数据库&#8220;master&#8221;。<br />
2009-04-17 23:32:33.91 server&nbsp;&nbsp;&nbsp;&nbsp;正在使用&#8220;SSNETLIB.DLL&#8221;版本&#8220;8.0.2039&#8221;。<br />
2009-04-17 23:32:33.92 spid5&nbsp;&nbsp;&nbsp;&nbsp; 启动数据库&#8220;model&#8221;。<br />
2009-04-17 23:32:33.96 spid3&nbsp;&nbsp;&nbsp;&nbsp; 服务器名称是&#8220;MATTHEW-6E9E0D4&#8221;。<br />
2009-04-17 23:32:33.96 spid3&nbsp;&nbsp;&nbsp;&nbsp; Skipping startup of clean database id 4<br />
2009-04-17 23:32:33.96 spid3&nbsp;&nbsp;&nbsp;&nbsp; Skipping startup of clean database id 5<br />
2009-04-17 23:32:33.96 spid3&nbsp;&nbsp;&nbsp;&nbsp; Skipping startup of clean database id 6<br />
2009-04-17 23:32:33.96 spid3&nbsp;&nbsp;&nbsp;&nbsp; Skipping startup of clean database id 7<br />
2009-04-17 23:32:33.96 spid3&nbsp;&nbsp;&nbsp;&nbsp; Skipping startup of clean database id 8<br />
2009-04-17 23:32:33.96 spid3&nbsp;&nbsp;&nbsp;&nbsp; Skipping startup of clean database id 9<br />
2009-04-17 23:32:34.65 spid5&nbsp;&nbsp;&nbsp;&nbsp; 错误: 9003，严重度: 20，状态: 1<br />
2009-04-17 23:32:34.65 spid5&nbsp;&nbsp;&nbsp;&nbsp; LSN (6:183:1) 无效。该 LSN 是传递给数据库 'model' 中的日志扫描操作的。。<br />
2009-04-17 23:32:34.65 spid5&nbsp;&nbsp;&nbsp;&nbsp; 错误: 9003，严重度: 20，状态: 1<br />
2009-04-17 23:32:34.65 spid5&nbsp;&nbsp;&nbsp;&nbsp; The LSN (6:183:1) passed to log scan in database 'model' is invalid.。</span><wbr><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 问题的根源在&#8220;错误：9003&#8221;，还有后面的&#8220;<span style="font-style: italic"><wbr>The LSN (6:183:1) passed to log scan in database 'model' is invalid.。</span><wbr>&#8221;在网上浏览了一些不能启动的原因，没有找到解决的办法。不过，通过仔细研究，发现SQL Server的基本数据库文件如果损坏的话，可能会引起不能正常启动的后果。结合错误日志的提示，是否"model"这个数据库文件有问题呢？于是，找到SQL Server的安装盘，并找到X86\DATA目录下的model.mdf和modellog.ldf，并把这两个文件拷贝到SQL Server的安装路径下Microsoft SQL Server\MSSQL\Data的目录下，覆盖原有文件。然后，再启动。哈哈，ok啦。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;内事不决问百度，外事不决问Google&#8221;，果然没错。当然，也要结合自己个体原因去分析、解决。 <!--v:3.2-->
<img src ="http://www.blogjava.net/matthew2006/aggbug/266402.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2009-04-19 12:55 <a href="http://www.blogjava.net/matthew2006/archive/2009/04/19/266402.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL server存储过程</title><link>http://www.blogjava.net/matthew2006/archive/2008/11/14/240453.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Fri, 14 Nov 2008 01:52:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2008/11/14/240453.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/240453.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2008/11/14/240453.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/240453.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/240453.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近一个项目碰见要用存储过程的情况，通过重新学习。已初步完成功能，现列出来。大家给个意见。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 需求描述：数据库中有一主一从表，A和B；A和B是一对多的关系。另有和A、B结构相同的表C和表D。要实现，通过表A的主键id，把与此id值相关的记录（表A和表B中）分别更新插入到表C和表D中，同时要求有事务控制。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 分析要点：1）存储过程需要传入一个参数，id。2）表B中的记录多少不定，可能需要插入多条记录。3）整个过程需要事务控制。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实现代码如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PROCEDURE</span><span style="color: #000000">&nbsp;query_pro_info&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">@pi_id</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">int</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">AS</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">begin</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">transaction</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">exists</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;pro_ent_info&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;PI_ID</span><span style="color: #808080">=</span><span style="color: #008000">@pi_id</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">delete</span><span style="color: #000000">&nbsp;pro_ent_info&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;PI_ID</span><span style="color: #808080">=</span><span style="color: #008000">@pi_id</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;pro_ent_info(EI_ID,EP_ID,EP_TYP,CI_ID,CI_NUM,CI_TOT,CI_TYP,PI_ID,PI_NUM,PI_NAM,PI_CLI,PI_CLI_TEL,PI_CLI_MAN,PI_ARE,PI_CAT,PI_STA,PI_MAN,PI_ADD,PI_REM,PI_CHE,PI_PLA_SPA,PI_PLA_BEG,PI_PLA_END,PI_CRE_DAT,PI_CRE_MAN,PI_MOD_DAT,PI_MOD_MAN)</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;EI_ID,EP_ID,EP_TYP,CI_ID,CI_NUM,CI_TOT,CI_TYP,PI_ID,PI_NUM,PI_NAM,PI_CLI,PI_CLI_TEL,PI_CLI_MAN,PI_ARE,PI_CAT,PI_STA,PI_MAN,PI_ADD,PI_REM,PI_CHE,PI_PLA_SPA,PI_PLA_BEG,PI_PLA_END,PI_CRE_DAT,PI_CRE_MAN,PI_MOD_DAT,PI_MOD_MAN&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;pro_info&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;pro_info.PI_ID</span><span style="color: #808080">=</span><span style="color: #008000">@pi_id</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">exists</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;pro_ent_cost&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;PI_ID</span><span style="color: #808080">=</span><span style="color: #008000">@pi_id</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">delete</span><span style="color: #000000">&nbsp;pro_ent_cost&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;PI_ID</span><span style="color: #808080">=</span><span style="color: #008000">@pi_id</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;pro_ent_cost(PI_ID,PC_ID,PC_DIV,PC_DIV_SEQ,PC_BUD_LAB,PC_BUD_MAT,PC_BUD_DEV,PC_BUD_CMP,PC_BUD_TOT,PC_BUD_REM,PC_PLA_LAB,PC_PLA_MAT,PC_PLA_DEV,PC_PLA_CMP,PC_PLA_TOT,PC_PLA_REM,PC_ACT_LAB,PC_ACT_MAT,PC_ACT_DEV,PC_ACT_CMP,PC_ACT_TOT,PC_ACT_REM,PC_DIV_PLA_BEG,PC_DIV_PLA_END,PC_DIV_PLA_SPA,PC_DIV_ACT_BEG,PC_DIV_ACT_END,PC_DIV_ACT_SPA,PC_DIV_SPA_ABN,PC_PRO_REC,PC_DIV_PAI,PC_DIV_SHO,PC_CHE,PC_OFF,PC_REM,PC_CRE_DAT,PC_CRE_MAN,PC_MOD_DAT,PC_MOD_MAN)</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;PI_ID,PC_ID,PC_DIV,PC_DIV_SEQ,PC_BUD_LAB,PC_BUD_MAT,PC_BUD_DEV,PC_BUD_CMP,PC_BUD_TOT,PC_BUD_REM,PC_PLA_LAB,PC_PLA_MAT,PC_PLA_DEV,PC_PLA_CMP,PC_PLA_TOT,PC_PLA_REM,PC_ACT_LAB,PC_ACT_MAT,PC_ACT_DEV,PC_ACT_CMP,PC_ACT_TOT,PC_ACT_REM,PC_DIV_PLA_BEG,PC_DIV_PLA_END,PC_DIV_PLA_SPA,PC_DIV_ACT_BEG,PC_DIV_ACT_END,PC_DIV_ACT_SPA,PC_DIV_SPA_ABN,PC_PRO_REC,PC_DIV_PAI,PC_DIV_SHO,PC_CHE,PC_OFF,PC_REM,PC_CRE_DAT,PC_CRE_MAN,PC_MOD_DAT,PC_MOD_MAN&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;pro_cost&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;pro_cost.PI_ID</span><span style="color: #808080">=</span><span style="color: #008000">@pi_id</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #008000">@@error</span><span style="color: #808080">&lt;&gt;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">rollback&nbsp;transaction</span><span style="color: #ff0000">'</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">rollback</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">transaction</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">commit</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">transaction</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">GO</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 经过调试，功能基本正常。只是事务控制处理部分不知道写的对不对。望各位指正！
<img src ="http://www.blogjava.net/matthew2006/aggbug/240453.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2008-11-14 09:52 <a href="http://www.blogjava.net/matthew2006/archive/2008/11/14/240453.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>