2007年01月18日

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table

2. <body onselectstart="return false"> 取消选取、防止复制

3. onpaste="return false" 不准粘贴

4. oncopy="return false;" oncut="return false;" 防止复制

5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标

6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标

7. <input style="ime-mode:disabled"> 关闭输入法

8. 永远都会带着框架
<script language="JavaScript"><!–
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// –></script>

9. 防止被人frame
<SCRIPT LANGUAGE=JAVASCRIPT><!–
if (top.location != self.location)top.location=self.location;
// –></SCRIPT>

10. 网页将不能被另存为
<noscript><iframe src="/blog/*.html>";</iframe></noscript>

11. <input type=button value=查看网页源代码
onclick="window.location = "view-source:"+ "http://www.fiten.com"">

12.删除时确认
<a href="javascript:if(confirm("确实要删除吗?"))location="boos.asp?&areyou=删除&page=1"">删除</a>

13. 取得控件的绝对位置
//Javascript
<script language="Javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent)
alert("top="+t+"/nleft="+l);
}
</script>

//VBScript
<script language="VBScript"><!–
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName<>"BODY"
set a = a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"
end function
–></script>

14. 光标是停在文本框文字的最后
<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">

15. 判断上一页的来源
javascript:
document.referrer

 

16. 最小化、最大化、关闭窗口
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" VALUE="Close"></OBJECT>
<input type=button value=最小化 onclick=hh1.Click()>
<input type=button value=最大化 onclick=hh2.Click()>
<input type=button value=关闭 onclick=hh3.Click()>
本例适用于IE

17.屏蔽功能键Shift,Alt,Ctrl
<script>
function look(){
if(event.shiftKey)
alert("禁止按Shift键!"); //可以换成ALT CTRL
}
document.onkeydown=look;
</script>

18. 网页不会被缓存
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">

19.怎样让表单没有凹凸感?
<input type=text style="border:1 solid #000000">

<input type=text style="border-left:none; border-right:none; border-top:none; border-bottom:

1 solid #000000"></textarea>

20.<div><span>&<layer>的区别?
<div>(division)用来定义大段的页面元素,会产生转行
<span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行
<layer>是ns的标记,ie不支持,相当于<div>

21.让弹出窗口总是在最上面:
<body onblur="this.focus();">

22.不要滚动条?
让竖条没有:
<body style="overflow:scroll;overflow-y:hidden">
</body>
让横条没有:
<body style="overflow:scroll;overflow-x:hidden">
</body>
两个都去掉?更简单了
<body scroll="no">
</body>

23.怎样去掉图片链接点击后,图片周围的虚线?
<a href="#" onFocus="this.blur()"><img src="/blog/logo.jpg" border=0></a>

24.电子邮件处理提交表单
<form name="form1" method="post" action="mailto:****@***.com" enctype="text/plain">
<input type=submit>
</form>

25.在打开的子窗口刷新父窗口的代码里如何写?
window.opener.location.reload()

26.如何设定打开页面的大小
<body onload="top.resizeTo(300,200);">
打开页面的位置<body onload="top.moveBy(300,200);">

27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
<STYLE>
body
{background-image:url(/blog/logo.gif); background-repeat:no-repeat;
background-position:center;background-attachment: fixed}
</STYLE>

28. 检查一段字符串是否全由数字组成
<script language="Javascript"><!–
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// –></script>

29. 获得一个窗口的大小
document.body.clientWidth; document.body.clientHeight

30. 怎么判断是否是字符
if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");

31.TEXTAREA自适应文字行数的多少
<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>

32. 日期减去天数等于第二个日期
<script language=Javascript>
function cc(dd,dadd)
{
//可以加上错误处理
var a = new Date(dd)
a = a.valueOf()
a = a – dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
}
cc("12/23/2002",2)
</script>

33. 选择了哪一个Radio
<HTML><script language="vbscript">
function checkme()
for each ob in radio1
if ob.checked then window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio" value="style" checked>Style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check" onclick="checkme()">
</BODY></HTML>

34.脚本永不出错
<SCRIPT LANGUAGE="JavaScript">
<!– Hide
function killErrors() {
return true;
}
window.onerror = killErrors;
// –>
</SCRIPT>

35.ENTER键可以让光标移到下一个输入框
<input onkeydown="if(event.keyCode==13)event.keyCode=9">

 

36. 检测某个网站的链接速度:
把如下代码加入<body>区域中:
<script language=Javascript>
tim=1
setInterval("tim++",100)
b=1
var autourl=new Array()
autourl[1]="www.fiten.com"
autourl[2]="www.163.com"
autourl[3]="www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="www.cctv.com"
function butt(){
document.write("<form name=autof>")
for(var i=1;i<autourl.length;i++)
document.write("<input type=text name=txt"+i+" size=10 value="/blog/测试中……>" =》<input type=text
name=url"+i+" size=40> =》<input type=button value=GO

onclick=window.open(this.form.url"+i+".value)><br/>")
document.write("<input type=submit value=刷新></form>")
}
butt()
function auto(url)
else

b++
}
function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl+"/"+Math.random()+" width=1 height=1

onerror=auto("http://"+autourl+"")>")}
run()</script>

37. 各种样式的光标
auto :标准光标
default :标准箭头
hand :手形光标
wait :等待光标
text :I形光标
vertical-text :水平I形光标
no-drop :不可拖动光标
not-allowed :无效光标
help :?帮助光标
all-scroll :三角方向标
move :移动标
crosshair :十字标
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize

38.页面进入和退出的特效
进入页面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
推出页面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)"> 
这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。transition表示使用哪种特效,取值为1-23:
  0 矩形缩小
  1 矩形扩大
  2 圆形缩小
  3 圆形扩大
  4 下到上刷新
  5 上到下刷新
  6 左到右刷新
  7 右到左刷新
  8 竖百叶窗
  9 横百叶窗
  10 错位横百叶窗
  11 错位竖百叶窗
  12 点扩散
  13 左右到中间刷新
  14 中间到左右刷新
  15 中间到上下
  16 上下到中间
  17 右下到左上
  18 右上到左下
  19 左上到右下
  20 左下到右上
  21 横条
  22 竖条
  23 以上22种随机选择一种

39.在规定时间内跳转
<META http-equiv=V="REFRESH" content="5;URL=http://www.williamlong.info">

40.网页是否被检索
<meta name="ROBOTS" content="属性值">
  其中属性值有以下一些:
  属性值为"all": 文件将被检索,且页上链接可被查询;
  属性值为"none": 文件不被检索,而且不查询页上的链接;
  属性值为"index": 文件将被检索;
  属性值为"follow": 查询页上的链接;
  属性值为"noindex": 文件不检索,但可被查询链接;
  属性值为"nofollow": 文件不被检索,但可查询页上的链接。

最大化窗口?
<script language="JavaScript">
<!–
self.moveTo(0,0)
self.resizeTo(screen.availWidth,screen.availHeight)
//–>
</script>

 

解决问题:由于层与下拉框之间的优先级是:下拉框 > 层,因此在显示的时候,会因为优先级的次序而会出现如上问题。(如果几个元素都是层的话,我们可以通过层的 z-index 属性来设置)解决办法就是:给层中放一个优先级比下拉框更高的元素(iframe),从而解决此问题!具体解决代码如下:

<div id="menu" style="position:absolute; visibility:hidden; top:20px; left:20px; width:100px; height:200px; background-color:#6699cc;">
<table>
  <tr><td>item 1</td></tr>
  <tr><td>item 2</td></tr>
  <tr><td>item 3</td></tr>
  <tr><td>item 4</td></tr>
  <tr><td>item 5</td></tr>
  </table>
  <iframe src="/blog/javascript:false" style="position:absolute; visibility:inherit; top:0px; left:0px; width:100px; height:200px; z-index:-1; filter=’progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)’;"></iframe>
</div>

<a href="#" onclick="document.getElementById(‘menu’).style.visibility=’visible’">menu</a>

<form>
  <select><option>A form selection list</option></select>
</form>

输入框也可以做的很漂亮了
<div align="center"><input type="hidden" name="hao" value="yes">
              外向数:<input
      name=answer
      style="color: rgb(255,0,0); border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid rgb(192,192,192)">
             没回答的题数:<input
      name=unanswer id="unanswer"
      style="color: rgb(255,0,0); border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid rgb(192,192,192)">
            <br/>
            总得分:
            <input
      name=score id="score"
      style="color: rgb(255,0,0); border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid rgb(192,192,192)">
             结    论:
            <input
      name=xgjg id="xgjg"
      style="color: rgb(255,0,0); border-left: medium none; border-right: medium none; border-top: medium none; border-bottom: 1px solid rgb(192,192,192)">
            <br/>
            <br/>
           
            <input onClick=processForm(this.form) style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt" type=button value=查看结果 name="button">
             <input type="reset" name="Submit" value="重做">
            </div>
注意:修改<body>为<body onload="max.Click()">即为打开最大

化窗口,而如果改为<body onload="min.Click()">就变为窗口一打开就最小化

<object id="min" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
            <param name="Command" value="Minimize">
          </object> <object id="max" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
            <param name="Command" value="Maximize">
          </object>
</body>

页面自动刷新(说明)

当你做网页时,是不是有的时候想让你的网页自动不停刷新,或者过一段时间自动跳转到另外一个你自己设定的页面?其实实现这个效果非常地简单,而且这个效果甚至不能称之为特效。你只要把如下代码加入你的网页中就可以了。

1,页面自动刷新:把如下代码加入<head>区域中<meta http-equiv="refresh" content="20">,其中20指每隔20秒刷新一次页面.

2,页面自动跳转:把如下代码加入<head>区域中<meta http-equiv="refresh" content="20;url=http://www.williamlong.info">,其中20指隔20秒后跳转到http://www.fiten.com页面。

页面自动关闭

5000是指时间<body onLoad="setTimeout(window.close, 5000)">

弹出窗口自动关闭

10秒后弹出窗口自动关闭

注意:在新的tan.htm的body中要加 <onLoad="closeit()">
head

<script language="JavaScript">

<!–

var gt = unescape(‘%3e’);

var popup = null;

var over = "Launch Pop-up Navigator";

popup = window.open(”, ‘popupnav’, ‘width=225,height=235,resizable=1,scrollbars=auto’);

if (popup != null) {

if (popup.opener == null) {

popup.opener = self;

}

popup.location.href = ‘tan.htm’;

}

// –>

</script>
<body>注意:这段代码是在新建文件中的
<script language="JavaScript">

 function closeit()

 </script>

这个可不是<iframe>(引用)呀。是直接调用的。以下代码加入<body>区域

<object type="text/x-scriptlet" width="800"  height="1000" data="../index.htm">
</object>

 

2007年01月13日

