<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[WEB交互设计]]></title>
<link>http://www.xyhot.com/</link>
<description><![CDATA[-  www.xyhot.com]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[huheng1234@163.com(胡亨)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>WEB交互设计</title> 
	<url>http://www.xyhot.com/images/logos.gif</url> 
	<link>http://www.xyhot.com/</link> 
	<description>WEB交互设计</description> 
</image>

			<item>
			<link>http://www.xyhot.com/default.asp?id=336</link>
			<title><![CDATA[JAVA基本数据类型]]></title>
			<author>huheng1234@163.com(今晚打老虎)</author>
			<category><![CDATA[Java]]></category>
			<pubDate>Wed,19 Nov 2008 09:50:34 +0800</pubDate>
			<guid>http://www.xyhot.com/default.asp?id=336</guid>	
		<description><![CDATA[Java语言是一种强类型语言。这意味着每个变量都必须有一个声明好的类型。Java语言提供了八种基本类型。六种数字类型（四个整数型，两个浮点型），一种字符类型，还有一种布尔型。Java另外还提供大数字对象，但它不是Java的数据类型。&nbsp;<br/><br/><span style="color:Maroon">　　1、整数：&nbsp;<br/><br/>　　定义：没有小数部分的数字，负数是允许的。&nbsp;<br/><br/>　　种类：Java提供四种整数类型：&nbsp;<br/><br/>　　int&nbsp;4个字节(32bit)&nbsp;-2,147,483,648到2,147,483,647&nbsp;默认为0&nbsp;<br/>　　short&nbsp;2个字节(16bit)&nbsp;-32,768到32,767&nbsp;&nbsp;默认为0&nbsp;<br/>　　long&nbsp;8个字节(64bit)&nbsp;-9,223,372,036,854,775,808L到9,223,372,036,854,775,807L&nbsp;&nbsp;默认为0L&nbsp;<br/>　　byte&nbsp;1个字节(8bit)&nbsp;-128到127&nbsp;&nbsp;默认为0&nbsp;<br/><br/>　　2、浮点数：&nbsp;<br/><br/>　　定义：含有小数部分的数字。&nbsp;<br/><br/>　　分类：Java提供两种浮点数：&nbsp;<br/><br/>　　float&nbsp;4个字节(32bit)&nbsp;约+—3.40282347E+38F（6~7个有效的十进制数位）&nbsp;默认为0.0F&nbsp;<br/><br/>　　double&nbsp;8个字节(64bit)&nbsp;约+-1.79769313486231570E+308（15个有效数位）&nbsp;&nbsp;默认为0.0D&nbsp;<br/><br/>　　说明：&nbsp;<br/><br/>　　1）float类型的数值有个后缀：F，如果没有后缀F，那么默认为double。double类型的数值也可以使用后缀D。&nbsp;<br/><br/>　　2）当这些数字遇到取值范围错误时，会发生（上溢Overflow）；而在遇到象被零除时，会发生下溢（Underflow）。&nbsp;<br/><br/>　　3、字符类型：&nbsp;<br/><br/>　　定义：单引号用来表示char常量，&nbsp;<br/><br/>　　说明：&nbsp;<br/><br/>　　1）双引号则表示一个字串，他是Java的一个对象，并不是数据类型。&nbsp;<br/><br/>　　2）char类型表示Unicode编码方案中的字符,默认为&#39;\u0000&#39;,两个字节(16bit)范围(&#39;\u0000&#39;～&#39;\uFFFF&#39;)&nbsp;<br/><br/>　　Unicode可同时包含65536个字符，ASCII/ANSI只包含255个字符，实际上是Unicode的一个子集。Unicode字符通常用十六进制编码方案表示，范围在&#39;\u0000&#39;到&#39;\uFFFF&#39;之间。\u0000到\u00FF表示ASCII/ANSI字符。\u表示这是一个Unicode值。&nbsp;<br/><br/>　　3）在Java中除了用这个\u的形式来表示字符外，还可以使用换码序列来表示特殊字符。&nbsp;<br/><br/>　　\b&nbsp;退格&nbsp;\u0008　　\t&nbsp;Tab制表&nbsp;\u0009　　\n&nbsp;换行&nbsp;\u000a　　\r&nbsp;硬回车&nbsp;\u000d&nbsp;<br/><br/>　　\&#34;&nbsp;双引号&nbsp;\u0022　　\&#39;&nbsp;单引号&nbsp;\u0027　　\&nbsp;反斜杠&nbsp;\u005c&nbsp;<br/><br/>　　4）理论上在Java的应用程序和小应用程序中使用Unicode字符，但至于他们是否能真正显示出来，却要取决于使用的浏览器和操作系统，其中操作系统是最根本的。&nbsp;<br/><br/>　　4、布尔类型：&nbsp;<br/><br/>　　boolean类型只有两个值:false和true，一个字节(8bit)，默认为false。范围(true,false)&nbsp;</span>]]></description>
		</item>
		
			<item>
			<link>http://www.xyhot.com/default.asp?id=335</link>
			<title><![CDATA[BeanFactory与ApplicationConText区别 ]]></title>
			<author>huheng1234@163.com(今晚打老虎)</author>
			<category><![CDATA[Java]]></category>
			<pubDate>Sat,15 Nov 2008 13:41:44 +0800</pubDate>
			<guid>http://www.xyhot.com/default.asp?id=335</guid>	
		<description><![CDATA[使用BeanFactory从xml配置文件加载bean:<br/><span style="color:Blue">import&nbsp;o&#114;g.springframework.beans.factory.xml.XmlBeanFactory;<br/>import&nbsp;o&#114;g.springframework.core.io.FileSystemResource;<br/><br/>public&nbsp;class&nbsp;XmlConfigWithBeanFactory&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlBeanFactory&nbsp;factory&nbsp;=&nbsp;new&nbsp;XmlBeanFactory(new&nbsp;FileSystemResource(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;build/beans.xml&#34;));<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}</span><br/>使用ApplicationConText从xml配置文件加载bean:<br/><span style="color:Blue">public&nbsp;class&nbsp;XmlConfigWithApplication{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ApplicationContext&nbsp;application&nbsp;=&nbsp;new&nbsp;ClassPathXmlApplicationContext(beans.xml&#34;));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;application.getBean(&#34;BeanName&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;ApplicationContext和BeanFacotry相比,提供了更多的扩展功能，但其主要区别在于后者是延迟加载,如果Bean的某一个属性没有注入，BeanFacotry加载后，直至第一次使用调用getBean方法才会抛出异常；而ApplicationContext则在初始化自身是检验，这样有利于检查所依赖属性是否注入；所以通常情况下我们选择使用ApplicationContext.&nbsp;<br/><strong><span style="color:Red">简单的说：除非你有更好的理由，否则尽量使用ApplicationContext</span></strong>]]></description>
		</item>
		
			<item>
			<link>http://www.xyhot.com/default.asp?id=334</link>
			<title><![CDATA[oracle 获取ip]]></title>
			<author>huheng1234@163.com(今晚打老虎)</author>
			<category><![CDATA[Oracle]]></category>
			<pubDate>Mon,10 Nov 2008 12:20:18 +0800</pubDate>
			<guid>http://www.xyhot.com/default.asp?id=334</guid>	
		<description><![CDATA[Oracle服务器版本(817以上)：<br/>&nbsp;&nbsp;utl_inaddr.get_host_address，utl_inaddr.get_host_name&nbsp;<br/>客户端：<br/>&nbsp;&nbsp;sys_context(&#39;userenv&#39;,&#39;ip_address&#39;)<br/>Sel&#101;ct&nbsp;UTL_INADDR.GET_HOST_ADDRESS,UTL_INADDR.get_host_name,&nbsp;SYS_CONTEXT(&#39;userenv&#39;,&nbsp;&#39;ip_address&#39;)&nbsp;FROM&nbsp;DUAL;&nbsp;]]></description>
		</item>
		
			<item>
			<link>http://www.xyhot.com/default.asp?id=333</link>
			<title><![CDATA[DBA面试题及解答]]></title>
			<author>huheng1234@163.com(今晚打老虎)</author>
			<category><![CDATA[Oracle]]></category>
			<pubDate>Mon,10 Nov 2008 11:55:06 +0800</pubDate>
			<guid>http://www.xyhot.com/default.asp?id=333</guid>	
		<description><![CDATA[<strong>一：SQL&nbsp;tuning&nbsp;类</strong><br/><br/>1:列举几种表连接方式<br/><span style="color:Green">答:merge&nbsp;join,hash&nbsp;join,nested&nbsp;loop</span><br/><br/>2:不借助第三方工具，怎样查看sql的执行计划<br/><span style="color:Green">答:sqlplus&nbsp;<br/>set&nbsp;autotrace&nbsp;...<br/>utlxplan.sql创建plan_table表</span><br/><br/>3:如何使用CBO,CBO与RULE的区别<br/><span style="color:Green">答:在初始化参数里面设置optimizer_mode=choose/all_rows/first_row等可以使用cbo.<br/>rbo会选择不合适的索引,cbo需要统计信息。</span><br/><br/>4:如何定位重要(消耗资源多)的SQL<br/><span style="color:Green">答:根据v$sqlarea&nbsp;中的逻辑读/disk_read。以及寻找CPU使用过量的session,查出当前session的当前SQL语句.</span><br/><br/>5:如何跟踪某个session的SQL<br/><span style="color:Green">答:先找出对应的&#39;sid,serial&#39;,然后调用system_system.set_sql_trace_in_session(sid,serial,true).</span><br/>6:SQL调整最关注的是什么<br/><span style="color:Green">答:逻辑读。IO量</span><br/><br/>7:说说你对索引的认识（索引的结构、对dml影响、对查询影响、为什么提高查询性能<br/><span style="color:Green">答:默认的索引是b-tree.<br/>对ins&#101;rt的影响.(分裂，要保证tree的平衡)<br/>对del&#101;te的影响.(删除行的时候要标记改节点为删除).<br/>对up&#100;ate的影响，如果更新表中的索引字段，则要相应的更新索引中的键值。<br/>查询中包含索引字段的键值和行的物理地址。</span><br/><br/>8:使用索引查询一定能提高查询的性能吗？为什么<br/><span style="color:Green">答:不能。如果返回的行数目较大，使用全表扫描的性能较好。</span><br/><br/>9:绑定变量是什么？绑定变量有什么优缺点<br/><span style="color:Green">答:通俗的说，绑定变量就是变量的一个占位符，使用绑定变量可以减少只有变量值不同的<br/>语句的解析。</span><br/><br/>10:如何稳定(固定)执行计划<br/><span style="color:Green">答:使用stored&nbsp;outline.</span><br/><br/>11:和排序相关的内存在8i和9i分别怎样调整，临时表空间的作用是什么<br/><span style="color:Green">答:8i：使用sort_area_size，hash_area_size,每个session分配相同的值，不管有无使用。<br/>9i:&nbsp;使用pga_aggregate来统一管理。<br/>临时表空间的作用:<br/>在sort_area_size中不能完成的部分在临时表空间完成，临时表空间在重建索引，创建临时表等都要用到。<br/>还有hash&nbsp;join不能完成的也在临时表空间中做。</span><br/><br/>12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示，请给出sql<br/><span style="color:Green">sel&#101;ct&nbsp;a,b,c,d&nbsp;from&nbsp;(sel&#101;ct&nbsp;a,b,c,d&nbsp;from&nbsp;T&nbsp;o&#114;der&nbsp;by&nbsp;c)&nbsp;wh&#101;re&nbsp;rownum&lt;=30<br/>minus<br/>sel&#101;ct&nbsp;a,b,c,d&nbsp;from&nbsp;(sel&#101;ct&nbsp;a,b,c,d&nbsp;from&nbsp;T&nbsp;o&#114;der&nbsp;by&nbsp;c)&nbsp;wh&#101;re&nbsp;rownum&nbsp;&lt;=20;<br/>或者：<br/>sel&#101;ct&nbsp;*&nbsp;from&nbsp;(sel&#101;ct&nbsp;rownum&nbsp;rn,a.*&nbsp;from&nbsp;(sel&#101;ct&nbsp;a,b,c,d&nbsp;from&nbsp;T&nbsp;o&#114;der&nbsp;by&nbsp;c)&nbsp;a&nbsp;)wh&#101;re&nbsp;rn&nbsp;between&nbsp;21&nbsp;and&nbsp;30;</span><br/><br/><strong>二：数据库基本概念类</strong><br/><br/>1:pctused&nbsp;and&nbsp;pctfree&nbsp;表示什么含义有什么作用<br/><span style="color:Green">答:表示数据块什么时候移入和移出freelist。<br/>pctused:如果数据块的使用率小于pctused的值，则该数据块重新加入到fresslist中。<br/>pctfree：如果数据块的使用率高于pctfree的值，则该数据块从freelist中移出。</span><br/><br/>2:简单描述table&nbsp;/&nbsp;segment&nbsp;/&nbsp;extent&nbsp;/&nbsp;block之间的关系<br/><span style="color:Green">答:一个table至少是一个segment，如果分区表，则每个分区是一个segment,table可以看成是一个逻辑上的概念，segment可以看成是这个逻辑概念的物理实现；<br/>segment由一个或多个extents组成，segment不可以跨表空间但可以跨数据文件；<br/>extent由多个连续的blocks组成，不可以跨数据文件；<br/>block由1-多个os块组成，是oracle&nbsp;i/o的最小存储单位。</span><br/><br/>3:描述tablespace和datafile之间的关系<br/><span style="color:Green">答:tablespace是逻辑上的概念，datafile是物理上的概念。<br/>一个tablespace可以由多个datafile组成，一个datafile不能跨越多个tablespace。</span><br/><br/>4:本地管理表空间和字典管理表空间的特点，ASSM有什么特点<br/><span style="color:Green">答:一个使用freelist管理，一个使用位图管理。</span><br/><br/>5:回滚段的作用是什么<br/><span style="color:Green">答：保存数据的前像，保证数据读取的时间点一致性。Oracle里数据的多版本特性就是通过回滚段来实现的，正因为此，Oracle数据库实现了读写不竞争的性能优势！</span><br/><br/>6:日志的作用是什么<br/><span style="color:Green">答：纪录对数据库的操作，便与恢复。</span><br/><br/>7:SGA主要有那些部分，主要作用是什么<br/><span style="color:Green">答：db_cache(缓存数据块),shared_pool(缓存sql,执行计划，数据字典信息等),large_pool(MTS模式、parallel&nbsp;、rman等要用到),java&nbsp;pool(java程序如SQLJ存储过程运行时要用到)</span><br/><br/>8：racle系统进程主要有哪些，作用是什么<br/><span style="color:Green">答：smon（合并空间，实例恢复）,pmon（清理失败的进程）,归档进程（负责在日志切换的时候归档日志文件）,lgmr（日志书写器进程,负责写日志）,ckpt(检查点进程，触发检查点),dbwr(数据库写入器，负责把数据写入导datafile)</span><br/><br/><strong>三：备份恢复类</strong><br/><br/>1:备份如何分类<br/><span style="color:Green">答：逻辑备份(exp)与物理备份。<br/>或者冷备份与热备份。</span><br/><br/>2:归档是什么含义<br/><span style="color:Green">答：把日志文件放到另一个地方。</span><br/><br/>3:如果一个表在2004-08-04&nbsp;10:30:00&nbsp;被dro&#112;，在有完善的归档和备份的情况下，如何恢复<br/><span style="color:Green">答：拷贝备份，<br/>recover&nbsp;database&nbsp;until&nbsp;time&nbsp;2004-08-04&nbsp;10:30:00<br/>alt&#101;r&nbsp;database&nbsp;open&nbsp;resetlogs;</span><br/><br/>4:rman是什么，有何特点<br/><span style="color:Green">答：rman叫恢复管理器.<br/>特点很多。可以在线备份，到少目标数据库是mount状态。<br/>1：热备份。<br/>2：可以存储脚本。<br/>3：可以增量备份。<br/>4：自动管理备份集。</span><br/><br/>5:standby的特点<br/><span style="color:Green">答：利用传输重做日志来达到同步的目的。可以设定多个保护级别，9i后支持逻辑standbyDB。</span><br/><br/>6:对于一个要求恢复时间比较短的系统(数据库50G,每天归档5G)，你如何设计备份策略<br/><span style="color:Green">答：每天一个全备份。</span><br/><br/><strong>四：系统管理类</strong><br/><br/>1:对于一个存在系统性能的系统，说出你的诊断处理思路<br/><span style="color:Green">答:做一个statspack，根据top&nbsp;5,system&nbsp;load,top&nbsp;sql等来做相应的调整。</span><br/><br/>2:列举几种诊断IO、CPU、性能状况的方法<br/><span style="color:Green">答:hp-unix:iostat&nbsp;-x&nbsp;1&nbsp;5;<br/>top/vmstat/glance</span><br/><br/>3:对statspack有何认识<br/><span style="color:Green">答:一个性能诊断工具而已，其本质就是在两个时间点采样两个系统数据。(动态性能视图)，然后根据两个snapshot，产生一个报告。</span><br/><br/>4:如果系统现在需要在一个很大的表上创建一个索引，你会考虑那些因素，如何做以尽量减小对应用的影响<br/><span style="color:Green">答:1:增大sort_area_size(8i)/pga_aggregate_target(9i)值。<br/>2:如果表有分区（一般大表都要用到分区的），按分区逐个建索引，如果是本地索引的话;<br/>3:系统空闲的时候建。</span><br/><br/>5:对raid10&nbsp;和raid5有何认识<br/><span style="color:Green">答:raid10是先镜像后条带，适合对写入速度要求较高的数据库系统，特别是online&nbsp;redolog文件，raid5适合大部分的数据库系统和数据仓库系统，读性能优于写性能。&nbsp;</span><br/><br/><strong>五：综合随意类</strong><br/><br/>1:你最擅长的是oracle哪部分?<br/><span style="color:Green">答:性能/sql&nbsp;调优、备份恢复。</span><br/><br/>2:喜欢oracle吗？喜欢上论坛吗？或者偏好oracle的哪一部分？<br/><span style="color:Green">答:Oracle的SQL&nbsp;优化。</span><br/><br/>3:随意说说你觉得oracle最有意思的部分或者最困难的部分<br/><span style="color:Green">答:SQL调优，最困难的是Oracle的网络管理，Oracle的Connect&nbsp;Manager没用过。</span><br/><br/>4:为何要选择做DBA呢?<br/><span style="color:Green">答:爱好加职业历史积累。</span><br/><br/>4:如果系统现在需要在一个很大的表上创建一个索引，你会考虑那些因素，如何做以尽量减小对应用的影响<br/><span style="color:Green">答:1:增大sort_area_size(8i)/pga_aggregate_target(9i)值。<br/>2:用并行的方式来建。<br/>3:系统空闲的时候建。</span><br/><br/><strong>其他：</strong><br/><br/>什么是聚集索引，什么是非聚集索引，什么又是主键？<br/><span style="color:Green">聚簇索引的顺序就是数据的物理存储顺序，叶节点就是数据节点。<br/>非聚簇索引的顺序与数据物理排列顺序无关，叶节点仍然是索引节点，只不过有一个指针指向对应的数据块。<br/>能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键，通过它可强制表的实体完整性。</span><br/><br/>1、事务是什么？<br/><span style="color:Green">A：所谓事务是用户定义的一个数据库操作序列，这些操作要么全做要么全不做，是一个不可分割的工作单位。</span><br/><br/>2、oracle中truncate和del&#101;te命令有何区别？A：<br/><span style="color:Green">（1）del&#101;te将在回滚段中产生回滚信息，truncate不产生，因此无论表中的记录多少，truncate执行都很快。<br/>（2）truncate&nbsp;是&nbsp;DDL，执行隐含的commit，truncate不能回滚。任何没有提交的&nbsp;DML&nbsp;改变也将会和truncate一起提交。&nbsp;<br/>（3）truncate&nbsp;重置表及其索引高水位标志。全表扫描和索引快速全扫描读高水位标志下的所有数据块，因此在del&#101;te后全扫描性能没有提高，但truncate后将会变快。&nbsp;<br/>（4）truncate&nbsp;不触发&nbsp;del&#101;te&nbsp;触发器。&nbsp;<br/>（5）没有对象权限允许一个用户&nbsp;truncate&nbsp;另一个用户的表。这样做需要&nbsp;Dro&#112;&nbsp;ANY&nbsp;TABLE&nbsp;系统权限。&nbsp;<br/>（6）当一个表被&nbsp;truncate，表及其索引的存储将被重置回初始大小。而&nbsp;del&#101;te&nbsp;不收缩表及其索引的大小。&nbsp;<br/>（7）当父表有一个可用的引用完整性约束时不能被&nbsp;truncate。必须先disable引用父表的外键约束，再truncate。&nbsp;</span><br/><br/>3、Oracle中char和varchar2数据类型有什么区别？<br/><span style="color:Green">有数据”test”分别存放到char(10)和varchar2(10)类型的字段中，其存储长度及类型有何区别？A：char是定长字符类型，varchar2是变长字符类型。“test”在char(10)中被补齐空格，存储长度是10字节，在varchar2(10)中存储长度是4字节。</span>]]></description>
		</item>
		
			<item>
			<link>http://www.xyhot.com/default.asp?id=332</link>
			<title><![CDATA[oracle删除重复记录 ]]></title>
			<author>huheng1234@163.com(今晚打老虎)</author>
			<category><![CDATA[Oracle]]></category>
			<pubDate>Sun,02 Nov 2008 17:01:39 +0800</pubDate>
			<guid>http://www.xyhot.com/default.asp?id=332</guid>	
		<description><![CDATA[假设表名为Tbl，表中有三列col1，col2，col3，其中col1，col2是主键，并且，col1，col2上加了索引。<br/><strong>1、通过创建临时表</strong><br/><br/>可以把数据先导入到一个临时表中，然后删除原表的数据，再把数据导回原表，SQL语句如下：<br/><br/>creat&nbsp;table&nbsp;tbl_tmp&nbsp;(sel&#101;ct&nbsp;distinct*&nbsp;from&nbsp;tbl);<br/><br/>truncate&nbsp;table&nbsp;tbl;//清空表记录<br/><br/>ins&#101;rt&nbsp;into&nbsp;tbl&nbsp;sel&#101;ct&nbsp;*&nbsp;from&nbsp;tbl_tmp;//将临时表中的数据插回来。<br/><br/>这种方法可以实现需求，但是很明显，对于一个千万级记录的表，这种方法很慢，在生产系统中，这会给系统带来很大的开销，不可行。<br/><br/><strong>2、利用rowid</strong><br/><br/>在oracle中，每一条记录都有一个rowid，rowid在整个数据库中是唯一的，rowid确定了每条记录是oracle中的哪一个数据文件、块、行上。在重复的记录中，可能所有列的内容都相同，但rowid不会相同。SQL语句如下：<br/><br/>del&#101;te&nbsp;from&nbsp;tbl&nbsp;wh&#101;re&nbsp;rowid&nbsp;in&nbsp;(sel&#101;ct&nbsp;a.rowid&nbsp;from&nbsp;tbl&nbsp;a,&nbsp;tbl&nbsp;b&nbsp;wh&#101;re&nbsp;a.rowid&gt;b.rowid&nbsp;and&nbsp;a.col1=b.col1&nbsp;and&nbsp;a.col2&nbsp;=&nbsp;b.col2)<br/><br/>如果已经知道每条记录只有一条重复的，这个sql语句适用。但是如果每条记录的重复记录有N条，这个N是未知的，就要考虑适用下面这种方法了。<br/><br/><strong>3、利用max或min函数</strong><br/><br/>这里也要使用rowid，与上面不同的是结合max或min函数来实现。SQL语句如下<br/><br/>del&#101;te&nbsp;from&nbsp;tbl&nbsp;a&nbsp;wh&#101;re&nbsp;rowid&nbsp;not&nbsp;in&nbsp;(sel&#101;ct&nbsp;max(b.rowid)&nbsp;from&nbsp;tbl&nbsp;b&nbsp;wh&#101;re&nbsp;a.col1=b.col1&nbsp;and&nbsp;a.col2&nbsp;=&nbsp;b.col2);//这里max使用min也可以<br/><br/>或者用下面的语句<br/><br/>del&#101;te&nbsp;from&nbsp;tbl&nbsp;a&nbsp;wh&#101;re&nbsp;rowid&nbsp;&lt;&nbsp;(sel&#101;ct&nbsp;max(b.rowid)&nbsp;from&nbsp;tbl&nbsp;b&nbsp;wh&#101;re&nbsp;a.col1=b.col1&nbsp;and&nbsp;a.col2&nbsp;=&nbsp;b.col2);//这里如果把max换成min的话，前面的wh&#101;re子句中需要把&#34;&lt;&#34;改为&#34;&gt;&#34;<br/><br/><br/>跟上面的方法思路基本是一样的，不过使用了group&nbsp;by，减少了显性的比较条件，提高效率。SQL语句如下：<br/><br/>del&#101;te&nbsp;from&nbsp;tbl&nbsp;wh&#101;re&nbsp;rowid&nbsp;not&nbsp;in&nbsp;(sel&#101;ct&nbsp;max(rowid)&nbsp;from&nbsp;tbl&nbsp;t&nbsp;group&nbsp;by&nbsp;t.col1,&nbsp;t.col2&nbsp;);<br/><br/><br/>del&#101;te&nbsp;from&nbsp;tbl&nbsp;wh&#101;re&nbsp;(col1,&nbsp;col2)&nbsp;in&nbsp;(sel&#101;ct&nbsp;col1,col2&nbsp;from&nbsp;tbl&nbsp;group&nbsp;by&nbsp;col1,col2&nbsp;having&nbsp;count(*)&nbsp;&gt;&nbsp;1)&nbsp;and&nbsp;rowid&nbsp;not&nbsp;in&nbsp;(sel&#101;ct&nbsp;nin(rowid)&nbsp;from&nbsp;tbl&nbsp;group&nbsp;by&nbsp;col1,col2&nbsp;having&nbsp;count(*)&nbsp;&gt;&nbsp;1)<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.xyhot.com/default.asp?id=331</link>
			<title><![CDATA[[JS]两行代码的QQ窗口抖动效果]]></title>
			<author>huheng1234@163.com(今晚打老虎)</author>
			<category><![CDATA[HTML/JS/CSS]]></category>
			<pubDate>Thu,23 Oct 2008 13:27:47 +0800</pubDate>
			<guid>http://www.xyhot.com/default.asp?id=331</guid>	
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xyhot.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp15378">
<img  id=&#34;win&#34; style='position:relative' src=&#34;attachments/month_0810/l2008102313271.jpg&#34;>
<br /><br />
<button onclick=&#34;zd()&#34;>振动</button>
<script >
function zd(u){	
	var a=['top','left'],b=0;
	u=setInterval(function(){
		document.getElementById('win').style[a[b%2]]=(b++)%4<2?0:4;
		if(b>15){clearInterval(u);b=0}
	},32)
}
</script>
</TEXTAREA><br/><INPUT onclick="runEx('temp15378')"  type="button" value="运行此代码"/> <INPUT onclick="doCopy('temp15378')"  type="button" value="复制此代码"/><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.xyhot.com/default.asp?id=330</link>
			<title><![CDATA[JavaScript游戏开发之碰撞事件[很有趣]]]></title>
			<author>huheng1234@163.com(今晚打老虎)</author>
			<category><![CDATA[HTML/JS/CSS]]></category>
			<pubDate>Mon,15 Sep 2008 20:43:39 +0800</pubDate>
			<guid>http://www.xyhot.com/default.asp?id=330</guid>	
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xyhot.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp19556">
			<!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.0 Transitional//EN&#34;>
<!-- saved from url=(0047)<a target="_blank" href="http://www.dhteumeuleu.com/dhtml/Falling-X.html">http://www.dhteumeuleu.com/dhtml/Falling-X.html</a> -->
<HTML><HEAD><TITLE>once upon a time - Interactive DHTML art-demos</TITLE>
<FCK:META http-equiv=Content-Type content=&#34;text/html; charset=gb2312&#34; />
<FCK:META content=&#34;Gerard Ferrandez at <a target="_blank" href="http://www.dhteumeuleu.com">http://www.dhteumeuleu.com</a>&#34; name=author />
<FCK:META http-equiv=imagetoolbar content=no />
<STYLE type=text/css>BODY {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #000000; LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; OVERFLOW: hidden; WIDTH: 100%; CURSOR: url('<a href="http://www.dhteumeuleu.com/no.cur" target="_blank">http://www.dhteumeuleu.com/no.cur</a>'); PADDING-TOP: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 100%
}
SPAN {
POSITION: absolute
}
</STYLE>
<SCRIPT type=text/javascript><!--
// ====================================================
// script: Gerard Ferrandez - Ge-1-doot - DECEMBER 2K4
// <a target="_blank" href="http://www.dhteumeuleu.com/">http://www.dhteumeuleu.com/</a>
// crossbrowser: IE6 - Firefox - Opera - NS7
// ====================================================

window.onerror = new Function(&#34;return true&#34;)
var O   = new Array()
var SH  = SW = SPA = SO = xm = ym = XQ = YQ = YB = XB = 0
var pS  = 25
var pQ  = 100
var pQ2 = pQ / 2
var pS2 = pS / 2

function CObj(N){
	this.N = N
	o = document.cr&#101;ateElement(&#34;span&#34;)
	SPA.appendChild(o)
	with(o.style){
		top = -pS
		width = pS
		height = pS
		fontSize = &#34;1px&#34;
		background = &#34;#000000&#34;
		border = &#34;gray solid 1px&#34;
	}
	this.pO = o.style
	this.pX = 0
	this.pY = 1000
	this.zX = 0
	this.zY = 1
	this.Li = false
	
	this.run = function () {
		with (this) { 
			zX *= .95
			pY += zY
			pX += zX
			zY += .1 + N * .001
			if(pY>SH){
				pY = -pS
				pX = Math.round(Math.random() * SW)
				zY = 0
				zX = 0
				pO.background = &#34;#000000&#34;
			}
			if(pX >= XQ - pS2 &amp;&amp; pX <= XQ + pQ + pS2 &amp;&amp; pY >= YQ - pS &amp;&amp; pY <= YQ + pQ){
				pY -= zY
				zX += ((pX >= XQ + pQ2)?1:-1) * (.5 * zY + Math.abs(YQ - YB) * .2)
				if(pY < YQ - (YQ - YB)) pY = YQ - pS, zY = 0; else pX += XQ - XB;
				if(!Li){
					Li = true
					pO.background = &#34;#FFFFFF&#34;
					setTimeout(&#34;O[&#34;+N+&#34;].Li=false;O[&#34;+N+&#34;].pO.background='#000000'&#34;, 1200)
				}
			}
			pO.left = pX - pS2
			pO.top  = pY
			setTimeout(&#34;O[&#34;+N+&#34;].run()&#34;, 16)
		}
	}
}
function pQM(){
	YB = YQ
	XB = XQ
	XQ = SO.left = xm - pQ2
	YQ = SO.top  = ym - pQ2
	setTimeout(pQM, 16)
}

function resize() {
	with(SPA.style){
		L = left = Math.round(-1+(document.body.offsetWidth - SW) / 2)
		H = top  = Math.round(-1+(document.body.offsetHeight - SH) / 2)
		width    = SW
		height   = SH
	}
}
onresize = resize

onload = function (){
	document.onmousemove = function(e){
		if (window.event) e = window.event
		xm = (e.x || e.clientX) - L
		ym = (e.y || e.clientY) - H
	}
	SPA = document.getElementById(&#34;SPAN&#34;)
	SO  = document.getElementById(&#34;SPLASH&#34;).style
	SO.width  = pQ
	SO.height = pQ
	SH  = document.body.offsetHeight
	SW  = pQ - pS2
	SX  = Math.round(SW / pS) - 1
	xm  = SW / 2
	ym  = SH / 2
	resize()
	pQM()
	for(j=0;j<60;j++){
		O[j] = new CObj(j)
		setTimeout(&#34;O[&#34;+j+&#34;].run()&#34;,j * 123)
	}
}
//-->
</SCRIPT>
<FCK:META content=&#34;MSHTML 6.00.3790.4210&#34; name=GENERATOR /></HEAD>
<BODY>
<DIV id=SPAN style=&#34;BACKGROUND: #222222; POSITION: absolute&#34;>
<DIV id=SPLASH
style=&#34;BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; FONT-SIZE: 1px; BACKGROUND: #000000; BORDER-LEFT: gray 1px solid; BORDER-BOTTOM: gray 1px solid; POSITION: absolute; TOP: -1000px&#34;></DIV></DIV><div style=&#34;font-size:16px;&#34;> div></body></HTML>
</TEXTAREA><br/><INPUT onclick="runEx('temp19556')"  type="button" value="运行此代码"/> <INPUT onclick="doCopy('temp19556')"  type="button" value="复制此代码"/><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.xyhot.com/default.asp?id=329</link>
			<title><![CDATA[JavaScript仿LightBox内容显示效果]]></title>
			<author>huheng1234@163.com(今晚打老虎)</author>
			<category><![CDATA[HTML/JS/CSS]]></category>
			<pubDate>Mon,15 Sep 2008 20:40:10 +0800</pubDate>
			<guid>http://www.xyhot.com/default.asp?id=329</guid>	
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xyhot.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp34920">

<!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&#34;>
<html xmlns=&#34;<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>&#34;>
<head>
<meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=gb2312&#34; />
<title>无标题文档</title>
</head>

<body>

<br /><br /><br /><br />






<script>

var isIE = (document.all) ? true : false;

var isIE6 = isIE &amp;&amp; ([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0][1] == 6);


function Each(list, fun){
for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); }
};

var $ = function (id) {
    return &#34;string&#34; == typeof id ? document.getElementById(id) : id;
};

var Class = {
  cr&#101;ate: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}

Object.extend = function(destination, source) {
  for (var property in source) {
    destination[property] = source[property];
  }
  return destination;
}

Function.prototype.bind = function(object) {
  var __method = this, args = Array.apply(null, arguments); args.shift();
  return function() {
    return __method.apply(object, args);
  }
}

var OverLay = Class.cr&#101;ate();
OverLay.prototype = {
  initialize: function(overlay, options) {
this.Lay = $(overlay);//覆盖层

//ie6设置覆盖层大小程序
this._size =  function(){};

this.SetOptions(options);

this.Color = this.options.Color;
this.Opacity = parseInt(this.options.Opacity);
this.zIndex = parseInt(this.options.zIndex);

this.Set();
  },
  //设置默认属性
  SetOptions: function(options) {
    this.options = {//默认值
Color:&#34;#fff&#34;,//背景色
Opacity:50,//透明度(0-100)
zIndex:1000//层叠顺序
    };
    Object.extend(this.options, options || {});
  },
  //创建
  Set: function() {
this.Lay.style.display = &#34;none&#34;;
this.Lay.style.zIndex = this.zIndex;
this.Lay.style.left = this.Lay.style.top = 0;

if(isIE6){
this.Lay.style.position = &#34;absolute&#34;;
this._size = function(){
this.Lay.style.width = Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth) + &#34;px&#34;;
this.Lay.style.height = Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) + &#34;px&#34;;
}.bind(this);
//遮盖sel&#101;ct
this.Lay.innerHTML = '<iframe style=&#34;position:absolute;top:0;left:0;width:100%;height:100%;filter:alpha(opacity=0);&#34;></iframe>'
} else {
this.Lay.style.position = &#34;fixed&#34;;
this.Lay.style.width = this.Lay.style.height = &#34;100%&#34;;
}
  },
  //显示
  Show: function() {
//设置样式
this.Lay.style.backgroundColor = this.Color;
//设置透明度
if(isIE){
this.Lay.style.filter = &#34;alpha(opacity:&#34; + this.Opacity + &#34;)&#34;;
} else {
this.Lay.style.opacity = this.Opacity / 100;
}
//兼容ie6
if(isIE6){ this._size(); window.attachEvent(&#34;onresize&#34;, this._size); }

this.Lay.style.display = &#34;block&#34;;
  },
  //关闭
  Close: function() {
this.Lay.style.display = &#34;none&#34;;
if(isIE6){ window.detachEvent(&#34;onresize&#34;, this._size); }
  }
};



var LightBox = Class.cr&#101;ate();
LightBox.prototype = {
  initialize: function(box, overlay, options) {

this.Box = $(box);//显示层

this.OverLay = new OverLay(overlay, options);//覆盖层

this.SetOptions(options);

this.Fixed = !!this.options.Fixed;
this.Over = !!this.options.Over;
this.Center = !!this.options.Center;
this.onShow = this.options.onShow;

this.Box.style.zIndex = this.OverLay.zIndex + 1;
this.Box.style.display = &#34;none&#34;;

//兼容ie6用的属性
if(isIE6){ this._top = this._left = 0; this._sel&#101;ct = []; }
  },
  //设置默认属性
  SetOptions: function(options) {
    this.options = {//默认值
Fixed:false,//是否固定定位
Over:true,//是否显示覆盖层
Center:false,//是否居中
onShow:function(){}//显示时执行
};
    Object.extend(this.options, options || {});
  },
  //兼容ie6的固定定位程序
  _fixed: function(){
var iTop = this.Box.offsetTop + document.documentElement.scrollTop - this._top, iLeft = this.Box.offsetLeft + document.documentElement.scrollLeft - this._left;
//居中时需要修正
if(this.Center){ iTop += this.Box.offsetHeight / 2; iLeft += this.Box.offsetWidth / 2; }

this.Box.style.top = iTop + &#34;px&#34;; this.Box.style.left = iLeft + &#34;px&#34;;

this._top = document.documentElement.scrollTop; this._left = document.documentElement.scrollLeft;
  },
  //显示
  Show: function(options) {
//固定定位
if(this.Fixed){
if(isIE6){
//兼容ie6
this.Box.style.position = &#34;absolute&#34;;
this._top = document.documentElement.scrollTop; this._left = document.documentElement.scrollLeft;
window.attachEvent(&#34;onscroll&#34;, this._fixed.bind(this));
} else {
this.Box.style.position = &#34;fixed&#34;;
}
} else {
this.Box.style.position = &#34;absolute&#34;;
}
//覆盖层
if(this.Over){
//显示覆盖层，覆盖层自带sel&#101;ct隐藏
this.OverLay.Show();
} else {
//ie6需要把不在Box上的sel&#101;ct隐藏
if(isIE6){
this._sel&#101;ct = [];
var oThis = this;
Each(document.getElementsByTagName(&#34;sel&#101;ct&#34;), function(o){
if(oThis.Box.contains ? !oThis.Box.contains(o) : !(oThis.Box.compareDocumentPosition(o) &amp; 16)){
o.style.visibility = &#34;hidden&#34;; oThis._sel&#101;ct.push(o);
}
})
}
}

this.Box.style.display = &#34;block&#34;;

//居中
if(this.Center){
this.Box.style.top = this.Box.style.left = &#34;50%&#34;;
//显示后才能获取
var iTop = - this.Box.offsetHeight / 2, iLeft = - this.Box.offsetWidth / 2;
//不是fixed或ie6要修正
if(!this.Fixed || isIE6){ iTop += document.documentElement.scrollTop; iLeft += document.documentElement.scrollLeft; }
this.Box.style.marginTop =  iTop + &#34;px&#34;; this.Box.style.marginLeft = iLeft + &#34;px&#34;;
}

this.onShow();
  },
  //关闭
  Close: function() {
this.Box.style.display = &#34;none&#34;;
this.OverLay.Close();
if(isIE6){ window.detachEvent(&#34;onscroll&#34;, this._fixed); Each(this._sel&#101;ct, function(o){ o.style.visibility = &#34;visible&#34;; }); }
  }
};


function addEventHandler(oTarget, sEventType, fnHandler) {
if (oTarget.addEventListener) {
oTarget.addEventListener(sEventType, fnHandler, false);
} else if (oTarget.attachEvent) {
oTarget.attachEvent(&#34;on&#34; + sEventType, fnHandler);
} else {
oTarget[&#34;on&#34; + sEventType] = fnHandler;
}
};

function removeEventHandler(oTarget, sEventType, fnHandler) {
    if (oTarget.removeEventListener) {
        oTarget.removeEventListener(sEventType, fnHandler, false);
    } else if (oTarget.detachEvent) {
        oTarget.detachEvent(&#34;on&#34; + sEventType, fnHandler);
    } else { 
        oTarget[&#34;on&#34; + sEventType] = null;
    }
};

if(!isIE){
HTMLElement.prototype.__defineGetter__(&#34;currentStyle&#34;, function () {
return this.ownerDocument.defaultView.getComputedStyle(this, null);
});
}

//拖放程序
var Drag = Class.cr&#101;ate();
Drag.prototype = {
  //拖放对象,触发对象
  initialize: function(obj, drag, options) {
    var oThis = this;

this._obj = $(obj);//拖放对象
this.Drag = $(drag);//触发对象
this._x = this._y = 0;//记录鼠标相对拖放对象的位置
//事件对象(用于移除事件)
this._fM = function(e){ oThis.Move(window.event || e); }
this._fS = function(){ oThis.Stop(); }

this.SetOptions(options);

this.Limit = !!this.options.Limit;
this.mxLeft = parseInt(this.options.mxLeft);
this.mxRight = parseInt(this.options.mxRight);
this.mxTop = parseInt(this.options.mxTop);
this.mxBottom = parseInt(this.options.mxBottom);
this.mxContainer = this.options.mxContainer;

this.onMove = this.options.onMove;
this.Lock = !!this.options.Lock;

this._obj.style.position = &#34;absolute&#34;;
addEventHandler(this.Drag, &#34;mousedown&#34;, function(e){ oThis.Start(window.event || e); });
  },
  //设置默认属性
  SetOptions: function(options) {
    this.options = {//默认值
Limit:false,//是否设置限制(为true时下面参数有用,可以是负数)
mxLeft:0,//左边限制
mxRight:0,//右边限制
mxTop:0,//上边限制
mxBottom:0,//下边限制
mxContainer:null,//指定限制在容器内
onMove:function(){},//移动时执行
Lock:false//是否锁定
    };
    Object.extend(this.options, options || {});
  },
  //准备拖动
  Start: function(oEvent) {
if(this.Lock){ return; }
//记录鼠标相对拖放对象的位置
this._x = oEvent.clientX - this._obj.offsetLeft;
this._y = oEvent.clientY - this._obj.offsetTop;
//mousemove时移动 mouseup时停止
addEventHandler(document, &#34;mousemove&#34;, this._fM);
addEventHandler(document, &#34;mouseup&#34;, this._fS);
//使鼠标移到窗口外也能释放
if(isIE){
addEventHandler(this.Drag, &#34;losecapture&#34;, this._fS);
this.Drag.setCapture();
}else{
addEventHandler(window, &#34;blur&#34;, this._fS);
}
  },
  //拖动
  Move: function(oEvent) {
//判断是否锁定
if(this.Lock){ this.Stop(); return; }
//清除选择(ie设置捕获后默认带这个)
window.getSel&#101;ction &amp;&amp; window.getSel&#101;ction().removeAllRanges();
//当前鼠标位置减去相对拖放对象的位置得到offset位置
var iLeft = oEvent.clientX - this._x, iTop = oEvent.clientY - this._y;
//设置范围限制
if(this.Limit){
//如果设置了容器,因为容器大小可能会变化所以每次都要设
if(!!this.mxContainer){
this.mxLeft = this.mxTop = 0;
this.mxRight = this.mxContainer.clientWidth;
this.mxBottom = this.mxContainer.clientHeight;
}
//获取超出长度
var iRight = iLeft + this._obj.offsetWidth - this.mxRight, iBottom = iTop + this._obj.offsetHeight - this.mxBottom;
//这里是先设置右边下边再设置左边上边,可能会不准确
if(iRight > 0) iLeft -= iRight;
if(iBottom > 0) iTop -= iBottom;
if(this.mxLeft > iLeft) iLeft = this.mxLeft;
if(this.mxTop > iTop) iTop = this.mxTop;
}
//设置位置
//由于offset是把margin也算进去的所以要减去
this._obj.style.left = iLeft - (parseInt(this._obj.currentStyle.marginLeft) || 0) + &#34;px&#34;;
this._obj.style.top = iTop - (parseInt(this._obj.currentStyle.marginTop) || 0) + &#34;px&#34;;
//附加程序
this.onMove();
  },
  //停止拖动
  Stop: function() {
//移除事件
removeEventHandler(document, &#34;mousemove&#34;, this._fM);
removeEventHandler(document, &#34;mouseup&#34;, this._fS);
if(isIE){
removeEventHandler(this.Drag, &#34;losecapture&#34;, this._fS);
this.Drag.releaseCapture();
}else{
removeEventHandler(window, &#34;blur&#34;, this._fS);
}
  }
};

</script>



<style>
.lightbox{width:300px;background:#FFFFFF; top:20%; left:20%;border:1px solid #ccc;line-height:25px; margin:0;}
.lightbox dt{background:#f4f4f4; padding:5px; cursor:move;}
</style>



<dl id=&#34;idBox&#34; class=&#34;lightbox&#34;>
  <dt id=&#34;idBoxHead&#34;><b>LightBox</b> </dt>
  <dd>
    选择效果显示
    <br /><br />
    <input name=&#34;&#34; type=&#34;button&#34; value=&#34; 关闭 &#34; id=&#34;idBoxCancel&#34; /><br /><br />
  </dd>
</dl>


<div id=&#34;idOverlay&#34;></div>





<div style=&#34;margin:0 auto; width:700px; border:1px solid #000000;&#34;>



<input name=&#34;&#34; type=&#34;button&#34; value=&#34;关闭覆盖层&#34; id=&#34;btnOverlay&#34; />
<input name=&#34;&#34; type=&#34;button&#34; value=&#34;黑色覆盖层&#34; id=&#34;btnOverColor&#34; />
<input name=&#34;&#34; type=&#34;button&#34; value=&#34;全透覆盖层&#34; id=&#34;btnOverOpacity&#34; />
<input name=&#34;&#34; type=&#34;button&#34; value=&#34;取消居中&#34; id=&#34;btnCenter&#34; />
<br /><br />
选择效果：<br />
<sel&#101;ct id=&#34;idEffect&#34;>
<option value=&#34;0&#34;>还原效果</option>
<option value=&#34;4&#34;>定位效果</option>
<option value=&#34;2&#34;>设置拖放</option>
<option value=&#34;6&#34;>视框定位拖放</option>
</sel&#101;ct> 
<input name=&#34;&#34; type=&#34;button&#34; value=&#34; 打开 &#34; id=&#34;idBoxOpen&#34; />

<script>



var box = new LightBox(&#34;idBox&#34;, &#34;idOverlay&#34;, { Center: true });


var drag = new Drag(&#34;idBox&#34;, &#34;idBoxHead&#34;, { mxContainer: document.documentElement, Lock: true });


$(&#34;idBoxCancel&#34;).onclick = function(){ box.Close(); }
$(&#34;idBoxOpen&#34;).onclick = function(){ box.Show(); }

$(&#34;idEffect&#34;).onchange = function(){
box.Close();

switch (parseInt(this.value)) {
case 4 :
box.Fixed = true;
drag.Lock = true;
drag.Limit = false;
break;
case 2 :
box.Fixed = false;
drag.Lock = false;
drag.Limit = false;
break;
case 6 :
box.Fixed = true;;
drag.Lock = false;
drag.Limit = true;
break;
case 0 :
default :
box.Fixed = false;
drag.Lock = true;
drag.Limit = false;
}
}



$(&#34;btnOverlay&#34;).onclick = function(){
box.Close();
if(box.Over){
box.Over = false;
this.value = &#34;打开覆盖层&#34;;
} else {
box.Over = true;
this.value = &#34;关闭覆盖层&#34;;
}
}

$(&#34;btnOverColor&#34;).onclick = function(){
box.Close();
box.Over = true;
if(box.OverLay.Color == &#34;#fff&#34;){
box.OverLay.Color = &#34;#000&#34;;
this.value = &#34;白色覆盖层&#34;;
} else {
box.OverLay.Color = &#34;#fff&#34;
this.value = &#34;黑色覆盖层&#34;;
}
}

$(&#34;btnOverOpacity&#34;).onclick = function(){
box.Close();
box.Over = true;
if(box.OverLay.Opacity == 0){
box.OverLay.Opacity = 50;
this.value = &#34;全透覆盖层&#34;;
} else {
box.OverLay.Opacity = 0;
this.value = &#34;半透覆盖层&#34;;
}
}

$(&#34;btnCenter&#34;).onclick = function(){
box.Close();
if(box.Center){
box.Center = false;
this.value = &#34;设置居中&#34;;
} else {
box.Center = true;
this.value = &#34;取消居中&#34;;
}
}


</script>







<br /><br />





<br />
<br /><br />
<br /><br />
<br /><br /><br /><br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
<br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
<br /><br />
<br />



</div>




</body>
</html>
</TEXTAREA><br/><INPUT onclick="runEx('temp34920')"  type="button" value="运行此代码"/> <INPUT onclick="doCopy('temp34920')"  type="button" value="复制此代码"/><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.xyhot.com/default.asp?id=328</link>
			<title><![CDATA[极品飞车12 卧底]]></title>
			<author>huheng1234@163.com(今晚打老虎)</author>
			<category><![CDATA[电玩]]></category>
			<pubDate>Sat,23 Aug 2008 21:39:35 +0800</pubDate>
			<guid>http://www.xyhot.com/default.asp?id=328</guid>	
		<description><![CDATA[　　EA昨日宣布极品飞车系列最新作《Need&nbsp;for&nbsp;Speed&nbsp;Undercover》将于11月18号登陆北美市场，11月21号莅临欧洲，发布平台为PC、PS2、PS3、Xbox&nbsp;360、Wii、NDS，和PSP。<br/><br/>　　EA称该作将“重拾昔日风采，再现以命相搏的警匪追逐战，最炙手可热的赛车，和惊险刺激的高速公路对决。”<br/><br/>　　除此之外，EA还投巨资为该作打造真人过场，给玩家带来恍如置身大银幕般的感受，目前已知由Maggie&nbsp;Q出演浑身放电的联邦探员Chase&nbsp;Linh，她的任务是向对手施展美人计：<br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xyhot.com/images/flash.gif" alt="" style="margin:0px 2px -3px 0px" border="0"/>Flash动画</div><div class="UBBContent"><a id="temp86904_href" href="http://www.xyhot.com/javascript:MediaShow('swf','temp86904','http://vhead.blog.sina.com.cn/player/outer_player.swf?auto=0&amp;vid=15278956&amp;uid=1311990492','600','500')"><img name="temp86904_img" src="http://www.xyhot.com/images/mm_snd.gif" style="margin:0px 3px -2px 0px" border="0" alt=""/><span id="temp86904_text">在线播放</span></a><div id="temp86904"></div></div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.xyhot.com/default.asp?id=327</link>
			<title><![CDATA[修改sysman口令引起dbconsole异常的解决方法]]></title>
			<author>huheng1234@163.com(今晚打老虎)</author>
			<category><![CDATA[Oracle]]></category>
			<pubDate>Wed,20 Aug 2008 12:08:51 +0800</pubDate>
			<guid>http://www.xyhot.com/default.asp?id=327</guid>	
		<description><![CDATA[在修改过sysman口令之后，系统就会自动将sysman锁定。具体问题如下：<br/><strong>中文版显示:</strong><br/>数据库状态当前不可用。可能是因为数据库的状态为装载或不装载。单击&nbsp;&#39;启动&#39;&nbsp;可以获得当前状态并打开数据库。如果无法打开数据库,&nbsp;单击&nbsp;&#39;执行恢复&#39;&nbsp;可执行相应的恢复操作。<br/><strong>英文版本显示:</strong><br/>The&nbsp;database&nbsp;status&nbsp;is&nbsp;currently&nbsp;unavailable.It&nbsp;is&nbsp;possible&nbsp;<br/>that&nbsp;the&nbsp;database&nbsp;is&nbsp;in&nbsp;mount&nbsp;o&#114;&nbsp;nomount&nbsp;state.&nbsp;Click&nbsp;&#39;Startup&#39;&nbsp;<br/>to&nbsp;obtain&nbsp;the&nbsp;current&nbsp;status&nbsp;and&nbsp;open&nbsp;the&nbsp;database.&nbsp;If&nbsp;the&nbsp;<br/>database&nbsp;cannot&nbsp;be&nbsp;opened,&nbsp;click&nbsp;&#39;Perform&nbsp;Recovery&#39;&nbsp;to&nbsp;perform<br/>an&nbsp;appropriate&nbsp;recovery&nbsp;operation.<br/><br/><span style="color:Navy">注意:确认Listener与服务都是正常的，数据库的状态也是启动的，无论是重新启动dbconsole还是重新配置都不起作用。</span><br/>解决方法如下：<br/><br/><strong>1、停止dbconsole</strong><br/>[oracle@abcca2210028&nbsp;~]$&nbsp;emctl&nbsp;stop&nbsp;dbconsole<br/>查看状态，确认dbconsole已经停止<br/>[oracle@abcca2210028&nbsp;~]$&nbsp;emctl&nbsp;status&nbsp;dbconsole<br/><br/>2、修改sysman用户的密码，我把密码改成oracle123<br/>[oracle@abcca2210028&nbsp;~]$&nbsp;sqlplus&nbsp;/&nbsp;as&nbsp;sysdba<br/>SQL&gt;&nbsp;alt&#101;r&nbsp;user&nbsp;sysman&nbsp;identified&nbsp;by&nbsp;o&#114;acle123;<br/>解锁用户<br/>SQL&gt;&nbsp;alt&#101;r&nbsp;user&nbsp;sysman&nbsp;account&nbsp;unlock;<br/>确认密码已修改<br/>SQL&gt;&nbsp;conn&nbsp;sysman/oracle123@csc<br/>Connected.<br/><br/><strong>3、转到$ORACLE_HOME/(host)_(sid)/sysman/config目录下</strong><br/>a.&nbsp;把emoms.properties另存为emoms.properties.old<br/>b.&nbsp;修改emoms.properties文件<br/>找到oracle.sysman.eml.mntr.emdRepPwd=把等于后的加密字串替换成刚才更改的密码oracle123;<br/>找到oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE&nbsp;把TRUE换成FALSE。<br/><br/><strong>4、重启dbconsole，访问EM恢复正常</strong><br/>[oracle@abcca2210028&nbsp;~]$&nbsp;emctl&nbsp;start&nbsp;dbconsole<br/><br/>按如上所说操作完毕之后，dbconsole可以登录，但是无法做维护。报io的一个异常：<br/>解决：<br/>$&nbsp;emctl&nbsp;stop&nbsp;dbconsole<br/>$&nbsp;emca&nbsp;-repos&nbsp;recr&#101;ate<br/>修复完毕，dbconsole&nbsp;可以正常使用了。]]></description>
		</item>
		
</channel>
</rss>