PIXNET Logo登入

流風羽的部落格

跳到主文

歡迎光臨流風羽在痞客邦的小天地

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 1月 31 週四 201316:11
  • [SQL Server] 關於 Store Procedure 中使用 sp_executesql 執行 T-SQL 陳述式


 
在撰寫 Store Procudure 時, 因需求關係可能會在其中依據條件的不同來組成 T-SQL 陳述式, 再加以執行。
 

在一般的條件下, 只需要下 sp_executesql @陳述式變數即可完成執行動作。

 

但若 T-SQL 陳述式中, 有特殊文字如 "綉", 不論是寫在條件式中或是查詢欄位, 這種特殊文字是無法正常呈現的。

 

先看下 SQL Server 是如何呈現特殊文字的, 如下, 若直接查詢 " 綉" 這個字, 我們看到的結果會是 "?"。


 

該如何讓它正常呈現, 只要加個前贅字 "N" 即可, SQL Server 會知道要以 Unicode 來作呈現。可參考 http://support.microsoft.com/kb/239530/zh-tw。


 

既然知道了如何以呈現 Unicode 來呈現特殊文字, 那麼若是要在 Store Procedure 中使用 T-SQL 陳述式來查詢特殊文字呢?以下幾點請注意:

1. Unicode 參數請使用 nvarchar 型別

2. 若是使用 T-SQL 陳述式, 請使用 sp_executesql 來配合執行。

 

以下示範如何在 Stror Procedure 中使用 T-SQL 陳述式並相容 Unicode的作法。

 

先定義兩個主要參數, @sqlStr 為要存放 T-SQL 陳述式之變數, @pDefinition 為定義參數型別時使用。


 

定義陳述式及參數型別, 該參數可能會放置特殊文字, 故指定型別為 Nvarchar, 長度則依需求調整。


 

執行此 T-SQL 陳述式語法如下, @unicodeWord 是定義在 T-SQL 陳述式中的參數, @queryWord 為欲查詢參數(注意: 傳遞此參數時須注意要以 Unicode 傳遞)。


 

以上, 即可跟特殊文字的問題說再見啦!


(繼續閱讀...)
文章標籤

流風羽 發表在 痞客邦 留言(0) 人氣(414)

  • 個人分類:SQL Server
▲top
  • 1月 22 週二 201315:16
  • [.NET Entity Framework] 找不到 Entity Key ???


前陣子使用 WebSecurity 產生使用者 Table, 接著再使用 Entity Framework 5.0 由資料庫產生程式碼, 好玩的事情發生了, 在編譯時沒有錯誤, 當有使用到那一些由 Entity Framework T4 產生的 Domain Model 時, 就發生 Run Time Error...
 


 

這錯誤訊息是說, 未定義 Entity Key, 也就是 Table 的 Primary Key, 說也奇怪, 檢查一下 Entity Framework Diagram, 奇怪..., 明明有確實是有 Entity Key, 竟然沒有跟著產生出來...

 


 

搞了半天, 原來使用 Entity Framework 在 Domain Model 操作時會去尋找他的 Entity Key, 而且它預設只認得 Id 或 EntityNameId 是該 Table 的 Key, 如果使用的 Primary Key 名稱不是以上兩個, 很抱歉, 只能自己加了..., 也就是 Domain Model 的 Entity Key 一個 Key Attribute.

 


 


 

如上, 在 Domain Model using System.ComponentModel.DataAnnotations, 並給予 Entitty Key 一個 Key Attribute.

 

P.S. 為何 WebSecurity 預設產生的 Table Primary Key 不是用 Id 或 EntityNameId 呢..., 這樣不就每次用 Entity Framework Update 時就要在改一次哩... Orz...


(繼續閱讀...)
文章標籤

流風羽 發表在 痞客邦 留言(0) 人氣(113)

  • 個人分類:.NET MVC
▲top
  • 12月 21 週五 201217:15
  • [.NET MVC 4] 使用 ValidateAntiForgery 防止CSRF跨網站請求偽造攻擊


CSRF(跨網站請求偽造),簡單的說就是尤其他的位置Post偽造資料請求的攻擊,較詳細的解說可參考http://en.wikipedia.org/wiki/Cross-site_request_forgery。
 