Oracle数据库服务器是整个系统的核心,它的性能高低直接影响整个系统的性能,为了调整Oracle数据库服务器的性能,主要从以下几个方面考虑:

  1、调整操作系统以适合Oracle数据库服务器运行 Oracle数据库服务器很大程度上依赖于运行服务器的操作系统,如果操作系统不能提供最好性能,那么无论如何调整,Oracle数据库服务器也无法发挥其应有的性能。

  1.1 为Oracle数据库服务器规划系统资源

  据已有计算机可用资源, 规划分配给Oracle服务器资源原则是:尽可能使Oracle服务器使用资源最大化,特别在Client/Server中尽量让服务器上所有资源都来运行Oracle服务。

  1.2 调整计算机系统中的内存配置

  多数操作系统都用虚存来模拟计算机上更大的内存,它实际上是硬盘上的一定的磁盘空间。当实际的内存空间不能满足应用软件的要求时,操作系统就将用这部分的磁盘空间对内存中的信息进行页面替换,这将引起大量的磁盘I/O操作,使整个服务器的性能下降。为了避免过多地使用虚存,应加大计算机的内存。

  1.3 为Oracle数据库服务器设置操作系统进程优先级

  不要在操作系统中调整Oracle进程的优先级,因为在Oracle数据库系统中,所有的后台和前台数据库服务器进程执行的是同等重要的工作,需要同等的优先级。所以在安装时,让所有的数据库服务器进程都使用缺省的优先级运行。

  2、调整内存分配

  Oracle数据库服务器保留3个基本的内存高速缓存,分别对应3种不同类型的数据:库高速缓存,字典高速缓存和缓冲区高速缓存。库高速缓存和字典高速缓存一起构成共享池,共享池再加上缓冲区高速缓存便构成了系统全程区(SGA)。SGA是对数据库数据进行快速访问的一个系统全程区,若SGA本身需要频繁地进行释放、分配,则不能达到快速访问数据的目的,因此应把SGA放在主存中,不要放在虚拟内存中。内存的调整主要是指调整组成SGA的内存结构的大小来提高系统性能,由于Oracle数据库服务器的内存结构需求与应用密切相关,所以内存结构的调整应在磁盘I/O调整之前进行。

  2.1 库缓冲区的调整

  库缓冲区中包含私用和共享SQL和PL/SQL区,通过比较库缓冲区的命中率决定它的大小。要调整库缓冲区,必须首先了解该库缓冲区的活动情况,库缓冲区的活动统计信息保留在动态性能表v$librarycache数据字典中,可通过查询该表来了解其活动情况,以决定如何调整。Select sum(pins),sum(reloads) from v$librarycache; Pins列给出SQL语句,PL/SQL块及被访问对象定义的总次数;Reloads列给出SQL 和PL/SQL块的隐式分析或对象定义重装载时在库程序缓冲区中发生的错误。如果sum(pins)/sum(reloads) ≈0,则库缓冲区的命中率合适;若sum(pins)/sum(reloads)>1, 则需调整初始化参数 shared_pool_size来重新调整分配给共享池的内存量。

  2.2 数据字典缓冲区的调整

  数据字典缓冲区包含了有关数据库的结构、用户、实体信息。数据字典的命中率,对系统性能影响极大。数据字典缓冲区的使用情况记录在动态性能表v$librarycache中,可通过查询该表来了解其活动情况,以决定如何调整。Select sum(gets),sum(getmisses) from v$rowcache; Gets列是对相应项请求次数的统计;Getmisses 列是引起缓冲区出错的数据的请求次数。对于频繁访问的数据字典缓冲区,sum(getmisses)/sum(gets)<10%~15%。若大于此百分数,则应考虑增加数据字典缓冲区的容量,即需调整初始化参数shared_pool_size来重新调整分配给共享池的内存量。

  2.3 缓冲区高速缓存的调整

  用户进程所存取的所有数据都是经过缓冲区高速缓存来存取,所以该部分的命中率,对性能至关重要。缓冲区高速缓存的使用情况记录在动态性能表v$sysstat中,可通过查询该表来了解其活动情况,以决定如何调整。

  Select name,value from v$sysstat

