2010年11月5日 星期五

SQL SERVER 民國年轉換函數(支援100年)

DECLARE @Format VARCHAR(9)
SET @Format = 'yyy/mm/dd'
SELECT [dbo].[udfTaiwanDateFormat] ([ACCT_DATE], @Format) as 'DATE'

使用jquery.ui.datepicker 判斷自行輸入格式是否符合

If IsDate(chk_cash_date_1.Text) <> True Then
Label4.Text = "日期格式錯誤!"
Exit Sub
End If
Dim date_list() As String
date_list = chk_cash_date_1.Text.Split("/")
If date_list.Count <> 3 Then
ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "date_error1", "alert('日期格式錯誤!');", True)
Exit Sub
End If
強制改成 yyyy/MM/dd 格式
Dim year_tmp As String
Dim month_tmp As String
Dim date_tmp As String
year_tmp = String.Format("{0:0000}", Convert.ToInt16(date_list(0)))
month_tmp = String.Format("{0:00}", Convert.ToInt16(date_list(1)))
date_tmp = String.Format("{0:00}", Convert.ToInt16(date_list(2)))
Dim merg_date As String = year_tmp + "/" + month_tmp + "/" + date_tmp

ASP.NET 尋找上個月底日期(VB)

ASP.NET 尋找上個月底日期(VB)
DateAdd("D", -1, Year(DateTime.Now) & "/" & Month(DateTime.Now) & "/1")

SQL SERVER 計算昨天日期

SQL SERVER 計算昨天日期
SELECT DATEADD(dd, DATEDIFF(dd,1,getdate()), 0)

SQL SERVER 多筆子查詢

在SQL SERVER裡當子查詢大於一筆資料會報錯 加入下面語法可使子查詢的多筆內容用逗號附加上去
SELECT [Object_Id]
,[Tool_No]
,[Serial_No]
,[Tool_Revision]
,[Sor_No]
,(SELECT [Serial_No] + ',' FROM [ACF_Tooling].[dbo].[Main] WHERE [Tool_Name] = 'BOF' FOR XML PATH('')) as Tool_Name
FROM [ACF_Tooling].[dbo].[Main]

2010年9月22日 星期三

SQL SERVER 預存程序 使用 TRANSACTION

SQL SERVER 2005新增了預存程序的 TRY ..... CATCH 使用上真的方便多了 1.舊式TRANSACTION用法(ASP.NET呼叫此預存程序可傳回指定錯誤說明)
.........
AS
BEGIN TRANSACTION
DECLARE @MSG varchar(30)
BEGIN
IF NOT EXISTS( ...... )
 BEGIN
  SET @MSG = 'a_fail'
  GOTO Error_Handler
 END
ELSE
 BEGIN
  DELETE .....
  SET @MSG = 'true'
 END
  
IF @MSG = 'true'
 BEGIN
    IF NOT EXISTS( ...... )
     BEGIN
      SET @MSG = 'b_fail'
      GOTO Error_Handler
     END
    ELSE
     BEGIN
      DELETE .....
      SET @MSG = 'true'
     END
 END
COMMIT TRAN
Error_Handler:
IF @MSG = 'a_fail' OR @MSG = 'b_fail'
 BEGIN
  ROLLBACK TRANSACTION
 END
SELECT @MSG
END
2. TRANSACTION加入 TRY ..... CATCH 用法(回傳false表示寫入失敗)
.........
AS
BEGIN TRY
 BEGIN TRANSACTION
  DECLARE @MSG varchar(30)
  SET @MSG = 'true'
  INSERT INTO ......
  INSERT INTO ......
  COMMIT TRANSACTION
 END TRY
BEGIN CATCH
  SET @MSG = 'false'
  ROLLBACK TRANSACTION
END CATCH
SELECT @MSG

2010年8月24日 星期二

Masterpage 使用不同層程式目錄所產生問題

最近看到jquery出的一個layout的套件
http://layout.jquery-dev.net/demos.cfm
覺得還不錯 就套用到新的案子上面
我的做法是
使用Masterpage 套用jquery的layout
分為左、上、右
右邊則是開發人員coding的內容
由於是使用jquery的套件 勢必要在Masterpager載入以下套件
jquery-1.4.1.js
jquery.ui.all.js
jquery.layout.js
開發初期相當順利
但當我的page套用這個.master的時候
剛好我的page有用到jquery的套件 但居然不能繼承.master所引用的jquery-1.4.1.js
必須另外載入
這時發生問題 我同時在.master與我的page都載入jquery-1.4.1.js
就出錯了 我不確定是不是jquery layout的問題
因為我想辦法來繼承.master的jquery
抓了文發現了一個好東西

CSS部分不會有這樣的問題 只有 "Script" 才會
當下馬上解決我所有的問題
不過過了幾天又出現另一個問題
我在page頁面加入一個Menu元件時出現以下錯誤

無法修改 Controls 集合,因為控制項包含程式碼區塊 (例如 <% ... %>)

這時我立刻想到是src="<%=ResolveClientUrl...的問題
解決的辦法是 只要將我們需要事先載入的 Script 加到ScriptManager即可
就這麼簡單...







不過相對的 Script 會有先後順序的問題
要注意把接下來的 Script 程式碼code在這段之後才會不出現問題