NET MVC 4可使用ValidateAntiForgery來防止CSRF攻擊,僅限Post,其原理只是在Return View時計算出一組Token並帶到頁面上,在Post時會去比對這組Token,使用方法很簡單。

 

在View(or Templates or Partial)中的Form裡面加入@Html.AntiForgeryToken(在此使用的是Razor語法,若是使用Aspx只要將@去掉並以<% ... %>包起來即可)。

 


接著在Form Sumit的目標Action上加上[ValidateAntiForgeryToken]這個屬性(若是Action上有這個屬性,但View沒有,會出現Error)。

 


 

以上兩個步驟即完成針對CSRF攻擊安全性的提升。


(繼續閱讀...)
文章標籤

流風羽 發表在 痞客邦 留言(0) 人氣(212)

  • 個人分類:.NET MVC
▲top
  • 11月 23 週五 201217:27
  • [.NET MVC] 使用多國語系


.NET MVC多國語系,可以利用Resource檔來達到目的。
 

首先,先在MVC專案底下建立一個「App_LocalResources」資料夾,其主要目的是放置各國語系的Resource檔。

 


 

接著,在「App_LocalResources」中建立一個Resource檔。

 


 


 

本範例將這個Resource檔取名為「Resource.resx」(若未指定語系,則以此檔案為主),檔案建立完成後,開啟即可編輯,將所需要的資訊輸入,如下圖,Name是Resource檔的屬性名稱,而Value是該屬性內容,Comment是註解(這不是廢話嗎?);很重要的一點是,Access Modifer記得要設為Public,不然會怎麼叫都叫不到。

 


 

編輯完檔案後,開啟檔案屬性,如下圖,Build Action要設為Embedded Resource,Copy to Output Directory設為Copy always,Custom Tool Namespace即為命名空間(Namespace),要呼叫時會用到,請自訂(由於是使用英文版VS,就不在此做翻譯,請使用中文版的朋友稍微自己翻譯一下)。

 


 

此時,我們一樣在「App_LocalResources」建立另一個Resource檔,取名為Resource.zh-TW.resx,這邊注意一下zh-TW為繁體中文語系的代碼,若要使用其他語系請自行查詢代碼,另外一個重點是,檔名也務必取為「Resource.語系代碼.resx」,這樣才會被當成同一組;檔案建立完成後,一樣我們給它填寫一些內容(這邊的意思是,Resource.resx有什麼,這邊就應該要有什麼),之後的設定請參照上面流程。

 


 

接著,專案建置後即可直接使用,使用方法如下圖,呼叫Resource底下的Practice做呈現(預設是會依照瀏覽器語系呈現),也就是直接呼叫Namespace底下的Resource,呼叫方式為「Namespace.Resource檔名.Resource屬性」,大功告成。

 


 


(繼續閱讀...)
文章標籤

流風羽 發表在 痞客邦 留言(0) 人氣(1,824)

  • 個人分類:.NET MVC
▲top
  • 9月 14 週五 201210:20
  • [iOS] Create APNs Key for PHP



Apple Push Notification service(APNs),要建立Push Server的條件下,就是要有一組Key讓APNs做驗證,以下指令可以製作出Push Server on PHP所需要的Key。

 

openssl pkcs12 -clcerts -nokeys -out cert.pem -in Certificates.p12 

openssl pkcs12 -nocerts -out key.pem -in Certificates.p12 
openssl rsa -in key.pem -out key.unencrypted.pem 
cat cert.pem key.unencrypted.pem > ck.pem 

 

Certificates.p12 - 從你的Apple鑰匙圈取出的Key

 

注意:此製作過程必須全部都在該Push Server底下製作,否則解出來的Key是無法使用的。


(繼續閱讀...)
文章標籤

流風羽 發表在 痞客邦 留言(0) 人氣(292)

  • 個人分類:iOS
▲top
  • 7月 18 週三 201215:31
  • [SQL Server] 解決資料庫還原版本向下相容的問題


SQL Server Backup產出的bak檔,版本是無法向下相容的,如2008產出的bak就無法拿到2005使用,但若是有此需求,有另一解法,可參考以下網址。



http://www.sqlservermart.com/HowTo/MSSQL_Convert_2008_To_2005.aspx