where name in (‘dbblock gets’,'consistent gets’,'physical reads’);

  dbblock gets和consistent gets的值是请求数据缓冲区中读的总次数。physical reads的值是请求数据时引起从盘中读文件的次数。从缓冲区高速缓存中读的可能性的高低称为缓冲区的命中率,计算公式:

  Hit Ratio=1-(physical reds/(dbblock gets+consistent gets))如果Hit Ratio<60%~70%,则应增大db_block_buffers的参数值。db_block_buffers可以调整分配给缓冲区高速缓存的内存量,即db_block_buffers可设置分配缓冲区高速缓存的数据块的个数。缓冲区高速缓存的总字节数=db_block_buffers的值*db_block_size的值。 db_block_size 的值表示数据块大小的字节数,可查询 v$parameter 表:select name,value from v$parameter where name=’db_block_size’; 在修改了上述数据库的初始化参数以后,必须先关闭数据库,在重新启动数据库后才能使新的设置起作用。

  3、调整磁盘 I/O

  磁盘的I/O速度对整个系统性能有重要影响。解决好磁盘I/O问题,可显著提高性能。影响磁盘I/O的性能的主要原因有磁盘竞争、I/O次数过多和数据块空间的分配管理。

  为Oracle数据库服务器创建新文件时,不论是表空间所用的数据文件还是数据事务登录所用的日志文件,都应仔细考虑数据库服务器上的可用磁盘资源。如果服务器上有多个磁盘,则可将文件分散存储到各个可用磁盘上,减少对数据库的数据文件及事务日志文件的竞争,从而有效地改善服务器的性能。对于不同的应用系统都有各自的数据集,应当创见不同的表空间分别存储各自应用系统的数据,并且尽可能的把表空间对应的数据文件存放在不同的磁盘上,这种从物理上把每个应用系统的表空间分散存放的方法,可以排除两个应用系统竞争磁盘的可能性。数据文件、事务日志文件分别存放在不同的磁盘上,这样事务处理执行的磁盘访问不妨碍对相应的事物日志登记的磁盘访问。如果有多个磁盘可用,将两个事物日志成员放在不同的磁盘驱动器上,就可以消除日志文件可能产生的磁盘竞争。应把一个应用的表数据和索引数据分散存放不同表空间上,并且尽量把不同类型的表空间存放在不同磁盘上,这样就消除了表数据和索引数据的磁盘竞争。

  4、调整数据库服务器的回滚段

  回滚段是一个存储区域,数据库使用该存储区域存放曾经由一个事务更新或删除的行的原始数据值。如果用户要回滚一个事务所做的改变,那么数据库就从回滚段中读回改变前的数据并使该事务影响的行改变为它们的原状态。回滚段控制着数据库处理事务的能力,因而在数据库成功中起着关键性的作用,不管数据库的其它部分设计得多好,如果它设计得不合理,将会严重影响系统的性能。建立和调整回滚段的原则如下。

  4.1 分离回滚段

  分离回滚段是指单独为回滚段创建一个以上的表空间,使回滚段与数据字典、用户数据、索引等分离开来。由于回滚段的写入与数据和索引的写入是并行进行的,因此将它分离出来可以减少I/O争用。如果回滚段与数据不分离,倘若要某个表空间脱机或撤消,那么在该表空间中的各个回滚段没有全部脱机之前,不能将这个表空间脱机或撤消。而一旦该表空间不可用,则该表空间中的所有回滚段也不能使用,这将浪费所有分配的磁盘空间。所以,独立回滚段可使数据库管理变得容易。回滚段的经常性收缩,使得表空间的自由块更容易形成碎片。分离回滚段可以减少数据库表空间的碎片产生。

  4.2 创建不同大小的回滚段群

  对于一些联机事物处理,他们一般是频繁地对少量数据进行修改,创建许多小的回滚段对之有利。每一个事物的入口项只能限于一个回滚段,回滚段应该充分大以容纳一个完整的事物处理,因此对一些较大型事物,需要较大型的回滚段。极个别脱机处理事物会产生大量的回滚信息,这时需要一个特大号的回滚段来处理。根据这些理论,在Oracle数据库服务器中针对上述3种事物处理创建三组:小事物组、较大事物组、特大事物组等大小不同的回滚段群,并且将之分散到3个不同的表空间上,群内大小相同,应能满足该组事物处理的最大要求。

2007年01月09日

英超公测

2006年11月24日

sp_MSgetversion
This extended stored procedure can be used to get the current version of Microsoft SQL Server. To get the current SQL Server version, run

EXEC master..sp_MSgetversion

Note. A more common way to retrieve the current SQL Server version (this way provides more information) is to use following SELECT statement:

SELECT @@version

xp_dirtree
This extended stored procedure can be used to get a list of all the folders for the folder named in the xp. To get a list of all the folders in the C:\MSSQL7 folder, run:

EXEC master..xp_dirtree ‘C:\MSSQL7′

xp_enum_oledb_providers
This extended stored procedure is used to list of all the available OLE DB providers. It returns Provider Name, Parse Name and Provider Description. To get a list of all OLE DB providers for your SQL Server, run:

EXEC master..xp_enum_oledb_providers

xp_enumcodepages
This extended stored procedure can be used to list of all code pages, character sets and their description for your SQL Server. To get a list of all code pages and character sets, run:

EXEC master..xp_enumcodepages

xp_enumdsn
This extended stored procedure returns a list of all System DSNs and their description. To get the list of System DSNs, run:

EXEC master..xp_enumdsn

xp_enumerrorlogs
This extended stored procedure returns the list of all error logs with their last change date. To get the list of error logs, run:

EXEC master..xp_enumerrorlogs

xp_enumgroups
This extended stored procedure returns the list of Windows NT groups and their description. To get the list of the Windows NT groups, run:

EXEC master..xp_enumgroups

xp_fileexist
You can use this extended stored procedure to determine whether a particular file exists on the disk or not.

Syntax:

EXECUTE xp_fileexist filename [, file_exists INT OUTPUT]

For example, to check whether the file boot.ini exists on disk c: or not, run:

EXEC master..xp_fileexist ‘c:\boot.ini’

xp_fixeddrives
This very useful extended stored procedure returns the list of all hard drives and the amount of free space in Mb for each hard drive.

To see the list of drives, run:

EXEC master..xp_fixeddrives

xp_getnetname
This extended stored procedure returns the WINS name of the SQL Server that you’re connected to.

To view the name, run:

EXEC master..xp_getnetname

xp_readerrorlog
This extended stored procedure returns the content of the errorlog file. You can find the errorlog file in the C:\MSSQL7\Log directory, by default for SQL Server 7.0.

To see the text of the errorlog file, run:

EXEC master..xp_readerrorlog

xp_regdeletekey
This extended stored procedure will delete an entire key from the registry. You should use it very carefully.

Syntax:

EXECUTE xp_regdeletekey [@rootkey=]‘rootkey’,
                        [@key=]‘key’

 

For example, to delete the key ‘SOFTWARE\Test’ from ‘HKEY_LOCAL_MACHINE’, run:

EXEC master..xp_regdeletekey
     @rootkey=’HKEY_LOCAL_MACHINE’, 
     @key=’SOFTWARE\Test’

 

xp_regdeletevalue
This extended stored procedure will delete a particular value for a key in the registry. You should use it very carefully.

Syntax:

EXECUTE xp_regdeletevalue [@rootkey=]‘rootkey’,
                          [@key=]‘key’,
                          [@value_name=]‘value_name’

 

For example, to delete the value ‘TestValue’ for the key ‘SOFTWARE\Test’ from ‘HKEY_LOCAL_MACHINE’, run:

EXEC master..xp_regdeletevalue
     @rootkey=’HKEY_LOCAL_MACHINE’,
     @key=’SOFTWARE\Test’,
     @value_name=’TestValue’

 

xp_regread
This extended stored procedure is used to read from the registry.

Syntax:

EXECUTE xp_regread [@rootkey=]‘rootkey’,
                   [@key=]‘key’
                   [, [@value_name=]‘value_name’]
                   [, [@value=]@value OUTPUT]

 

For example, to read into the variable @test from the value ‘TestValue’ from the key ‘SOFTWARE\Test’ from the ‘HKEY_LOCAL_MACHINE’, run:

DECLARE @test varchar(20)
EXEC master..xp_regread @rootkey=’HKEY_LOCAL_MACHINE’,
  @key=’SOFTWARE\Test’,
  @value_name=’TestValue’,
  @value=@test OUTPUT
SELECT @test

 

xp_regwrite
This extended stored procedure is used to write to the registry.

Syntax:

EXECUTE xp_regwrite [@rootkey=]‘rootkey’,
                    [@key=]‘key’,
                    [@value_name=]‘value_name’,
                    [@type=]‘type’,
                    [@value=]‘value’

 

For example, to write the variable ‘Test’ to the ‘TestValue’ value, key ‘SOFTWARE\Test’, ‘HKEY_LOCAL_MACHINE’, run:

EXEC master..xp_regwrite
     @rootkey=’HKEY_LOCAL_MACHINE’,
     @key=’SOFTWARE\Test’,
     @value_name=’TestValue’,
     @type=’REG_SZ’,
     @value=’Test’

 

xp_subdirs
This extended stored procedure is used to get the list of folders for the folder named in the xp. In comparison with xp_dirtree, xp_subdirs returns only those directories whose depth = 1.

This is the example:

EXEC master..xp_subdirs ‘C:\MSSQL7′

Note.Keep in mind that these undocumented extended stored procedures are not officially supported by Microsoft, and that they may not be found in the next version of SQL Server.

 

sp_MSget_qualified_name
The sp_MSget_qualified_name stored procedure is used to get the qualified name for the given object id.

Syntax

sp_MSget_qualified_name object_id, qualified_name

where

object_id      – is the object id. object_id is int.
qualified_name – is the qualified name of the object. qualified_name
                 is nvarchar(512).

 

This is the example to get the qualified name for the authors table from the pubs database.

USE pubs
GO
declare @object_id int, @qualified_name nvarchar(512)
select @object_id = object_id(‘authors’)
EXEC sp_MSget_qualified_name @object_id, @qualified_name output
select @qualified_name
GO

 

Here is the result set from my machine:

————————————–
[dbo].[authors]

 

sp_MSdrop_object
The sp_MSdrop_object stored procedure is used to drop an object (it can be table, view, stored procedure or trigger) for the given object id, object name, and object owner. If object id, object name, and object owner are not specified, then nothing will be dropped.

Syntax

sp_MSdrop_object [object_id] [,object_name] [,object_owner]

where

object_id    – is the object id. object_id is int,
               with a default of NULL.
object_name  – is the name of the object. object_name is sysname,
               with a default of NULL.
object_owner – is the object owner. object_owner is sysname,
               with a default of NULL.

 

This is the example of dropping the titleauthor table from the pubs database.

USE pubs
GO
declare @object_id int
select @object_id = object_id(‘titleauthor’)
EXEC sp_MSdrop_object @object_id
GO

 

sp_gettypestring
The sp_gettypestring stored procedure returns the type string for the given table id and column id.

Syntax

sp_gettypestring tabid, colid, typestring

where

tabid      – is the table id. tabid is int.
colid      – is the column id. colid is int.
typestring – is the type string. It’s output parameter.
             typestring is nvarchar(255).

 

This is the example to get the type string for the column number 2 in the authors table, from the pubs database.

USE pubs
GO
declare @tabid int, @typestring nvarchar(255)
select @tabid = object_id(‘authors’)
EXEC sp_gettypestring @tabid, 2, @typestring output
select @typestring
GO

 

Here is the result set from my machine:

——————————-
varchar(40)

 

sp_MSgettools_path
The sp_MSgettools_path stored procedure returns the path to the SQL Server 2000 tools and utilities.

Syntax

sp_MSgettools_path install_path

where

install_path  – is the installation path. It’s output parameter.
                install_path is nvarchar(260).

 

This is the example to get the path to the SQL Server 2000 tools and utilities.

USE master
GO
declare @install_path NVARCHAR(260)
EXEC sp_MSgettools_path @install_path OUTPUT
select @install_path
GO

 

Here is the result set from my machine:

————————————————————
C:\Program Files\Microsoft SQL Server\80\Tools

 

sp_MScheck_uid_owns_anything
The sp_MScheck_uid_owns_anything stored procedure returns the list of the object, owned by the specified user.

Syntax

sp_MScheck_uid_owns_anything uid

where

uid – is the User ID, unique in this database. uid is smallint.

 

This is the example to get the list of the objects, owned by the database owner 1 in the pubs database.

USE pubs
GO
EXEC sp_MScheck_uid_owns_anything 1
GO

sp_columns_rowset
The sp_columns_rowset stored procedure returns the complete columns description, including the length, type, name, and so on.

Syntax

sp_columns_rowset table_name [, table_schema ] [, column_name]

where

table_name   – is the table name. table_name is sysname.
table_schema – is the table schema. table_schema is sysname,
               with a default of NULL.
column_name  – is the column name. column_name is sysname,
               with a default of NULL.

 

This is the example:

USE pubs
GO
EXEC sp_columns_rowset ‘authors’
GO

 

sp_fixindex
The sp_fixindex stored procedure can be used to fix corruption in a system table by recreating the index.

Syntax

sp_fixindex dbname, tabname, indid

where

dbname  – is the database name. dbname is sysname.
tabname – is the system table name. tabname is sysname.
indid   – is the index id value. indid is int

 

Note. Before using this stored procedure the database has to be in single user mode.

See this link for more information:
How can I fix a corruption in a system table?

This is the example:

USE pubs
GO
EXEC sp_fixindex pubs, sysindexes, 2
GO

 

sp_MSforeachdb
Sometimes, you need to perform the same actions for all databases. You can create cursor for this purpose, or you can also use the sp_MSforeachdb stored procedure to accomplish the same goal with less work.

For example, you can use the sp_MSforeachdb stored procedure to run a CHECKDB for all the databases on your server:

EXEC sp_MSforeachdb @command1="print ‘?’ DBCC CHECKDB (‘?’)"

sp_MSforeachtable
Sometimes, you need to perform the same actions for all tables in the database. You can create cursor for this purpose, or you can also use the sp_MSforeachtable stored procedure to accomplish the same goal with less work.

For example, you can use the sp_MSforeachtable stored procedure to rebuild all the indexes in a database:

EXEC sp_MSforeachtable @command1="print ‘?’ DBCC DBREINDEX (‘?’)"

sp_MShelpcolumns
The sp_MShelpcolumns stored procedure returns the complete schema for a table, including the length, type, name, and whether a column is computed.

Syntax

sp_MShelpcolumns tablename [, flags] [, orderby] [, flags2]

where

tablename – is the table name. tablename is nvarchar(517).
flags     – flags is int, with a default of 0.
orderby   – orderby is nvarchar(10), with a default of NULL.
flags     – flags2 is int, with a default of 0.

 

To get the full columns description for the authors table in the pubs database, run:

USE pubs
GO
EXEC sp_MShelpcolumns ‘authors’
GO

 

sp_MShelpindex
The sp_MShelpindex stored procedure returns information about name, status, fill factor, index columns names, and file groups for a given table.

Syntax

sp_MShelpindex tablename [, indexname] [, flags]

where

tablename – is the table name. tablename is nvarchar(517).
indexname – is the index name. indexname is nvarchar(258),
            with a default of NULL.
flags     – flags is int, with a default of NULL.

 

To get the indexes description for the authors table in the pubs database, run:

USE pubs
GO
EXEC sp_MShelpindex ‘authors’
GO

 

sp_MShelptype
The sp_MShelptype stored procedure returns much useful information about system data types and user data types.

Syntax

sp_MShelptype [typename] [, flags]

where

typename – is the type name. typename is nvarchar(517),
           with a default of NULL.
flags    – flags is nvarchar(10), with a default of NULL.

 

To get information about all built-in and user defined data types in the pubs database, run:

USE pubs
GO
EXEC sp_MShelptype
GO

 

sp_MSindexspace
The sp_MSindexspace stored procedure returns the size in kb, of the indexes found in a particular table.

Syntax

sp_MSindexspace tablename [, index_name]

where

tablename  – is the table name. tablename is nvarchar(517).
index_name – is the index name. index_name is nvarchar(258),
             with a default of NULL.

 

To determine the space used by the indexes from the authors table in the pubs database, run:

USE pubs
GO
EXEC sp_MSindexspace ‘authors’
GO

 

sp_MSkilldb
The sp_MSkilldb stored procedure sets a database to suspect mode and uses DBCC DBREPAIR to kill it. You should run this sp from the context of the master database. Use it very carefully.

Syntax

sp_MSkilldb dbname

where

dbname – is the database name. dbname is nvarchar(258).

 

To kill the pubs database, run:

USE master
GO
EXEC sp_MSkilldb ‘pubs’
GO

 

sp_MStablespace
The sp_MStablespace stored procedure returns the number of rows in a table and the space the table and index use.

Syntax

sp_MStablespace name [, id]

where

name – is the table name. name is nvarchar(517).
id   – id is int, with a default of NULL.

 

To determine the space used by the authors table in the pubs database, run:

USE pubs
GO
EXEC sp_MStablespace ‘authors’
GO

 

Here is the result set from my machine:

Rows        DataSpaceUsed IndexSpaceUsed
———– ————- ————–
23          8             32

 

sp_tempdbspace
The sp_tempdbspace stored procedure can be used to get the total size and the space used by the tempdb database. It is used without parameters.

Syntax

sp_tempdbspace

This is the example:

EXEC sp_tempdbspace

Here is the result set from my machine:

database_name database_size           spaceused
————- ———————– —————————–
tempdb        9.750000                .562500

 

sp_who2
The sp_who2 stored procedure returns information about current SQL Server 2000 users and processes similar to sp_who, but it provides more detailed information. sp_who2 returns CPUTime, DiskIO, LastBatch and ProgramName in addition to the data provided by sp_who.

Syntax

sp_who [loginame]

where

loginame – the user’s login name. If not specified, the procedure
           reports on all active users of SQL Server.

 

This example returns information for the ’sa’ login:

EXEC sp_who2 ’sa’

2006年11月20日

飞腾体育 等下再补充.

2006年05月30日

我仔细的对这本书读了一遍,

先看下以下的资料:
央视一套3。15 晚会揭露这本书是伪书 
针对机工版《没有任何借口》,中国社科出版社责编耿华军提出三点疑问。
首先引进版图书应有版权合同登记号,而机工版版权页上没有?机工版作者叫费拉尔•凯普(FerrarCape),而他们通过美国出版商协会却无法找到这位作者资料,即使是亚马逊书店也找不到这本书?鸦机工版封底印出的《纽约时报》书评更是无稽之谈。从《纽约时报》网站上检索不到类似信息,同时这种言论也与《纽约时报》的评论风格相悖。
美国约翰•威利出版公司负责人表示,美国版《没有任何借口》中文版全书约25万字,而此前的同名书都不超10万字;正版原著由10位原美国游骑兵学院的军官和士兵所讲的故事组成?原书中全部是独特案例。而同名的其他书引用案例大多曾见诸报端杂志。

首先我为不能读到原版的<<没有任何借口>>而感到深深的遗憾,对于国人对这本书翻译里乱改乱编,感到了一丝愤怒.

也许对于军队来说,这也许确实是一本很好的书,也是一个很好的立论点,可惜,现在这本书面对的,是许许多多的非军事化组织的人们.这就需要我们思考,在军队中要求的绝对服从是不是也能在现实社会中适用呢
单就这本书的书名而言,我是绝对赞同的.因为"借口"本就是为了推卸责任而找的,无论是作为一个工作者还是一个社会扮演的角色,最重要的就是能为自己的行为负全部的责任,你不能以私人的借口来推卸本来属于你的责任,所以,我是坚决支持"没有借口"这样一个提法的.
但是,这本书说的太绝对化了,导致把"借口"和正当的"理由"混为一谈,竟然还用上了"任何"这样一个囊括一切的词语,我不由的惊讶了,惊讶的是译者(也不知道是译者还是原作者,即然译者乱改乱编,只有他来承担这责任,我想他不会有任何借口了,下同)竟然有这样的”天才”想法, 更惊讶的是这本书还畅销全国.  按照他的说法,无论什么理由,全都被划入了"借口"的范围,只要你一开口,那么很抱歉,你先就已经错了!

就比如士兵A得到了重要情报,关系A士兵所在军队的生死存亡,而上级给的任务是大家休息片刻出发打仗,如果A士兵的休息的时候向上级汇报了这情况,很抱歉,在士兵A没有开口之前,他已经错了,他应该枪毙了,他的任务是休息,而不是来干扰上级的布阵方略.
如果如上所说,会出现什么情况,大家一目了然.

再来一个简单的例子,假如9点上班,你9点半来到了,你说这是塞车,没有办法,那这就是纯粹的借口,这种借口没有任何的可原谅性,因为这是你私人原因,塞车,要么你早点可以过来,要么你跑到前面打的过来.假如是你坐的车发生车祸,你受了伤,到医院简单包扎后马上过来上班,你觉得他还错吗?难道你觉得他没有请假还坚持来上班都是错的吗?

人是理性的,俗话说,法律是神圣不可侵范的,但人们还不是常说法律之外不就是人情吗?怎么可以不分青紫黑白,首先就强加一句没有任何借口呢?

再看下书里的另一个重点词汇——服从.无论公司也好,军队也罢,当你做为一个下属,你就必须要服从你的上级的决定,当你做为一个个体,你就必须要服从你所处的集体,这是理所当然的,我想大家也都同意这样的看法.
现在社会的每一个人作为一个独立的个体,都有着越来越强烈的个体思维能力,这也是现代社会化大分工越来越精细的主要推动力.既然每一个个体都具有了相当的思维能力,那么又怎么绝对服从呢 又有谁可以做出让其他所有个体都绝对服从的绝对正确的决定呢
所以,我个人认为本书从出发点上应该是好的,只是犯了"绝对化"这样的错误,无数的历史事实都告诉我们,"世事无绝对".

