??xml version="1.0" encoding="utf-8" standalone="yes"?>99久久999,日韩欧美电影在线观看,亚洲人成电影网站色mp4http://www.aygfsteel.com/gcw633/zh-cnTue, 24 Jun 2025 15:10:57 GMTTue, 24 Jun 2025 15:10:57 GMT60js止右键Q复Ӟ_脓Q选择http://www.aygfsteel.com/gcw633/archive/2010/05/21/321533.html淡E的回?/dc:creator>淡E的回?/author>Fri, 21 May 2010 04:14:00 GMThttp://www.aygfsteel.com/gcw633/archive/2010/05/21/321533.htmlhttp://www.aygfsteel.com/gcw633/comments/321533.htmlhttp://www.aygfsteel.com/gcw633/archive/2010/05/21/321533.html#Feedback1http://www.aygfsteel.com/gcw633/comments/commentRss/321533.htmlhttp://www.aygfsteel.com/gcw633/services/trackbacks/321533.html1. oncontextmenu="window.event.returnValue=false" 彻底屏蔽鼠标右键,其实是禁止快捯单,因ؓ不光右键可以弹出q个菜单Q键盘上I格键右边的windows键也可以Ȁz这个快捯?nbsp;
<table border oncontextmenu=return(false)><td>no</table> 可用于Table 
2<body onselectstart="return false"> 止选取、防止复?nbsp;
3. onpaste="return false" 止_脓 
4. oncopy="return false;" oncut="return false;" 止复制和剪?br /> 5<input style="ime-mode:disabled"> 关闭输入?nbsp;

一般用q三个就_?br />
<body onselectstart='return false' ondrag='return false' oncontextmenu='return false'>


]]>
修改tomcat内存大小http://www.aygfsteel.com/gcw633/archive/2010/05/19/321355.html淡E的回?/dc:creator>淡E的回?/author>Wed, 19 May 2010 04:10:00 GMThttp://www.aygfsteel.com/gcw633/archive/2010/05/19/321355.htmlhttp://www.aygfsteel.com/gcw633/comments/321355.htmlhttp://www.aygfsteel.com/gcw633/archive/2010/05/19/321355.html#Feedback0http://www.aygfsteel.com/gcw633/comments/commentRss/321355.htmlhttp://www.aygfsteel.com/gcw633/services/trackbacks/321355.htmlTomcate启动内存讄 

     其初始空??/span>-Xms)是物理内存的1/64Q最大空?-Xmx)是物理内存的1/4。可以利用JVM提供?/span>-Xmn -Xms -Xmx{选项?nbsp;
q行讄 
    实例Q以下给?G内存环境下java jvm 的参数设|参考: 
JAVA_OPTS
="-server -Xms800m -Xmx800m  -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true " 
JAVA_OPTS
="-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX: 
NewSize=192m -XX:MaxNewSize=384m" 
CATALINA_OPTS="-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m 
-XX:NewSize=192m -XX:MaxNewSize=384m" 


LinuxQ?nbsp;
?/span>/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh 
dQJAVA_OPTS
='-Xms512m -Xmx1024m' 
要加“m”说明是MBQ否则就是KB了,在启动tomcat时会报内存不?nbsp;
-XmsQ初始?nbsp;
-XmxQ最大?nbsp;
-XmnQ最?nbsp;


Windows 
在catalina.bat最前面加入 
set JAVA_OPTS
=-Xms128m -Xmx350m 
如果用startup.bat启动tomcat,OK讄生效.够成功的分配200M内存. 
但是如果不是执行startup.bat启动tomcat而是利用windows的系l服务启动tomcat服务,上面的设|就不生效了, 
是说set JAVA_OPTS
=-Xms128m -Xmx350m 没v作用.上面分配200M内存OOM?. 

windows服务 执行的是bin\tomcat.exe.他读取注册表中的?而不是catalina.bat的设|? 
解决办法: 
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 
2.0\Tomcat6\Parameters\JavaOptions 
原gؓ 
-Dcatalina.home=E:\Tomcat 6.0 
-Dcatalina.base=E:\Tomcat 6.0 
-Djava.endorsed.dirs=E:\Tomcat 6.0\common\endorsed 
-Djava.io.tmpdir=E:\Tomcat 6.0\temp 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Djava.util.logging.config.file=E:\Tomcat 6.0\conf\logging.properties 

加入 
-Xms300m -Xmx350m  

重vtomcat服务,讄生效

本文来自CSDN博客Q{载请标明出处Qhttp:
//blog.csdn.net/peijunlin/archive/2009/06/05/4244401.aspx

]]>
修改j2ee工程名,如何修改tomcat目录下的webapps的工E目?/title><link>http://www.aygfsteel.com/gcw633/archive/2010/05/19/321331.html</link><dc:creator>淡E的回?/dc:creator><author>淡E的回?/author><pubDate>Wed, 19 May 2010 02:14:00 GMT</pubDate><guid>http://www.aygfsteel.com/gcw633/archive/2010/05/19/321331.html</guid><wfw:comment>http://www.aygfsteel.com/gcw633/comments/321331.html</wfw:comment><comments>http://www.aygfsteel.com/gcw633/archive/2010/05/19/321331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/gcw633/comments/commentRss/321331.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/gcw633/services/trackbacks/321331.html</trackback:ping><description><![CDATA[在项目里面找?mymetadata文g<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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000"><?</span><span style="color: #000000">xml   version</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">1.0 </span><span style="color: #000000">"</span><span style="color: #000000">   encoding</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">UTF-8 </span><span style="color: #000000">"</span><span style="color: #000000">?></span><span style="color: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000"><</span><span style="color: #000000">project</span><span style="color: #000000">-</span><span style="color: #000000">module <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    type</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">WEB </span><span style="color: #000000">"</span><span style="color: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    name</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Test1 </span><span style="color: #000000">"</span><span style="color: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    id</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">myeclipse.1190363759187 </span><span style="color: #000000">"</span><span style="color: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    context</span><span style="color: #000000">-</span><span style="color: #000000">root</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">/Test1 </span><span style="color: #000000">"</span><span style="color: #000000">   </span><span style="color: #008000">//</span><span style="color: #008000">修改q里好?nbsp;</span><span style="color: #008000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000">    j2ee</span><span style="color: #000000">-</span><span style="color: #000000">spec</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">5.0 </span><span style="color: #000000">"</span><span style="color: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    archive</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">Test1.war </span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #000000"><</span><span style="color: #000000">attributes</span><span style="color: #000000">></span><span style="color: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #000000"><</span><span style="color: #000000">attribute   name</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">webrootdir </span><span style="color: #000000">"</span><span style="color: #000000">   value</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">WebRoot </span><span style="color: #000000">"</span><span style="color: #000000">   </span><span style="color: #000000">/></span><span style="color: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #000000"></</span><span style="color: #000000">attributes</span><span style="color: #000000">></span><span style="color: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #000000"></</span><span style="color: #000000">project</span><span style="color: #000000">-</span><span style="color: #000000">module</span><span style="color: #000000">></span><span style="color: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> 然后destroy目Q重新编译部|就可以? <img src ="http://www.aygfsteel.com/gcw633/aggbug/321331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/gcw633/" target="_blank">淡E的回?/a> 2010-05-19 10:14 <a href="http://www.aygfsteel.com/gcw633/archive/2010/05/19/321331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>触发器简?/title><link>http://www.aygfsteel.com/gcw633/archive/2010/05/18/321303.html</link><dc:creator>淡E的回?/dc:creator><author>淡E的回?/author><pubDate>Tue, 18 May 2010 09:49:00 GMT</pubDate><guid>http://www.aygfsteel.com/gcw633/archive/2010/05/18/321303.html</guid><wfw:comment>http://www.aygfsteel.com/gcw633/comments/321303.html</wfw:comment><comments>http://www.aygfsteel.com/gcw633/archive/2010/05/18/321303.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/gcw633/comments/commentRss/321303.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/gcw633/services/trackbacks/321303.html</trackback:ping><description><![CDATA[<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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">INSTEAD OF 触发?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  AFTER 触发器(也叫“FOR”触发器)会在触发 insert、update 或是delect 动作之后执行。例如,一?nbsp;Employees 表上?nbsp;AFTER 触发器会在在 Employee 表上执行一?nbsp;update 语句后激zR因此,AFTER 触发器只有在已插入一行或是多行和所有约束已被处理且通过后才触发。INSTEAD OF 触发器和 AFTER 触发器有本质上的不同Q因?nbsp;INSTEAD OF 触发器代替触发动作进行激发。就拿同L例子来说Q如果在 Emplyees 表上有一?nbsp;INSTEAD OF UPDATE 触发器和在这个表上执行一?nbsp;UPDATE 语句Q结果是q条 UPDATE 语句q不会改?nbsp;Employee 表中的Q何一行。相?q条 UPDATE 语句只有是ؓ了踢?nbsp;INSTEAD OF UPDATE 触发器,q个触发器可能会Q也可能不会改变 Employees 表中的数据?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  因此Q怎么军_在合适的旉和位|放|?nbsp;INSTEAD OF 触发器呢Q有几个关键的因素在做决定是值得考虑的。AFTER 触发器多用在动作必须在表中数据发生改变之后才执行后情情况。比如,AFTER 触发器可以用于将Ҏ据作M变动的日志记录在一个相对独立的审计表中。INTEAD OF 触发器也能做同样的工作。但?nbsp;INSTEAD OF 触发器在q个情况下的效率比较低,因ؓ更新动作只能在将它发生的动作准确地记录在审计表之后才允许执行?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  一般来_只要不媄响数据的修改QAFTER 触发器比 INSTEAD OF 触发器更有效率。在Ҏ据进行计或是对数据的修改作Z个整体提交或是作Z个整体回退的情况下QAFTER 触发器也是一个很好的选择。例如,存在q样一条规则:对在 Products 表的产品h的变动超q?0Q的必须回退。AFTER 触发器能很漂亮地完成q个工作Q它利用已插入同已删除的表中的品hg比较Q然后在有必要的时回滚事务。这些都?nbsp;AFTER 触发器的理想条gQ但有时 INSTEAD OF会更好些?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  INSTEAD OF 触发器有一个很大的特点——就是它允许你在某个表或视图上用多个复杂的查询操作来代替单一的查询。跟 AFTER 触发器只能对表v作用不同QINSTEAD OF 触发器可以同时对表和视图起作用。我常常被问到怎么样去解决q种情况Q有一个多表组成的视图Q如何对该视图进行一ơ更新。如果视囑֌含有关键字段和包含有基本表的某些字段Q这只是单的更新基本表。但是,当有视图中包含有多个基本表示Q逻辑上的更新比单单一?nbsp;UPDATE 语句会更复杂。因此,你是怎么利用什么可以替代的工具来解册个问题的呢?其中一个方法就是将一个INSTEAD OF 触发器放在视图上。INSTEAD OF 触发器可以定义在一个或多个表上.INSTEAD OF 触发器就能{开在多个基本表中修改的范围.<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  例如Q如果一个视囑ְ Customers、Products、orders ?nbsp;OrderDteils {表合ƈ成一个视图,q利用视N过E序在屏q上来显C所有的数据。更新操作便允许用来代替q个视图Q假如存在一个这个样的视图:它包?nbsp;Northwind 数据库中的四个表Qƈ且被命名为vwCustomersOrdersOrderDetailsProductsQ它看v来像q样(Figure </span><span style="color: #000000">1</span><span style="color: #000000">)Q?nbsp;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />Figure </span><span style="color: #000000">1</span><span style="color: #000000"> q接 Customers 及其 Order Details 的视?nbsp;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />CREATE VIEW vwCustomersOrdersOrderDetailsProducts<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />AS<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    SELECT    c.CustomerID, <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        c.CompanyName, <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        o.OrderID, <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        o.OrderDate, <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        od.UnitPrice, <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        od.Quantity, <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        od.Discount, <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        p.ProductID, <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        p.ProductName<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    FROM Customers c<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        INNER JOIN Orders o ON c.CustomerID </span><span style="color: #000000">=</span><span style="color: #000000"> o.CustomerID <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        INNER JOIN [Order Details] od ON o.OrderID </span><span style="color: #000000">=</span><span style="color: #000000"> od.OrderID <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        INNER JOIN Products p ON od.ProductID </span><span style="color: #000000">=</span><span style="color: #000000"> p.ProductID<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />GO      <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  vwCustomersOrdersOrderDetailsProducts 视图q接着四个表,q且每个表都暴露一个取样字Dc必记住的一ҎQ当你设计一个含?nbsp;INSTEAD OF UPDATE 的触发器Ӟ每个表的主关键字段包含在SELECT语句中是很有益的做法。即使这些字D在应用E序不会用到Q它们也以在 INSTEAD OF 触发器中用来定位要被修改的行,然后对基表作相应的修攏V假设你打算允许更新该视图以便按非关键字qo。更C码应该写?nbsp;INSTEAD OF UPDATE 触发器中Q让触发器去更新 Customers 表中?nbsp;CompnayName 列,Orders 表中?nbsp;OrderDate 列,Order Details 表的 UnitPrice ?nbsp;Quantity 列以及在 Products 表中?nbsp;ProductName 列。在q种情况下,使用 AFTER 触发器就不适合了,?nbsp;INSTEAD OF 触发器则是一个很好的选择Q参?nbsp;Figure </span><span style="color: #000000">2</span><span style="color: #000000">Q?nbsp;Figure </span><span style="color: #000000">2</span><span style="color: #000000"> ?nbsp;INSTEAD OF 触发器更新视?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />CREATE TRIGGER tr_vwCustomersOrdersOrderDetailsProducts_IO_U <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    ON vwCustomersOrdersOrderDetailsProducts<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    INSTEAD OF UPDATE<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />AS<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    ?nbsp;更新 Customers<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    UPDATE     Customers<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    SET    CompanyName </span><span style="color: #000000">=</span><span style="color: #000000"> i.CompanyName <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    FROM    inserted i <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        INNER JOIN Customers c ON i.CustomerID </span><span style="color: #000000">=</span><span style="color: #000000"> c.CustomerID <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    ?nbsp;更新 Orders<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    UPDATE     Orders<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    SET    OrderDate </span><span style="color: #000000">=</span><span style="color: #000000"> i.OrderDate<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    FROM    inserted i <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        INNER JOIN Orders o ON i.OrderID </span><span style="color: #000000">=</span><span style="color: #000000"> o.OrderID <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    ?nbsp;更新 Order Details<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    UPDATE     [Order Details]<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    SET    UnitPrice </span><span style="color: #000000">=</span><span style="color: #000000"> i.UnitPrice,<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        Quantity </span><span style="color: #000000">=</span><span style="color: #000000"> i.Quantity<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    FROM    inserted i <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        INNER JOIN [Order Details] od ON i.OrderID </span><span style="color: #000000">=</span><span style="color: #000000"> od.OrderID AND <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />            i.ProductID </span><span style="color: #000000">=</span><span style="color: #000000"> od.ProductID<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    ?nbsp;更新 Products<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    UPDATE     Products<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    SET    ProductName </span><span style="color: #000000">=</span><span style="color: #000000"> i.ProductName<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    FROM    inserted i <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        INNER JOIN Products p ON i.ProductID </span><span style="color: #000000">=</span><span style="color: #000000"> p.ProductID<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />GO      <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  注意?nbsp;Figure </span><span style="color: #000000">2</span><span style="color: #000000"> 中的 INSTEAD OF UPDATE 触发器包含了四个 UPDATE 语句。每?nbsp;UPDATE语句目的都是Z对其中一个基表中的非关键字段q行修改。在 UPDATE 语句中包含了每个表中的关键字D对应于视图中的字段。这样就允许 UPDATE 语句在相应的表中定位对应的列q只对这些列作修攏V下面的 UPDATE 语句对 INSTEAD OF 触发器进行测试: UPDATE   vwCustomersOrdersOrderDetailsProducts <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />SET    Quantity </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">100</span><span style="color: #000000">,<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />       UnitPrice </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">20</span><span style="color: #000000">,<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />       CompanyName </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">''''</span><span style="color: #000000">Fake Name</span><span style="color: #000000">''''</span><span style="color: #000000">,<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />       OrderDate </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">''''</span><span style="color: #000000">11</span><span style="color: #000000">/</span><span style="color: #000000">23</span><span style="color: #000000">/</span><span style="color: #000000">2001</span><span style="color: #000000">''''</span><span style="color: #000000">,<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />       ProductName </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">''''</span><span style="color: #000000">Widget</span><span style="color: #000000">''''</span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />WHERE    OrderID </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">10265</span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />AND      ProductID </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">17</span><span style="color: #000000">        <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  如果你(通过视图或是表自w)查相应表中的|很明显,q些值已被更C。当Ӟ对INSTEAD OF 触发器作一些改变会使其有不同的l果。例如,不存在写一个触发器L变四个基表的需求,因此Q可以将触发器中的一个或是多?nbsp;UPDATE 语句删去。假?nbsp;INSTEAD OF 触发器仅仅是Z更新 Order Details 表的|q就会仅仅更新在 Order Details 表中的字D,而忽视Q何在其他上的修改。在q种情况下,?nbsp;Customers,Products 或是 Orders 表中不会产生M错误同时也不会发生Q何改变。当Ӟ如果q三个表中的某些字段发生改变的话Q会发生报错。如我呆会在q篇文章会讨论的一PUPDATE ?nbsp;COLUMNSQUPDATED 函数是个哪些字D发生改变的理想的方法?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  Figure </span><span style="color: #000000">2</span><span style="color: #000000"> 也演CZ怎么写一个触发器修改多行记录。注意到 UPDATE 语句如何按关键字q接被插入的表和各个。这׃证更新是Ҏ有的行,q些行在视图中被原有?nbsp;UPDATE 语句修改。通过循环被插入表的记录行也能完成该操作。不怎么P通常避免使用游标是个好主意,其是在使用触发器时更应如此。SQL SERVER 被设计成以数据集的方式来处理数据Q而游标是Zơ处理一个数据行而设计的。在触发器中使用游标会降低程序的性能Q因此,最好能使用?nbsp;Figure </span><span style="color: #000000">2</span><span style="color: #000000"> 中那h有效代替Ҏ或用一个子查询?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  另一个改?nbsp;INSERT OF UPDATE 触发器的Ҏ是使其在视囄 INSERT ?nbsp;DELETE 语句中激发。这也就意味着在适当的地方,触发器会实现 INSERT 或是 DELETE 的功能。但是必记隹的?nbsp;DELETE 可能会删除多个记录,q关键在于触发器是怎样写的。因此,查触发器的需求,在实C前进行测试,q些做法十分重要。INSERT OF UPDATE 触发器可写在视图中,因此它可插入一个新的顾客、订单、详l的订单和品。这个触发器也可以用来在插入一个新֮之前查这个顾客是否是新的(对其它记录的操作也是一?。当采用的是 INSTEAD OF 触发器时存在有许多机会,但是Q当Ӟ触发器是决相应的需求这才是它的本质?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  通常Q当引用一张表?nbsp;UPDATE 语句试图去赋g个计型的,恒等型的或是旉戛_的列Ӟ会生一个错误,因ؓq些列的值必L由SQL SERVER来决定的。这些列必须被包含在UPDATE 语句中以便能满列不能ؓI的要求。但是,如果 UPDATE 语句?nbsp;INSTEAD OF 触发器引用一个视图,定义在触发器中的逻辑可以旁\掉这些列来避免错误的发生。ؓ了达到这个目的,触发器决不能试L新基表中相应列的?让它们远?nbsp;UPDATE 语句?nbsp;SET 从句)。当某一条被处理的记录来自被插入的表Ӟ计算型的Q恒{型的或是时间戳型的列可以用一个虚假g满不ؓI值的要求Q这ӞINSTEAD OF 触发器将忽略q些|正确的值由 SQL SERVER 讄?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /> 更新分开的列 <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  INSTEAD OF 触发器也很普遍地用于更新中计型的列。例如,假设存在有如下这样一个叫 vwOrdersOrderDetailsProducts 的视图: CREATE VIEW vwOrdersOrderDetailsProducts<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />AS<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    SELECT    o.OrderID,<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        o.OrderDate,<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        od.UnitPrice </span><span style="color: #000000">*</span><span style="color: #000000"> od.Quantity AS ExtendedPrice,<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        p.ProductID, <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        p.ProductName<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    FROM Orders o<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        INNER JOIN [Order Details] od ON o.OrderID </span><span style="color: #000000">=</span><span style="color: #000000"> od.OrderID <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        INNER JOIN Products p ON od.ProductID </span><span style="color: #000000">=</span><span style="color: #000000"> p.ProductID<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />GO<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  q个视图揭示了一个计型的列叫ExtendedPriceQ这个列不能被直接被更新Q因为它不能其自己变ؓ表中独立的一列。虽然你可实现这样一个生意规则,在这个规则中ExtendedPrice通过q个视图来修改,Quantity列不应修改,但是UnitPrice可被修改(我知道这条规则有点奇怪,但我可以忍受q点)。可以写一个INSTEAD OF UPDATE触发器来增强q条生意规则Q其代码如下所C: CREATE TRIGGER tr_vwOrdersOrderDetailsProducts_IO_U <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    ON vwOrdersOrderDetailsProducts<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    INSTEAD OF UPDATE<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />AS<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    UPDATE     [Order Details]<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    SET        UnitPrice </span><span style="color: #000000">=</span><span style="color: #000000"> i.ExtendedPrice </span><span style="color: #000000">/</span><span style="color: #000000"> Quantity<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    FROM       inserted i <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        INNER JOIN [Order Details] od ON i.OrderID </span><span style="color: #000000">=</span><span style="color: #000000"> od.OrderID AND <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />               i.ProductID </span><span style="color: #000000">=</span><span style="color: #000000"> od.ProductID<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />GO<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  q些代码揭示了怎样用一个在INSTEAD OF 触发器中的逻辑来代替对一个计型列的更新。假设一个品在一张特定的定单表中Quantity?00而ExtendedPrice要更Cؓ200Q这时新的UnitPrice值就变ؓ2。在q种情况下,在执行一个对ExtendedPrice列进行修改的UPDATE语句Ӟ最l的l果是UnitPrice被赋为ExtendedPrice除以Quantity的商。下面的代码可以用来试q种情况Q?nbsp;UPDATE   vwOrdersOrderDetailsProducts<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />SET      ExtendedPrice </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">200</span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />WHERE    OrderID </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">10265</span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />AND      ProductID </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">17</span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /> 查改?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  在INSTEAD OF和AFTER触发器中都有UPDATE和COLUMNSQUPDATE功能Q这二种功能允许p发器军_哪些字段p发器的语句来改变。例如,下面的触发器LM对Employees表中的lastname字段q行修改。在q里QUPDATE功能用来军_对哪些对字段的修改可以执行。如果超出发生了改变Q而又是不允许修改的)׃产生一个错误。PAISERR OR功能和事务就会回退Q回退会撤消所做的M修改。UPDATE功能都可以在AGTER触发器和INSTEAD OF触发器中工作Q而不是在外部工作?nbsp;CREATE TRIGGER tr_Employees_U on Employees AFTER UPDATE AS<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    IF UPDATE(lastname)<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    BEGIN<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        RAISERROR (</span><span style="color: #000000">''''</span><span style="color: #000000">cannot change lastname</span><span style="color: #000000">''''</span><span style="color: #000000">, </span><span style="color: #000000">16</span><span style="color: #000000">, </span><span style="color: #000000">1</span><span style="color: #000000">)<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        ROLLBACK TRAN<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        RETURN<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    END<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />GO<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />   UPDATE功能是ؓ了判断单一列是否被INSERT或是UPDATE语句修改q。UPDATE(?是一个用来检更新的标准的方法。但是当需要用来他多列是否受到INSERT或UPDATE语句的媄响时变得更低效率。而这恰恰是COLUM_UPDATE功能的一个亮炏VCOLUMN_UPDATE功能q回一个位掩码来判断特定的列是否被修改q。位掩码是包含在被表中被修改的列中的一个比特,目的是ؓ了在表模式中定义q些列。如果一行修改,q比特位的值就?Q否则ؓ0。不像从叛_左地d节的常规ҎQ位掩码是从左往双。例如,下面的代码提CZ一个在Order Details表中的触发器Q这个触发器是ؓ了检Quantity和UnitPrice二个字段是否被修改过?nbsp;CREATE TRIGGER tr_OrderDetails ON [Order Details] AFTER UPDATE<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />AS<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    IF (COLUMNS_UPDATED() </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">12</span><span style="color: #000000">)<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    BEGIN<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        RAISERROR (</span><span style="color: #000000">''''</span><span style="color: #000000">Cannot change both UnitPrice and Quantity at the <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />                    same time</span><span style="color: #000000">''''</span><span style="color: #000000">, </span><span style="color: #000000">16</span><span style="color: #000000">, </span><span style="color: #000000">1</span><span style="color: #000000">)<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        ROLLBACK TRAN<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    END<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />GO<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  如果q个字段都被修改了,׃产生一个错误,同时事务也将回滚。就拿Order Details表来_COLUMN_UPDATED功能q回代表Order Details表中字段的五个字节。只要第三和W四个字D被修改Q上面这U情况就会发生,它检这些位是不是已赋gؓ1.当第三和W四位都打开的庆Q它如Q?/span><span style="color: #000000">00110</span><span style="color: #000000">。L因这个位掩码代表2ơ幂Q第一位表C?Q第二位表示2Q第三位表示4Q第四位表示8Q第五位表示16Q是的,q是和正怺q制数相反的序Q;因此只表CUnitPrice和Quantity字段被修改位掩码的gؓ00110Q这个gؓ12Q?/span><span style="color: #000000">4</span><span style="color: #000000">+</span><span style="color: #000000">8</span><span style="color: #000000">Q。请注意Q这个触发器只有在UnitPrice和Quantity字段被修Ҏ会将事务回滚。如果其他字D修改的话,位掩码就会不一P因此׃{于整数12了。如果触发器被修改ؓ止对这二个字段修改即对其他字D也止Q它可重新~写为如? ALTER TRIGGER tr_OrderDetails ON [Order Details] AFTER UPDATE<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />AS<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    IF (COLUMNS_UPDATED() </span><span style="color: #000000">>=</span><span style="color: #000000"> </span><span style="color: #000000">12</span><span style="color: #000000">)<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    BEGIN<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        RAISERROR (</span><span style="color: #000000">''''</span><span style="color: #000000">Cannot change both UnitPrice and Quantity <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />                   at the same time</span><span style="color: #000000">''''</span><span style="color: #000000">, </span><span style="color: #000000">16</span><span style="color: #000000">, </span><span style="color: #000000">1</span><span style="color: #000000">)<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        ROLLBACK TRAN<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    END<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />GO<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  h意 COLUMN_UPDATED 功能现在是怎么L位掩码的但是否于{于12.如果你修改联pUnitPrice,Quantity和Discount列的话,位掩码就变ؓ00111Q代表整?8Q?/span><span style="color: #000000">4</span><span style="color: #000000">+</span><span style="color: #000000">8</span><span style="color: #000000">+</span><span style="color: #000000">16</span><span style="color: #000000">Q。当在一个表中不止有8个列Ӟq个函数׃先返回包含了前八列的五个字节Q而第从第九到W十六就会在W二个字节中Q以此类推。这个功能在军_允许哪些列可以被更新比只对第列进行更新的UPDATE功能更有用?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  如前期所描述的一P在Ş特定条件规则条件下Q触发器可以回滚事务Q当一个含有回滚的触发器在SQL脚本中执行时Q整个处理将被取消。因此,被触发动作修改的的所有数据将由ROLLBACK TRANSACION语句回滚。虽然一个回滚ƈ不阻止触发执行SQL语句所有在ROLLBACK TRANSACION语句后面的语句都会被执行 。特别是当一个触发器l箋执行回滚语句后面的语句时Q在回滚以后所作的M修改都不会回滚。发生这U情冉|因ؓ当在触发器中执行了一个ROLLBACK TRANSACTIONӞ所以有的事务都被取消。因此当一个新的查询语句被执行Ӟ一个新的不同与以前事务的事务就重新开始。因此,一般情况下Q徏议不要在ROLLBACK TRANSACTION语句后放|Q何语句?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  像回滚不会自动退发器一P它也不会自动产生错误。如果必d滚且必会产生错误QPAISERR OR语句应该攑֜退发器代码前,紧跟在回滚后. <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /> l束?nbsp;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  在对同一个表的数据所作的修改会激发同LINSTEAD OF触发器,q种触发器不会递归调用。因?如果在Emplyee表中有一个INSTEAD OF触发?Pq个触发器是用来更新Employee表的Q这q不会发生调用同一个INSTEAD OF触发器。如果允许这U递旭的话Q更新应该被止。INSTEAD OF触发器和AFTER触发器的另一个不同在于Text,Ntext和Image列可以出现在被更新和删除的表的触发器中。这些二q制列会以如VARCAHAR数值出现在更新和删除表的触发器中,q种是可行的Q但qƈ不是他们原始的数据类型?br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  q有一个有用的存储q程</span><span style="color: #000000">-</span><span style="color: #000000">sp_helptrigger pȝ存储q程</span><span style="color: #000000">-</span><span style="color: #000000">来检触发器。他q回定义在表上的触发器类型,q个表是传递给存储q程的。用q种ҎQ你可以看到哪些触发器和某个表有兌Q什么操作动触发q些触发器和判断触发器是AFTER触发器还是INSTEAD OF触发器?nbsp;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />  在最后二栏中Q我已经讨论了AFTER触发器和INSTEAD OF触发器的多个斚w。当Ӟq有许多情Ş下他们很有用Q还有许多用时Z没有提出来。当一个触发器必须查询其他表的情况下,触发器就会没有什么效率了。在q些情况下,触发器的性能和触发动作会受到很大损害。当使用得好Ӟ触发器是一个很的工具Q但是必M证在使用他们之前必须对你的程序作一个全面的试?nbsp;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> <img src ="http://www.aygfsteel.com/gcw633/aggbug/321303.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/gcw633/" target="_blank">淡E的回?/a> 2010-05-18 17:49 <a href="http://www.aygfsteel.com/gcw633/archive/2010/05/18/321303.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ssh调用存储q程http://www.aygfsteel.com/gcw633/archive/2010/05/18/321284.html淡E的回?/dc:creator>淡E的回?/author>Tue, 18 May 2010 07:48:00 GMThttp://www.aygfsteel.com/gcw633/archive/2010/05/18/321284.htmlhttp://www.aygfsteel.com/gcw633/comments/321284.htmlhttp://www.aygfsteel.com/gcw633/archive/2010/05/18/321284.html#Feedback0http://www.aygfsteel.com/gcw633/comments/commentRss/321284.htmlhttp://www.aygfsteel.com/gcw633/services/trackbacks/321284.html
create PROCEDURE [dbo].[GetUserS]
(
@empno nvarchar(
32),--输入参数
@pwd nvarchar(
32)--输入参数
)  
AS
BEGIN 
select 
* from [user] where empno=@empno and pwd=@pwd    
END
GO
--q个存储q程输出的结果是名字和密码相W合的整一条记?/span>
数据讉K层中的代?br />
public int getUser(String name, String pass) {
        
// TODO Auto-generated method stub
        Session session=this.getSession();
        String sql1
="{call GetUserS(?,?)}";
        Query query
=session.createSQLQuery(sql1);
        query.setString(
0, name);
        query.setString(
1, pass);
        List list 
=query.list();
                
        
if(list.size()>0){
            
return 1;
        }

        
return 0;
    }


]]>
自己写的日期处理c?-月䆾的第一天和最后一?/title><link>http://www.aygfsteel.com/gcw633/archive/2010/05/05/320134.html</link><dc:creator>淡E的回?/dc:creator><author>淡E的回?/author><pubDate>Wed, 05 May 2010 09:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/gcw633/archive/2010/05/05/320134.html</guid><wfw:comment>http://www.aygfsteel.com/gcw633/comments/320134.html</wfw:comment><comments>http://www.aygfsteel.com/gcw633/archive/2010/05/05/320134.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/gcw633/comments/commentRss/320134.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/gcw633/services/trackbacks/320134.html</trackback:ping><description><![CDATA[<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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.Calendar;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.Date;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.util.GregorianCalendar;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img id="Codehighlighter1_108_1782_Open_Image" onclick="this.style.display='none'; Codehighlighter1_108_1782_Open_Text.style.display='none'; Codehighlighter1_108_1782_Closed_Image.style.display='inline'; Codehighlighter1_108_1782_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_108_1782_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_108_1782_Closed_Text.style.display='none'; Codehighlighter1_108_1782_Open_Image.style.display='inline'; Codehighlighter1_108_1782_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> DoDate </span><span id="Codehighlighter1_108_1782_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_108_1782_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />    </span><span style="color: #008000">//</span><span style="color: #008000">当前月䆾的第一?/span><span style="color: #008000"><br /> <img id="Codehighlighter1_155_506_Open_Image" onclick="this.style.display='none'; Codehighlighter1_155_506_Open_Text.style.display='none'; Codehighlighter1_155_506_Closed_Image.style.display='inline'; Codehighlighter1_155_506_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_155_506_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_155_506_Closed_Text.style.display='none'; Codehighlighter1_155_506_Open_Image.style.display='inline'; Codehighlighter1_155_506_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" /></span><span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> String firstDay()</span><span id="Codehighlighter1_155_506_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_155_506_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        java.text.SimpleDateFormat   df   </span><span style="color: #000000">=</span><span style="color: #000000">   </span><span style="color: #0000ff">new</span><span style="color: #000000">   java.text.SimpleDateFormat(</span><span style="color: #000000">"</span><span style="color: #000000">yyyy-MM-dd</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />         GregorianCalendar gc </span><span style="color: #000000">=</span><span style="color: #000000"> (GregorianCalendar) Calendar.getInstance();   <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            gc.setTime(</span><span style="color: #0000ff">new</span><span style="color: #000000"> Date());   <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            gc.set(Calendar.DAY_OF_MONTH, </span><span style="color: #000000">1</span><span style="color: #000000">);                  <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            String day_first </span><span style="color: #000000">=</span><span style="color: #000000"> df.format(gc.getTime())</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000"> 00:00:00</span><span style="color: #000000">"</span><span style="color: #000000">; <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            </span><span style="color: #0000ff">return</span><span style="color: #000000"> day_first;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />    }</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />    </span><span style="color: #008000">//</span><span style="color: #008000">当前月䆾的最后一?/span><span style="color: #008000"><br /> <img id="Codehighlighter1_552_887_Open_Image" onclick="this.style.display='none'; Codehighlighter1_552_887_Open_Text.style.display='none'; Codehighlighter1_552_887_Closed_Image.style.display='inline'; Codehighlighter1_552_887_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_552_887_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_552_887_Closed_Text.style.display='none'; Codehighlighter1_552_887_Open_Image.style.display='inline'; Codehighlighter1_552_887_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" /></span><span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> String lastDay()</span><span id="Codehighlighter1_552_887_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_552_887_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        Calendar cal</span><span style="color: #000000">=</span><span style="color: #000000">Calendar.getInstance();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        cal.add(   cal.MONTH,</span><span style="color: #000000">1</span><span style="color: #000000">   );      <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        cal.set(cal.DATE,</span><span style="color: #000000">1</span><span style="color: #000000">);      <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        cal.add(cal.DATE,</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">);     <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        java.text.SimpleDateFormat   df   </span><span style="color: #000000">=</span><span style="color: #000000">   </span><span style="color: #0000ff">new</span><span style="color: #000000">   java.text.SimpleDateFormat(</span><span style="color: #000000">"</span><span style="color: #000000">yyyy-MM-dd</span><span style="color: #000000">"</span><span style="color: #000000">);      <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        String day_end</span><span style="color: #000000">=</span><span style="color: #000000">df.format(cal.getTime())</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000"> 23:59:59</span><span style="color: #000000">"</span><span style="color: #000000">;  <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> day_end;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />    }</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />    </span><span style="color: #008000">//</span><span style="color: #008000">距离当前月䆾N个月的第一?/span><span style="color: #008000"><br /> <img id="Codehighlighter1_943_1352_Open_Image" onclick="this.style.display='none'; Codehighlighter1_943_1352_Open_Text.style.display='none'; Codehighlighter1_943_1352_Closed_Image.style.display='inline'; Codehighlighter1_943_1352_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_943_1352_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_943_1352_Closed_Text.style.display='none'; Codehighlighter1_943_1352_Open_Image.style.display='inline'; Codehighlighter1_943_1352_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" /></span><span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> String firstDay(</span><span style="color: #0000ff">int</span><span style="color: #000000"> n)</span><span id="Codehighlighter1_943_1352_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_943_1352_Open_Text"><span style="color: #000000">{    <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        java.text.SimpleDateFormat   df   </span><span style="color: #000000">=</span><span style="color: #000000">   </span><span style="color: #0000ff">new</span><span style="color: #000000">   java.text.SimpleDateFormat(</span><span style="color: #000000">"</span><span style="color: #000000">yyyy-MM-dd</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />         GregorianCalendar gc </span><span style="color: #000000">=</span><span style="color: #000000"> (GregorianCalendar) Calendar.getInstance();   <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            gc.setTime(</span><span style="color: #0000ff">new</span><span style="color: #000000"> Date()); <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            gc.set(Calendar.MONTH, gc.get(Calendar.MONTH)</span><span style="color: #000000">+</span><span style="color: #000000">n);<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            gc.set(Calendar.DAY_OF_MONTH, </span><span style="color: #000000">1</span><span style="color: #000000">);                  <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            String day_first </span><span style="color: #000000">=</span><span style="color: #000000"> df.format(gc.getTime())</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000"> 00:00:00</span><span style="color: #000000">"</span><span style="color: #000000">; <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            </span><span style="color: #0000ff">return</span><span style="color: #000000"> day_first;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />    }</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />    </span><span style="color: #008000">//</span><span style="color: #008000">距离当前月䆾N个月的最后一?/span><span style="color: #008000"><br /> <img id="Codehighlighter1_1408_1780_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1408_1780_Open_Text.style.display='none'; Codehighlighter1_1408_1780_Closed_Image.style.display='inline'; Codehighlighter1_1408_1780_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_1408_1780_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1408_1780_Closed_Text.style.display='none'; Codehighlighter1_1408_1780_Open_Image.style.display='inline'; Codehighlighter1_1408_1780_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" /></span><span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> String lastDay(</span><span style="color: #0000ff">int</span><span style="color: #000000"> n)</span><span id="Codehighlighter1_1408_1780_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_1408_1780_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        Calendar cal</span><span style="color: #000000">=</span><span style="color: #000000">Calendar.getInstance();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        cal.add(cal.MONTH,</span><span style="color: #000000">1</span><span style="color: #000000">);<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        cal.set(cal.MONTH, cal.get(Calendar.MONTH)</span><span style="color: #000000">+</span><span style="color: #000000">n);<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        cal.set(cal.DATE,</span><span style="color: #000000">1</span><span style="color: #000000">);      <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        cal.add(cal.DATE,</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">);     <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        java.text.SimpleDateFormat   df   </span><span style="color: #000000">=</span><span style="color: #000000">   </span><span style="color: #0000ff">new</span><span style="color: #000000">   java.text.SimpleDateFormat(</span><span style="color: #000000">"</span><span style="color: #000000">yyyy-MM-dd</span><span style="color: #000000">"</span><span style="color: #000000">);      <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        String day_end</span><span style="color: #000000">=</span><span style="color: #000000">df.format(cal.getTime())</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000"> 23:59:59</span><span style="color: #000000">"</span><span style="color: #000000">;  <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> day_end;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />    }</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> <img src ="http://www.aygfsteel.com/gcw633/aggbug/320134.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/gcw633/" target="_blank">淡E的回?/a> 2010-05-05 17:13 <a href="http://www.aygfsteel.com/gcw633/archive/2010/05/05/320134.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>详解Java内存机制(堆与?的分?-转蝲http://www.aygfsteel.com/gcw633/archive/2010/04/29/319655.html淡E的回?/dc:creator>淡E的回?/author>Thu, 29 Apr 2010 01:39:00 GMThttp://www.aygfsteel.com/gcw633/archive/2010/04/29/319655.htmlhttp://www.aygfsteel.com/gcw633/comments/319655.htmlhttp://www.aygfsteel.com/gcw633/archive/2010/04/29/319655.html#Feedback0http://www.aygfsteel.com/gcw633/comments/commentRss/319655.htmlhttp://www.aygfsteel.com/gcw633/services/trackbacks/319655.html阅读全文

]]>
struts2从一个action跌{到另外一个action?/title><link>http://www.aygfsteel.com/gcw633/archive/2010/04/23/319206.html</link><dc:creator>淡E的回?/dc:creator><author>淡E的回?/author><pubDate>Fri, 23 Apr 2010 09:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/gcw633/archive/2010/04/23/319206.html</guid><wfw:comment>http://www.aygfsteel.com/gcw633/comments/319206.html</wfw:comment><comments>http://www.aygfsteel.com/gcw633/archive/2010/04/23/319206.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/gcw633/comments/commentRss/319206.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/gcw633/services/trackbacks/319206.html</trackback:ping><description><![CDATA[<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.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000"><!--</span><span style="color: #000000"> d </span><span style="color: #000000">--></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #000000"><</span><span style="color: #000000">action name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">login</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">loginAction</span><span style="color: #000000">"</span><span style="color: #000000"> method</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">executeLogin</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />            </span><span style="color: #000000"><</span><span style="color: #000000">result name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">success</span><span style="color: #000000">"</span><span style="color: #000000">>/</span><span style="color: #000000">main.jsp</span><span style="color: #000000"></</span><span style="color: #000000">result</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />            </span><span style="color: #000000"><</span><span style="color: #000000">result name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">input</span><span style="color: #000000">"</span><span style="color: #000000">>/</span><span style="color: #000000">login.jsp</span><span style="color: #000000"></</span><span style="color: #000000">result</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />            </span><span style="color: #000000"><</span><span style="color: #000000">result name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">error</span><span style="color: #000000">"</span><span style="color: #000000">>/</span><span style="color: #000000">login.jsp</span><span style="color: #000000"></</span><span style="color: #000000">result</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #000000"></</span><span style="color: #000000">action</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />    </span><span style="color: #000000"><!--</span><span style="color: #000000"> 程跌{ </span><span style="color: #000000">--></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #000000"><</span><span style="color: #000000">action name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">liucheng</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.gt.actions.LiuchengAction</span><span style="color: #000000">"</span><span style="color: #000000"> method</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">LiuchengConvert</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />            </span><span style="color: #000000"><</span><span style="color: #000000">result type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">chain</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000">login</span><span style="color: #000000"></</span><span style="color: #000000">result</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />            </span><span style="color: #000000"><</span><span style="color: #000000">result name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">success</span><span style="color: #000000">"</span><span style="color: #000000">>/</span><span style="color: #000000">main.jsp</span><span style="color: #000000"></</span><span style="color: #000000">result</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        </span><span style="color: #000000"></</span><span style="color: #000000">action</span><span style="color: #000000">></span></div>  <img src="file:///E:/DOCUME~1/guocw/LOCALS~1/Temp/@CDP$WF)9P376C$WG{82CWM.jpg" alt="" /> <img src ="http://www.aygfsteel.com/gcw633/aggbug/319206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/gcw633/" target="_blank">淡E的回?/a> 2010-04-23 17:06 <a href="http://www.aygfsteel.com/gcw633/archive/2010/04/23/319206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2中form提交到action中的中文q问题解决办法http://www.aygfsteel.com/gcw633/archive/2010/04/22/319123.html淡E的回?/dc:creator>淡E的回?/author>Thu, 22 Apr 2010 09:05:00 GMThttp://www.aygfsteel.com/gcw633/archive/2010/04/22/319123.htmlhttp://www.aygfsteel.com/gcw633/comments/319123.htmlhttp://www.aygfsteel.com/gcw633/archive/2010/04/22/319123.html#Feedback2http://www.aygfsteel.com/gcw633/comments/commentRss/319123.htmlhttp://www.aygfsteel.com/gcw633/services/trackbacks/319123.html 在struts2-core-2.1.8.1.jar包中路径为struts2-core-2.1.8.1\org\apache \struts2
有一个default.properties 文g,
 
把struts.i18n.encoding=UTF-8改ؓQ?br /> struts.i18n.encoding=GBK

Ҏ二:
在struts.xml文g内添加常Q?span style="color: #0000ff"><
constant name="struts.i18n.encoding" value="GBK"/>

 



]]>
s2sh整合Q二Q?/title><link>http://www.aygfsteel.com/gcw633/archive/2010/04/19/318734.html</link><dc:creator>淡E的回?/dc:creator><author>淡E的回?/author><pubDate>Mon, 19 Apr 2010 06:41:00 GMT</pubDate><guid>http://www.aygfsteel.com/gcw633/archive/2010/04/19/318734.html</guid><wfw:comment>http://www.aygfsteel.com/gcw633/comments/318734.html</wfw:comment><comments>http://www.aygfsteel.com/gcw633/archive/2010/04/19/318734.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/gcw633/comments/commentRss/318734.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/gcw633/services/trackbacks/318734.html</trackback:ping><description><![CDATA[     摘要: s2sh整合q程Q二Q?nbsp; <a href='http://www.aygfsteel.com/gcw633/archive/2010/04/19/318734.html'>阅读全文</a><img src ="http://www.aygfsteel.com/gcw633/aggbug/318734.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/gcw633/" target="_blank">淡E的回?/a> 2010-04-19 14:41 <a href="http://www.aygfsteel.com/gcw633/archive/2010/04/19/318734.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">½</a>| <a href="http://" target="_blank">²</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">㽭ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">²</a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ϻ</a>| <a href="http://" target="_blank">Ӷ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">뽭</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɳƺ</a>| <a href="http://" target="_blank">˳</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ع</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ҽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ݶ</a>| <a href="http://" target="_blank">ɫ</a>| <a href="http://" target="_blank">ͬ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>