此方式就不是透過bak備份檔案還原,而是透過產出指定版本script的方式,透過該script,拿到該指定版本的資料庫做還原。可見路有好幾條,只是看看官們有沒有找到而已呀。


(繼續閱讀...)
文章標籤

流風羽 發表在 痞客邦 留言(0) 人氣(12,165)

  • 個人分類:SQL Server
▲top
  • 7月 18 週三 201214:30
  • [Javascript] 引用外部 js 檔時利用屬性傳遞參數


在開發網頁時,時常會將Javascript寫在外部的js檔並直接呼叫使用。在實用面上,如何傳遞參數給該外部js檔使用呢?除了預先在頁面的Javascript區段定義好全域變數供其使用(此方法若全域變數名稱有變動,js亦需要跟著變動),還有另一種利用屬性帶值的方式,以下程式碼簡單示範一下。


HTML

<!--引用外部js 檔-->

<script src ='demo.js' type='text/javascript' data ='data' ></script>



js

// 取得所有 tag名稱為script的 element

var scripts = document.getElementsByTagName('script' );

// 取得最後一個 (也就是現在執行的這一個 )element

var currentScript = scripts[ scripts.length - 1];

// 將data屬性的值取出

var data = currentScript.getAttribute('data' );



利用data這個屬性,我們可以透過簡單的Javascript,取得最後一個tag為script的element,也就是目前HTML執行呼叫的該element,直接取得該data屬性(data屬性只是demo用,名稱可以隨意取。)即可當作參數使用,不需在HTML裡面再撰寫Javascript,是不是很方便呢?


(繼續閱讀...)
文章標籤

流風羽 發表在 痞客邦 留言(0) 人氣(3,569)

  • 個人分類:Javascript
▲top
  • 7月 18 週三 201210:50
  • [SQL Server] Bak 檔案還原資料庫



為了還原一個bak檔,使用GUI搞了半天,一直回報錯誤而無法還原,最後只好嘗試自己下語法還原,短短兩行就把問題解決了。



RESTORE DATABASE DatabaseName

   FROM DISK = 'BakFilePath' ;



其中DatabaseName就是要還原的資料庫名稱,而BakFilePath就是要還原的bak檔案路徑(含檔名),如C:\db.bak,以上。這個故事告訴我們不要太依賴GUI(嘆)。

另外,更詳細的SQL Server Restore語法可參考以下網址:

http://msdn.microsoft.com/en-us/library/ms186858.aspx


(繼續閱讀...)
文章標籤

流風羽 發表在 痞客邦 留言(0) 人氣(2,570)

  • 個人分類:SQL Server
▲top
  • 7月 17 週二 201216:03
  • [Android] 將 Bitmap 轉為指定格式圖片並儲存至 SDCard


以下程式碼將示範如何將Bitmap轉為指定格式的圖片並儲存至外部儲存裝置SDCard。


若要寫入SDCard,必須先將寫入外部儲存裝置的權限打開,於Android專案的AndroidMaifest.xml中加入以下敘述。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />



try {

    // 取得外部儲存裝置路徑

    String path = Environment.getExternalStorageDirectory().toString ();

    // 開啟檔案

    File file = new File( path, "Image.png");

    // 開啟檔案串流

    FileOutputStrea out = new FileOutputStream(file );

    // 將 Bitmap壓縮成指定格式的圖片並寫入檔案串流

    bmp.compress ( Bitmap. CompressFormat.PNG , 90 , out);

    // 刷新並關閉檔案串流

    out.flush ();

    out.close ();

} catch (FileNotFoundException e) {

    // TODO Auto-generated catch block

    e.printStackTrace ();

} catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace ();

}




其中bmp即為要轉為圖片儲存的Bitmap。



(繼續閱讀...)
文章標籤

流風羽 發表在 痞客邦 留言(0) 人氣(7,085)

  • 個人分類:Android
▲top
  • 7月 17 週二 201214:48
  • [Android] 由 Extends View Class 關閉 App


如果在主要Activity中setContentView,所指定的View為自訂的extends View class的話,該如何在該extends View class中呼叫finish()來關閉App呢?以下簡單程式碼即可達成目的。



