2009年10月29日 星期四

MS SQL Paging 語法

轉錄自PTT
CREATE  PROCEDURE sp_Paging
@tblName varchar(255) ,
@strGetFields varchar(1000) = '*',
@fldName varchar(255)='',
@pageSize int = 10,
@pageIndex int = 1,
@recordCount int = 0 output,
@pageCount int = 0 output,
@orderType int = 0,
@strWhere varchar(1500) = ''
AS
declare @strSQL nvarchar(3000)
declare @strTmp varchar(110)
declare @strOrder varchar(400)

    begin
        if @strWhere !=''
            set @strSQL = 'select @recordCount = count(*) from ' + @tblName + ' where '+@strWhere

 else
            set @strSQL = 'select @recordCount = count(*) from ' + @tblName
    end

    exec sp_executesql @strSQL,N'@recordCount int out ',@recordCount out

    if @recordCount % @pageSize = 0
        set @pageCount = @recordCount / @pageSize
    else
        set @pageCount = @recordCount / @pageSize + 1
  --計算出記錄是總數和求出總共的頁數

   begin
      if @orderType != 0
         begin
            set @strTmp = '<(select min'
            set @strOrder = ' order by ' + @fldName +' desc'
         --如果@orderType不是0﹐就執行降序﹐這句很重要﹗
         end
      else

       begin
            set @strTmp = '>(select max'
            set @strOrder = ' order by ' + @fldName +' asc'
         end

     if @pageIndex = 1
        begin
           if @strWhere != ''

              set @strSQL = 'select top ' + str(@pageSize) +' '+@strGetFields+ ' from ' + @tblName + ' where ' + @strWhere + ' ' + @strOrder
           else

              set @strSQL = 'select top ' + str(@pageSize) +' '+@strGetFields+ ' from '+ @tblName + ' '+ @strOrder
        end
     else
         begin
           if @strWhere != ''
                 set @strSQL = 'select top ' + str(@pageSize) +' '+@strGetFields+ ' from '
                        + @tblName + ' where ' + @fldName + '' + @strTmp + '('
                        + substring(@fldName, charindex('.',@fldName)+1, len(@fldName)) + ') from (select top ' + str((@pageIndex-1)*@pageSize) + ' '
                        + @fldName + ' from ' + @tblName + ' where ' + @strWhere + ' '
                        + @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
       else
         set @strSQL = 'select top ' + str(@pageSize) +' '+@strGetFields+ ' from '
                        + @tblName + ' where ' + @fldName + '' + @strTmp + '('
                        + substring(@fldName, charindex('.',@fldName)+1, len(@fldName)) + ') from (select top ' + str((@pageIndex-1)*@pageSize) + ' '
                        + @fldName + '  from ' + @tblName + '' + @strOrder + ') as tblTmp)'
                        + @strOrder
         end
   end
--print @strSQL

exec sp_executesql @strSQL
GO

2009年10月27日 星期二

2009/10/27賀~~~成文淡水新居落成~~~

成文新家
成文新家
成文新家
成文新家
成文新家
成文新家
成文新家
成文新家
成文新家
成文新家
成文新家
成文新家
成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
DSC_8311成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
DSC_8314成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
成文家的KTV包廂
野貓
成文家的貓-妮妮
隨拍

2009年10月26日 星期一

Windows XP 遠端桌面修改Port

本文說明如何變更遠端桌面聽候的連接埠。'
  1. 啟動「登錄編輯程式」。
  2. 找出並按一下下列登錄子機碼:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber
  3. [編輯] 功能表上,按一下 [修改],再按一下 [十進位]
  4. 輸入新的連接埠編號,然後按一下 [確定]
  5. 結束「登錄編輯器」。
注意 當您嘗試使用遠端桌面連線連接到這台電腦時,您必須輸入新的連接埠。

本文將告訴您如何變更「遠端桌面」用戶端所連線的連接埠號碼。如果遠端電腦已經變更「終端機服務」或「遠端桌面」連線的「聽候」連接埠的預設連接埠,您就可能需要執行此項操作。預設連接埠為 3389。
  1. 按一下 [開始],依序按一下 [所有程式],指向 [附屬應用程式],指向 [通訊],再按一下 [遠端桌面連線]
  2. [電腦] 方塊中,輸入您要連線的電腦名稱或 IP 位址,之後跟隨冒號 (:),以及要使用的連接埠號碼。

    例如,如果要連線到名為 MyXPPro 電腦上的連接埠 3390,請輸入下列資訊:
    MyXPPro:3390
    如果要在 IP 位址為 10.10.10.1 的電腦上,連線到連接埠 3391,請輸入下列資訊:
    10.10.10.1:3391
  3. 按一下 [連線]
原文網址 : http://support.microsoft.com/kb/306759/zh-tw
                   http://support.microsoft.com/kb/304304/

Windows XP 自動登入設定

  • 按「開始」,到執行,輸入:
control userpasswords2
  • 按確定。
  • 這時會帶出管理使用者帳號的畫面,在「使用者」這一頁面,不勾 :必須輸入使用者名稱和密碼,才能使用這台電腦,按套用。
  • 此時會出現要求輸入密碼的畫面,請輸入你要自動登入的帳號與密碼,Windows XP就會以該組帳號作為自動登入的帳號。
若要恢復到原本可以選擇帳號的設定,與以上步驟都相同,只是勾起「必須輸入使用者名稱和密碼,才能使用這台電腦」

2009年10月16日 星期五

VS 2005 Winform 輸入法全型切換錯誤問題

首先在專案中新增一個Class
Public Class ImeForm

Inherits System.Windows.Forms.Form

Private Declare Function ImmGetContext Lib "imm32.dll" (ByVal hwnd As Integer) As Integer
Private Declare Function ImmGetConversionStatus Lib "imm32.dll" (ByVal himc As Integer, ByRef lpdw As Integer, ByRef lpdw2 As Integer) As Integer
Private Declare Function ImmSimulateHotKey Lib "imm32.dll" (ByVal hwnd As Integer, ByVal dw As Integer) As Integer

Private Sub Form_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
For Each objCtl As Control In Me.Controls
AddHandler objCtl.GotFocus, AddressOf ControlIME
Next
End Sub

Private Sub Form_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
ControlIME(Me, Nothing)
End Sub

Private Shared Sub ControlIME(ByVal sender As Object, ByVal e As System.EventArgs)
Dim lngStatus As Long, lngSt As Long, h As IntPtr = sender.Handle
ImmGetConversionStatus(ImmGetContext(h), lngStatus, lngSt)
If lngStatus = 9 Then ImmSimulateHotKey(h, 113)
End Sub

End Class

繼承ImeForm
Public Class ControlCenter
Inherits ImeForm


2009年10月12日 星期一

心牆

叢林內傳來似機關槍滴滴答答的聲響
小路上充斥著坦克機輪來回往返的低沈努吼
戰士們個個拖著沈重的步伐,臉上掛著倦容,為了生存單而奮鬥
而心裡那個天寬地闊的世界,卻在這個時代時消失