string[] AAA = { "abc", "def", "ghi", "jkl", "mno" };
string[] BBB = { "def", "jkl", "mno" };
// 交集
var temp1 = AAA.Intersect(BBB);
// 差集
var temp2 = AAA.Except(BBB);
// 聯集
var temp3 = AAA.Union(BBB);
2011年10月20日 星期四
LINQ 的集合操作
LINQ 的集合操作。
將十進制的 Unicode 碼轉回文字
紀錄一下將十進制的 Unicode 碼,轉回文字的方式。
int unicodeInt = 21452; byte[] byteArray = new byte[2]; byteArray[0] = (byte)(unicodeInt); byteArray[1] = (byte)(unicodeInt >> 8); string unicodeString = Encoding.Unicode.GetString(byteArray);就像這樣。
2011年9月29日 星期四
[jQuery] 取得連結內容,將其放到容器中。
jQuery 取得連結內容後,將內容放到容器中。
網頁連結
// jQuery
$(document).ready(function () {
$(".link").click(function () {
$("div#container").empty().load($(this).attr('href'));
return false;
});
});
標籤:
jQuery
2011年7月25日 星期一
[SQL Server] 筆記 "限制的使用者"
最近從人家那拿來的 DB 備份,還原後總是會在 db 後面加上(限制的使用者),
運作上感覺是沒什麼問題,可是總覺得那字樣很礙眼,哈哈。
Google 到的方法,筆記一下。
運作上感覺是沒什麼問題,可是總覺得那字樣很礙眼,哈哈。
Google 到的方法,筆記一下。
ALTER DATABASE [YourDBName] SET MULTI_USER WITH ROLLBACK IMMEDIATE;就這樣...
2010年11月15日 星期一
[android] 開發 android 應用程式資源記錄
wiki
androidbmi
部落格
安裝與設定開發環境
[安裝教學]使用Eclipse開發Android程式
Hello World!
[教學]Android的第一個程式
實機 Debug
[Android]如何發佈開發好的程式至手機
內容相當豐富的 blog 值得去挖寶
ysl 的程式天堂 - Android 應用開發‧研究‧與諮詢
討論區
JavaWorld@TW
Java ME、Google Android 平台與 JavaCard 討論區
工具
快速產生頁面 layout 的線上工具,非常方便,比用 eclipse 快多了
DroidDraw Beta
androidbmi
部落格
安裝與設定開發環境
[安裝教學]使用Eclipse開發Android程式
Hello World!
[教學]Android的第一個程式
實機 Debug
[Android]如何發佈開發好的程式至手機
內容相當豐富的 blog 值得去挖寶
ysl 的程式天堂 - Android 應用開發‧研究‧與諮詢
討論區
JavaWorld@TW
Java ME、Google Android 平台與 JavaCard 討論區
工具
快速產生頁面 layout 的線上工具,非常方便,比用 eclipse 快多了
DroidDraw Beta
標籤:
android
2010年9月15日 星期三
[筆記]不用第三個變數,交換兩個數值的方法
今天翻到一段程式碼,想不起來這是在做些什麼?
後來終於找到這段程式是在做交換兩個數值,
而且,不宣告第三個變數!
其實好像也不是什麼大不了的東西,
不過還是筆記一下,人老了越來越會忘東忘西...
不宣告第三個變數暫存的方式
結果就會從 a = 10, b = 5,
變成 a = 5, b = 10
宣告第三個變數暫存的方式
一樣的結果,不一樣的寫法,
簡單來說前者就是拿時間換空間,
後者就是拿空間換時間。
後來終於找到這段程式是在做交換兩個數值,
而且,不宣告第三個變數!
其實好像也不是什麼大不了的東西,
不過還是筆記一下,人老了越來越會忘東忘西...
不宣告第三個變數暫存的方式
int a = 10; int b = 5; a ^= b; b ^= a; a ^= b;
結果就會從 a = 10, b = 5,
變成 a = 5, b = 10
宣告第三個變數暫存的方式
int a = 10; int b = 5; int temp; temp = a; a = b; b = temp;
一樣的結果,不一樣的寫法,
簡單來說前者就是拿時間換空間,
後者就是拿空間換時間。
2010年8月2日 星期一
連結的伺服器(Linked Server)筆記
之前佈署測試環境,發生了一連串關於"連結的伺服器(Linked Server)"的問題,
第一個問題:
訊息 7399,層級 16,狀態 1,行 1
連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 報告了錯誤。提供者並未給予任何關於錯誤的資訊。
訊息 7312,層級 16,狀態 1,行 1
不能使用連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 的結構描述或目錄。提供了四部分的名稱,但提供者並未公開必要的介面,以使用目錄或結構描述。
這錯誤訊息的關鍵字不難看出是"提供者"。
點開"提供者"後,滑鼠右鍵點"SQLNCLI10"選屬性即可開啟"提供者選項"

因此,我們看了一下"提供者選項",發現裡面所有選項都被選取了...
這時候我們拜一下 Google 大神,找到取消"限層級零"與"不允許特定存取"可以解決我們的問題。

對於這些選項說明可以看一下:連結的伺服器屬性(提供者選項頁面)
感覺還會有問題...
果然,隔天又發現有 error,經過檢查發現,又是 Linked Server 的問題。
這次出現什麼碗糕哩!?
連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 傳回訊息 "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done."。
訊息 7306,層級 16,狀態 2,行 1
無法從連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 開啟資料表 ""db_name"."dbo"."table_name""。提供者不支援在這個資料來源上的索引掃描。
這訊息的關鍵字"提供者"、"索引"
看了就覺得這和上面的問題有點點關係,因為"索引為存取路徑"也是被勾選的嘛...
將它取消以後,系統便正常了...
目前尚有一個問題未解決,那就是預存程序更新 Linked Server 裡的 Database,
如果沒有加 Transaction,一切正常,加了以後就出現了:
連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 傳回訊息 "異動已經以暗示或者明確的方式認可或中止了"。
訊息 7391,層級 16,狀態 2,行 5
無法執行作業,因為連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 無法開始分散式交易。
這問題比較頭痛一點,因為照著 Google 找到的一些方法,仍然是沒能解決...
解決以後再來更新這篇文章吧...
最後一個問題終於解決,
基本上就是將兩台機器的 MSDTC 開啟,並且做一些設定,
首先進入"元件服務"

接著找到"我的電腦",然後右鍵點擊選取"內容"

選取 MSDTC 頁籤,並且點選"安全性設定"

將裡面的設定設定成下面畫面

在 Windows Server 2003 SP2 不需要特地去改機碼,
如果你是 SP1 的版本,或是用 Windows XP 測試的話,
請檢查下面這機碼是否存在,其值是否為1
點此下載檔案
然後,最重要的一個步驟就是,將這兩台機器都重新開機
事實上,在 Microsoft 技術支援 裡面就有說明解法,
只是那時候心急,忽略了最後一個步驟:重新開機...
導致我的問題拖好久...
最後,如果只是加上 Transaction 的話,他應該還是會丟個錯誤出來 XD
連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 傳回訊息 "異動中已經存在有徵募"。
訊息 7395,層級 16,狀態 2,行 2
無法為連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 啟動巢狀交易。因為 XACT_ABORT 選項已設定為 OFF,所以必須要有巢狀交易。
所以我們必須要在 Transaction 之前,將 XACT_ABORT 設定為 ON,就像下面這樣
大功告成。
第一個問題:
訊息 7399,層級 16,狀態 1,行 1
連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 報告了錯誤。提供者並未給予任何關於錯誤的資訊。
訊息 7312,層級 16,狀態 1,行 1
不能使用連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 的結構描述或目錄。提供了四部分的名稱,但提供者並未公開必要的介面,以使用目錄或結構描述。
這錯誤訊息的關鍵字不難看出是"提供者"。
點開"提供者"後,滑鼠右鍵點"SQLNCLI10"選屬性即可開啟"提供者選項"

因此,我們看了一下"提供者選項",發現裡面所有選項都被選取了...
這時候我們拜一下 Google 大神,找到取消"限層級零"與"不允許特定存取"可以解決我們的問題。

對於這些選項說明可以看一下:連結的伺服器屬性(提供者選項頁面)
感覺還會有問題...
果然,隔天又發現有 error,經過檢查發現,又是 Linked Server 的問題。
這次出現什麼碗糕哩!?
連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 傳回訊息 "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done."。
訊息 7306,層級 16,狀態 2,行 1
無法從連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 開啟資料表 ""db_name"."dbo"."table_name""。提供者不支援在這個資料來源上的索引掃描。
這訊息的關鍵字"提供者"、"索引"
看了就覺得這和上面的問題有點點關係,因為"索引為存取路徑"也是被勾選的嘛...
將它取消以後,系統便正常了...
目前尚有一個問題未解決,那就是預存程序更新 Linked Server 裡的 Database,
如果沒有加 Transaction,一切正常,加了以後就出現了:
連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 傳回訊息 "異動已經以暗示或者明確的方式認可或中止了"。
訊息 7391,層級 16,狀態 2,行 5
無法執行作業,因為連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 無法開始分散式交易。
這問題比較頭痛一點,因為照著 Google 找到的一些方法,仍然是沒能解決...
解決以後再來更新這篇文章吧...
最後一個問題終於解決,
基本上就是將兩台機器的 MSDTC 開啟,並且做一些設定,
首先進入"元件服務"

接著找到"我的電腦",然後右鍵點擊選取"內容"

選取 MSDTC 頁籤,並且點選"安全性設定"

將裡面的設定設定成下面畫面

在 Windows Server 2003 SP2 不需要特地去改機碼,
如果你是 SP1 的版本,或是用 Windows XP 測試的話,
請檢查下面這機碼是否存在,其值是否為1
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC] "TurnOffRpcSecurity"=dword:00000001
點此下載檔案
然後,最重要的一個步驟就是,將這兩台機器都重新開機
事實上,在 Microsoft 技術支援 裡面就有說明解法,
只是那時候心急,忽略了最後一個步驟:重新開機...
導致我的問題拖好久...
最後,如果只是加上 Transaction 的話,他應該還是會丟個錯誤出來 XD
連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 傳回訊息 "異動中已經存在有徵募"。
訊息 7395,層級 16,狀態 2,行 2
無法為連結伺服器 "db_host" 的 OLE DB 提供者 "SQLNCLI10" 啟動巢狀交易。因為 XACT_ABORT 選項已設定為 OFF,所以必須要有巢狀交易。
所以我們必須要在 Transaction 之前,將 XACT_ABORT 設定為 ON,就像下面這樣
SET XACT_ABORT ON;
BEGIN DISTRIBUTED TRANSACTION
INSERT INTO [db_host].[db_name].[dbo].[table_name]
([id]
,[stringChar])
VALUES
(123
,'123456789abcdef')
COMMIT TRANSACTION
大功告成。
標籤:
Linked Server,
SQL Server
訂閱:
文章 (Atom)