2010年2月25日 星期四

查詢某段時間資料庫有異動的資訊

如果需要知道某段時間裡,資料庫的 資料表(Table)、預儲程序(Store Procedure)、函式(Function)、View 哪幾支有被異動的資訊,可以用以下的 T-SQL 語法來取得。

-- Store Procedure
select [name],[type],type_desc,modify_date from sys.objects 
where modify_date > '2010-01-29' and type='P' order by modify_date desc
-- Table
select [name],[type],type_desc,modify_date from sys.objects 
where modify_date > '2010-01-29' and type='U' order by modify_date desc
--View
select [name],[type],type_desc,modify_date from sys.objects 
where modify_date > '2010-01-29' and type='V' order by modify_date desc
--Function
select [name],[type],type_desc,modify_date from sys.objects 
where modify_date > '2010-01-29' and type in ('FN','TF') order by modify_date desc


感謝 Ken 的介紹,
讓我茅塞頓開。

2010年2月24日 星期三

使用 jQuery 實作 Tips 功能 【加強版】

在先前一篇 「使用 jQuery 實作 Tips 功能」文章提到實作 Tips 的方法,但在實際的運行上,出現一些惱人的問題,就是出現Tips的視窗,如果剛好是在瀏覽器的邊邊角角地帶,就會有部份內容被截斷。

對於這問題,就需要進一步去計算是否當下情況是屬於這種邊邊角角的問題。經過一番測試,結合前人的智慧,整理出暫時滿意的結果。

我另外撰寫了判斷 Tips 出現的相對位置:

function getScrollInfo()
{
  switch(document.compatMode.toUpperCase())
  {
 case "BACKCOMPAT":
 {
  return document.body;
 }
 default:
 {
 return document.documentElement;
 }
 }
}     

function returnX(e)
{
    var TipWidth=300; //Tips 寬度設定
    var oBody = getScrollInfo();
    var maxWidth = oBody.scrollLeft + oBody.clientWidth;  
    var result=0;  
    
    if( (oBody.scrollLeft + e.clientX) > (maxWidth - TipWidth) )
        result=maxWidth - TipWidth - 15
    else
        result=oBody.scrollLeft + e.clientX - 15
    return result;
}

function returnY(e)
{
    var TipHigh=50; //Tips 高度設定(預估值)
    var oBody = getScrollInfo();    
    var maxHeight = oBody.scrollTop + oBody.clientHeight - 3;
    var result=0;  
    
    if( (oBody.scrollTop + e.clientY) > (maxHeight - TipHigh) )
        result=e.clientY + oBody.scrollTop - TipHigh - 15
    else
        result=oBody.scrollTop + e.clientY + 15
    return result;
}


透過上述的函式,可以去修改原先的 code 為:
.mousemove(function(e){ $('.tool-tips').css('top',returnY(e));
$('.tool-tips').css('left',returnX(e)); })

將完整程式 整理如下:
<style>
.tool-tips{ position: absolute; visibility: hidden; z-index: 13000; color: #fff; width:300px; } 
.tool-text{ padding: 4px 8px 8px; font-size:12px; color: black; background: #FFFFCC bottom right; border-style:outset;} 
</style>


<script>
//jQuery tips function
$(document).ready(
function()
{ 
$('<div class="tool-tips"><div class="tool-text"></div></div>').appendTo('body'); 
$('.ShowTips').mouseover(function(){ $(this).css('cursor','help'); $('.tool-tips').css('visibility','visible'); $('.tool-tips');

var xixu = this; 
if(xixu.title)
{xixu.yishi=xixu.title;xixu.title='';} 
var dual = xixu.yishi.split('::'); 
if(dual.length>1)
{ myTitle = dual[0]; myText = dual[1]; }
else
{ myTitle = $(this).text(); myText = xixu.yishi; } $('.tool-title').html(myTitle); 
$('.tool-text').html(myText); }).mousemove(function(e){ $('.tool-tips').css('top',returnY(e)); 
$('.tool-tips').css('left',returnX(e));    }).mouseout(function(){ $('.tool-tips').css('visibility','hidden'); }) }) 
     
     
function getScrollInfo()
{
 switch(document.compatMode.toUpperCase())
 {
  case "BACKCOMPAT":
  {
   return document.body;
  }
  default:
  {
   return document.documentElement;
  }
 }
}     

function returnX(e)
{
    var TipWidth=300; //Tips 寬度設定
    var oBody = getScrollInfo();
    var maxWidth = oBody.scrollLeft + oBody.clientWidth;  
    var result=0;  
    
    if( (oBody.scrollLeft + e.clientX) > (maxWidth - TipWidth) )
        result=maxWidth - TipWidth - 15
    else
        result=oBody.scrollLeft + e.clientX - 15
    return result;
}

function returnY(e)
{
    var TipHigh=50; //Tips 高度設定(預估值)
    var oBody = getScrollInfo();    
    var maxHeight = oBody.scrollTop + oBody.clientHeight - 3;
    var result=0;  
    
    if( (oBody.scrollTop + e.clientY) > (maxHeight - TipHigh) )
        result=e.clientY + oBody.scrollTop - TipHigh - 15
    else
        result=oBody.scrollTop + e.clientY + 15
    return result;
}
</script>


此外,這次不再使用 <acronym> 來當作使用 Tips 的標籤,而是只要 class 屬性 = "ShowTips" ,就自動套用 Tips 功能。所以,叫用範例如下:
<img class="ShowTips" title="本院主要規劃單位。" src="../images/help.gif" />


[補充:20100225]
看到另一個關於 jQuery tips 的 plug-in ,功能更是強大,如果需要製作更精美的 Tips 介面,可以參考以下網址:

http://plugins.jquery.com/project/bt
http://www.lullabot.com/files/bt/bt-latest/DEMO/index.html
http://urin.github.com/jquery.balloon.js/

下圖是該 plug-in 做出來的展示圖:

2010年2月11日 星期四

Visual Studio 2005 IDE 無法出現 VSS

最近剛剛重灌了一台電腦,裝了 VS 2005 與 VSS ,卻發現原先在 VS 2005 裡面可以看到的 VSS 控制項都不見了。以為是 VSS 沒裝好,重裝了一遍又一遍,哇哩勒~ 真心換絕情啊!!

還好有找到阿強.Net裡的一篇:VS2005中无法显示VSS2005选项的解决方法,正好解決了自己的問題。

原來只要在 VS2005 的 工具 >> 選項 >> 原始檔控制,在右方目前的原始檔控制外掛程式挑選:Microsoft Visual SourceSafe 即可。

如果有更嚴重的患者,請至引用出處 「VS2005中无法显示VSS2005选项的解决方法」試試其他方法。

附上一圖:

使用 jQuery 實作 Tips 功能

在 「唏嘘一世」的部落格中發現一篇:利用jQuery写的Tips(提示)效果。剛好自己也正想要用 jQuery 重新改寫以前的程式碼,讓時下的瀏覽器都能夠正常顯示。下載作者程式碼測試後,「真是太完美了」。但我的系統尚不能接受太絢麗的介面,因為要走復古風,所以稍微調整了作者的一些版面功能。

先貼作者程式碼的效果:



<style> 
.tool-tips{ position: absolute; visibility: hidden; z-index: 13000; color: #fff; width:200px; } 
.tool-title{ font-size:13px; font-weight:bold; margin: 0; color: #9FD4FF; text-align: center; padding: 6px 6px 4px; background: url(http://www.xixuyishi.com/theme/xixuyishi/bubble.png) top left; } 
.tool-text{ padding: 4px 8px 8px; font-size:12px; color: #cf9; background: url(http://www.xixuyishi.com/theme/xixuyishi/bubble.png) bottom right; } 
</style> 


$(document).ready(function(){
           $('<div class="tool-tips"><div class="tool-title"></div><div class="tool-text"></div></div>').appendTo('body');
           $('abbr,acronym').mouseover(function(){
               $(this).css('cursor','help');
               $('.tool-tips').css('visibility','visible');
               var xixu = this;
               if(xixu.title){xixu.yishi=xixu.title;xixu.title='';}
               var dual = xixu.yishi.split('::');
               if(dual.length>1){
                   myTitle = dual[0];
                   myText = dual[1];
               }else{
                   myTitle = $(this).text();
                   myText = xixu.yishi;
               }
               $('.tool-title').html(myTitle);
               $('.tool-text').html(myText);
           }).mousemove(function(e){
               $('.tool-tips').css('top',e.pageY+15);
               $('.tool-tips').css('left',e.pageX+15);
           }).mouseout(function(){
               $('.tool-tips').css('visibility','hidden');
           })
       }

<abbr title="China">CN</abbr> 
<acronym title="Cascading Style Sheets">CSS</acronym> 

<acronym title="請點選「開始」<BR>移至控制台">說明</acronym> 



我需要的則是:

因為我需要較寬的說明內容,所以將 .tool-tips{width:600px;} 裡的 width 調的大些。.tool-text{color: black; background: #FFFFCC} 則是定義自己想要的背景及字型顏色。最後,我將 $('<div class="tool-tips"><div class="tool-title"></div><div class="tool-text"></div></div>').appendTo('body'); 裡的 <div class="tool-title"></div> 拿掉,只留下 tool-text 就好。

2010年2月7日 星期日

領導,不需要頭銜




作者:華倫.班尼斯
原文作者:Warren Bennis
譯者:李元墩、陳璧清
出版社:大是文化
出版日期:2009年08月31日
語言:繁體中文 ISBN:9789866526329

延伸閱讀:比馬龍效應 預言成功