再看看下面的片段:
一个现代企业的上空,弥漫着西点名训的声音,这意味着什么?
一天,老总的小司机不经意地对我说,"这里不是军营".接着,
办公室里的小伙子问我,华为集团在制度贯彻时特别强调"僵化固化再灵活化",对吗?
突然间,我感受到了,年轻人在思考的力量.时尚的年轻人驰骋在他们理论的天空.他们的思想不会被口号所左右,他们的思维也不会被权势所僵化,他们的思索更不会被利诱所中止.
我还强烈地感受到,这是一种企业原动力的体现,这是企业生命力的体现.我不敢说这是不是一个企业的幸运,但思考的年轻人,毫无疑问是社会的希望,毫无疑问是民族的希望.一不小心,我被年轻的激情撞了一下,浸染在年轻的激情中,滋润在长江后浪推前浪的喜悦中,我敢说,这是时代赋予我们的幸运!
在西点名训的弥漫中,我看到了"不!"的影子.我强烈地感受到,这一代年轻人内心深处激荡着岩浆般的碰撞.那里有不谐和音,那里充满了疑问.这一切在我的脑际里深深的映出一行字幕:
"告诉我?为什么?" ………………….

企业的发展,应该是员工的参与,而不是绝对的服从,在军队,你可以不问为什么,你只需要执行任务,你就是一个好兵一个好将领,但是,在企业,你不是,企业需要的不是一个只会执行命令的木偶,而是员工的参与,溶入.不知道自己干什么的,只会服从上级的要求呆滞的工作的员工绝对不是一个好员工,这样的员工,连自己的想法都没有,怎么给公司带来新鲜的血液,怎么去推动公司的发展.特別是刚起步的公司,试想一下,一个员工不知道企业在干什么,有的只是上级的安排,这亲的员工,会呆在你的企业多久,我想这也是企业老板不愿意看到的.

2006年05月08日

在连接oracle时出现了一些问题,出错如题目所示,在网上找了此资料解决不了问题,所以只好自己亲自找原因,原来发现只要把SYSMAN的用户解锁,然后

emctl stop dbconsole
emctl start dbconsole

问题解决

2006年05月07日

在开始时,测试http://localhost:8080/?中文是没有问题的,但整合了apache以后http://localhost/?中文 就会出现接收乱码.

很多网上文章说用apache 的httpd.conf的AddDefaultCharset解决,其实是解决不了的,故写下此文

解决方法:

<Connector port="8009"
enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" URIEncoding="GBK"/>
添加URIEncoding="GBK",请确保你的jsp的开头
<%@page contentType="text/html;charset=GBK"%>
里的charset和URIEncoding一致。

修改如下的标签:
<Connector
port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="GBK"/>

2006年05月02日

帽峰一行从古庙开始
http://www.yooye.com/images/up/27/20060502200848430.jpg
古庙因维修没有对外开放,但香火依然很旺

http://www.yooye.com/images/up/27/20060502200848934.jpg
刚上来,心情不错,摆个姿势先,我这个姿势怎么样?

怎么爬山那么累(还没爬就叫累,不是吧)
http://www.yooye.com/images/up/27/20060502200848147.jpg
爬了一段路,想歇歇,这里风景不错,来张留念吧

http://www.yooye.com/images/up/27/20060502200848985.jpg
我也来一张,虽然不帅,但这风景还不错啊,空气清新

http://www.yooye.com/images/up/27/20060502200848836.jpg
快点上山吧,且慢,再来一张,这小道也不错啊 

http://www.yooye.com/images/up/27/20060502201843279.jpg
上山开始了,永往直前

http://www.yooye.com/images/up/27/20060502201843862.jpg
小桥,流水呢?? (害我走了一段冤枉路,怎么又走回来了,你怎么搞的,带错路了)

http://www.yooye.com/images/up/27/20060502201843564.jpg
绿的世界,清新的空气,感觉不错

http://www.yooye.com/images/up/27/20060502201843262.jpg
到了天湖,下起雨来了

http://www.yooye.com/images/up/27/20060502203659865.jpg
你把伞拿高一点,我再来张远景,怎么还是照到伞了呢

http://www.yooye.com/images/up/27/20060502203659515.jpg
就算下雨,我也要来一张

http://www.yooye.com/images/up/27/20060502203659821.jpg
雨停了,继续向上,原来雨后别有风味

http://www.yooye.com/images/up/27/20060502203659419.jpg
近看小桥

http://www.yooye.com/images/up/27/20060502203659427.jpg
给我照上一点,记得不要照到伞,怎么还是照到了

http://www.yooye.com/images/up/27/20060502204916757.jpg
这风景最衬我了(风景VS靓女??)

http://www.yooye.com/images/up/27/20060502204916277.jpg
来到这里真不容易,一路上的雨大雨大把我们的鞋弄湿了

http://www.yooye.com/images/up/27/20060502204916742.jpg
这风,这雨(风大,雨大,怎么雨跟我这么有缘呢?)

http://www.yooye.com/images/up/27/20060502205511146.jpg
雨停了,上了亭子的二楼,照了几张风景
http://www.yooye.com/images/up/27/20060502205511263.jpg
http://www.yooye.com/images/up/27/20060502205511405.jpg
http://www.yooye.com/images/up/27/20060502205511841.jpg

http://www.yooye.com/images/up/27/20060502205511721.jpg
雨后阳光?,小公主又调皮起来了

快天晴了,准备继续上到山顶

http://www.yooye.com/images/up/27/20060502213330916.jpg
看看山顶还有远 ,能看得见,应该不是很远吧

http://www.yooye.com/images/up/27/20060502213330649.jpg
从亭子往山路走上不到50米就下起了大雨,持续时间达到了一个小时,无奈只有返回亭中,全身湿透,上山兴趣全无

雨停了,住下走了

http://www.yooye.com/images/up/27/20060502213330719.jpg
你怎么这样看我啊,我会怕的

http://www.yooye.com/images/up/27/20060502213330362.jpg
山下风景也不赖

今天的旅行结束了