// 主要Activity

setContentView(new FdView(this));



// Extents View class

(( Activity)context).finish ();




注意,extends View class中context即為主要Activity,在extends View class的constructor中可assign給class中的自訂變數,故要將其轉型成Activity方可使用finish()將App結束。




(繼續閱讀...)
文章標籤

流風羽 發表在 痞客邦 留言(0) 人氣(311)

  • 個人分類:Android
▲top
12...12»

部落格廣告

部落格廣告

個人資訊

流風羽
暱稱:
流風羽
分類:
數位生活
好友:
累積中
地區:

熱門文章

  • (12,165)[SQL Server] 解決資料庫還原版本向下相容的問題
  • (3,569)[Javascript] 引用外部 js 檔時利用屬性傳遞參數
  • (1,824)[.NET MVC] 使用多國語系
  • (776)度分秒 轉換成 經緯度
  • (685)jQuery Plugin ColorBox 自訂關閉
  • (651)不須 Google 密鑰使用 Google AJAX Search API
  • (402)將點陣列轉為 Geometry 資料
  • (281)HTML5 Canvas 範例(繪製影像)

文章分類

toggle Technology (30)
  • jQuery (2)
  • HTML5 (9)
  • Oracle Spatial (6)
  • Android (3)
  • PHP (2)
  • IIS (2)
  • Google API (3)
  • MapServer (4)
  • ASP.NET (11)
  • iOS (1)
  • OpenLayers (3)
  • Flex (13)
  • Eclipse (2)
  • Oracle (6)
  • C# (5)
  • Design Pattern (3)
  • PostgreSQL (3)
  • Python (8)
  • .NET MVC (3)
  • Other (1)
  • DB (1)
  • Javascript (6)
  • Action Script 3 (1)
  • QGIS (7)
  • Linux (2)
  • SQL Server (5)
  • Java (2)
  • VirtualBox (1)
  • Ruby on Rails (2)
  • GIS (3)
  • 未分類文章 (1)

最新文章

  • [SQL Server] 關於 Store Procedure 中使用 sp_executesql 執行 T-SQL 陳述式
  • [.NET Entity Framework] 找不到 Entity Key ???
  • [.NET MVC 4] 使用 ValidateAntiForgery 防止CSRF跨網站請求偽造攻擊
  • [.NET MVC] 使用多國語系
  • [iOS] Create APNs Key for PHP
  • [SQL Server] 解決資料庫還原版本向下相容的問題
  • [Javascript] 引用外部 js 檔時利用屬性傳遞參數
  • [SQL Server] Bak 檔案還原資料庫
  • [Android] 將 Bitmap 轉為指定格式圖片並儲存至 SDCard
  • [Android] 由 Extends View Class 關閉 App

最新留言

  • [17/06/12] 訪客 於文章「Oracle exp & imp 使用方...」留言:
    感謝您的教學...
  • [14/10/24] 小吳 於文章「HTML5 Canvas 範例(繪製圓形...」留言:
    借我複製玩玩喔,謝謝...
  • [14/07/01] 訪客 於文章「將 .ui 佈局檔轉換成 .py Pyt...」留言:
    於 PyQt4 目錄下輸入 pyuic4 -o [outPu...
  • [13/08/20] 路人 於文章「Oracle String 自動補零...」留言:
    是LPAD...
  • [13/03/12] aliceispig 於文章「Flex 等於運算符(==) 及 全等運...」留言:
    === 是代表 型別 值 全都相等 == 是代表值相等 ...
  • [12/10/01] Rami 於文章「利用 QT-Designer 製作程式佈...」留言:
    感謝分享~給了我很大的幫助~...
  • [12/02/20] 初學者 於文章「Flex 下載檔案...」留言:
    請問我要如何呼叫這段程式...
  • [11/09/09] 家豪 陳 於文章「建立 Oracle Spatial Ge...」留言:
    我要給你訂正一下 標題的 Special 是錯誤的........
  • [11/09/01] 楊哲偉 於文章「Flex 使用 POST 傳值...」留言:
    您好,我是FLEX的新手 看完這段程式有些問題想問 其中va...

文章精選

文章搜尋

參觀人氣

  • 本日人氣:
  • 累積人氣: