星期六, 10月 12, 2024

[SQL] 伺服器定序 - 變數大小寫

Line 討論發現到,原來定序會影響 TSQL 撰寫時的大小寫,原以為定序只對資料排序有影響而已,在官方文件 - 設定或變更伺服器定序 上發現文字說明
變數、資料指標和 GOTO 標籤的名稱。 例如,如果伺服器層級定序區分大小寫,變數 @pi 和 @PI 會視為不同的變數;如果伺服器層級定序不區分大小寫,則會視為相同的變數。
下列 TSQL 語法和圖示可以觀察到伺服器定序為 Chinese_Taiwan_Stroke_CS_AS 區分大小寫,可以看見變數大小寫在 IDE 上會有錯誤提示
SELECT SERVERPROPERTY('collation')

星期四, 10月 10, 2024

[C#] DataGridViewColumn.Clone()

延續 [C#] 提供資料行已經屬於 DataGridView 控制項 筆記,發現原來 DataGridViewColumn.Clone() 產生 DataGridViewColumn 是可以再放進其他 DataGridViw

C# Code
private void btnClone_Click(object sender, EventArgs e)
{
    // 寫法一
    List<DataGridViewColumn> cloneColumn = new List<DataGridViewColumn>();
    foreach (DataGridViewColumn col in dataGridView1.Columns)
        cloneColumn.Add(col.Clone() as DataGridViewColumn);

    // 寫法二
    List<DataGridViewColumn> cloneColumn = dataGridView1.Columns.OfType<DataGridViewColumn>()
        .Select(col => col.Clone() as DataGridViewColumn)
        .ToList();

    dataGridView2.Columns.AddRange(cloneColumn.ToArray());
}
從中斷點內可以觀察到 DataGridViewColumn.DataGridView 屬性變成 null
實際執行

星期二, 10月 08, 2024

[CCNA] 動態路由 - OSPF - 優先權

延續 [CCNA] 動態路由 - OSPF[CCNA] 動態路由 - OSPF - 負載平衡 筆記,從 router0 => router1 有兩條路由,如下圖
上述兩條路由 AD 相同,但 Cost 不同,優先是以 router0 => router1 為主,當 router0 => router1 不通時,才會改成 router0 => router3 => router2 => router1 ,Cost 計算可以參考 認識OSPF路由協定 活用相關指令設定參數值 內的公式介紹,兩條路由成本分別為
  • router0 => router1 :65
  • router0 => router3 => router2 => router1:193
OSPF AD 值預設為 110

router0 => router1

router0 => router3 => router2 => router1

故意關閉 router0 上往 router1 網卡

星期一, 10月 07, 2024

[CCNA] 動態路由 - OSPF - 負載平衡

延續 [CCNA] 動態路由 - OSPF 筆記,從 router0 至 router2 有兩條路由可以到達,可以達到負載平衡效果
show ip route

重新開啟 Packet Tracer 進入 router0 CLI 時發現 OSPF 自動進行同步,Router IP 以 192.168.120.1 (深綠) 和 192.168.140.1 (淺綠) 來表示,是因為該 IP 為 Router 上最大的 IPAddress 

紫框為 router0 至 router2 的 OSPF 路由設定

星期日, 10月 06, 2024

[CCNA] 動態路由 - OSPF

OSPF (Open Shortest Path First),簡單說就是讓 router 自行交換路由,不用每個都手動建立
在 Router 上啟動 OSPF 並進行設定

紀錄 router0、router1、router2 啟用和設定方式,router3 就省略囉,主要設定語法為
router ospf ProcessID => ProcessID 為識別用
network IPAddress wildcard area AreaID => 該範例會設定在同一個 area 內
wildcard 請參考該篇文章 - Wild Card反遮罩

router0 上啟用 OSPF, network 192.168.0.0 0.0.255.255 area 0,代表 192.168 開頭都會啟用 OSPF
router1 啟用 OSPF,network 192.0.0.0 0.255.255.255 area 0,代表 192 開頭都會啟用 OSPF
router2 啟用 OSPF,network 0.0.0.0 255.255.255.255 area 0,代表全部 IP 都會啟用 OSPF 
當 router OSPF 啟動後,每個 router 會出現同步訊息,Full 代表已經交換完,之後就是定期發出 Hello 封包確認 router 路由設定是否有異動
show ip route

四個 router 都啟用 OSPF 後,在 router0 上確認 OSPF 路由
show ip protocols

該語法可以查詢 Router 上 OSPF 設定,下圖以 router0 為例紀錄
Cient 端 PC 進行測試 OSPF 設定檢查