bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

MySQL 編碼問題狀況分享

MySQL 的 Latin UTF8 編碼問題在網路上有很多人分享了詳細說明與轉換經驗就不再廢話

反正管理者在建置系統時,要做到的每個環節的編碼都親手檢查確認

因為碰到一個烏龍狀況就是環境設定與連線設定以及專案的程式碼都確認好了是 UTF8 沒錯
不過就是沒注意到在安裝流程的建立資料庫結構的 SQL Script 檔中
每個建立資料表卻都是這樣

create table xxx (xxx, ….) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

在 UTF8 作業環境中卻指定建立 Latin1 編碼的資料表
真是傻眼,只好先自行手工處理了。

Leave a Comment

電子郵件退信狀況處理

收到退信通知,原因如下:

host abc.com[11.22.33.44] said: 550 found in b.barracudacentral.org (in reply to RCPT TO command)

因為收信者 xxx@abc.com 的 mail server 使用 www.barracudacentral.org 黑名單資料庫
寄信者的 mail server 有在黑名單中,所以退信了。
要確認自己的 mail server 是否進黑名單可以到下列網址查詢看看

http://www.barracudacentral.org/lookups

如果中獎了就會在查詢結果中出現如下圖紅色區塊的訊息:

那就點選 click here 順手去申請移除。輸入聯絡資料送出申請成功後會取得確認編號,而且過一段時間會收到確認通知郵件。

然後就是耐心等待一段時間,就會從黑名單中移除。記得過兩天在查詢確認看看是否真的被移除。

如果有時效性的問題,可以先用其他電子郵件來寄信,或是請對方將自己的 mail server 加入到白名單中。

Leave a Comment

很棒的硬體維修教學網站

想學習如何維修主機板、顯示器、電源供應器、其他電器
這個論壇有很多圖文並茂資訊。

http://bbs.pigoo.com/

有學過電子學的應該可以上手,不過我覺得最難的部分是在如何取得需要更換的零件,電子材料行找遍了也沒有。

Leave a Comment

無法解析 equal to 動作的定序衝突

這是在預儲程序後執行時所回應的錯誤訊息,程式碼節錄部份如下:

1
2
3
4
5
6
7
CREATE TABLE #tbMain(id INT IDENTITY(1,1), Line VARCHAR(20) NOT NULL, Part_num VARCHAR(9) NOT NULL, Lv INT)

INSERT INTO #tbMain(Line,Part_num,Lv)
SELECT Replicate('.',@L) + LTrim(str(@L)), B.Part_num, @L+1
FROM BOM B, #tbMain M
WHERE B.Asmb_num = M.Part_num
  AND M.Lv = @L

為什麼呢?
一般繁體中文版 MSSQL 建置時多數人都會用預設定序 Chinese_Taiwan_Stroke_CI_AS
但是其中一個資料庫是從別的環境附加進來的,該資料庫定序是用 Chinese_Taiwan_Stroke_BIN
一般來說,在同一個資料庫中的資料表的定序都會使用資料庫預設值
此問題常發生於處理兩個資料庫的資料表進行 JOIN 關聯之時
而建立臨時表 #tbMain 會使用 TempDB 資料庫的空間與定序
而 TempDB 資料庫的定序使用伺服器的定序設定
所以當 JOIN 這兩個不同定序的資料表時,字串欄位就無法進行比對而回應錯誤

可以將程式碼中的

1
WHERE B.Asmb_num = M.Part_num

改成

1
WHERE B.Asmb_num COLLATE Chinese_Taiwan_Stroke_BIN = M.Part_num COLLATE Chinese_Taiwan_Stroke_BIN

強制轉換成為相同定序後就可以正常執行了

另外因為本狀況是使用臨時表,所以也可以在建立時就指定欄位定序

1
2
3
4
5
CREATE TABLE #tbMain(
id INT IDENTITY(1,1),
Line VARCHAR(20) COLLATE Chinese_Taiwan_Stroke_BIN NOT NULL,
Part_num VARCHAR(9) COLLATE Chinese_Taiwan_Stroke_BIN NOT NULL,
Lv INT)

這樣就不必在每個 JOIN 指令中強制轉換定序
不過最好還是將資料庫轉換成與伺服器相同的定序

Leave a Comment

報表設計時要選擇適當的字型

報表的設計對企業應用來說是很重要的,想要清楚的顯現資訊,在字型的選擇上也是一個學問。當報表列印出來後會因為字體選擇不當在加上列印設備的品質與重複影印或傳真等等過程造成累積失真越來越嚴重。

在數字就常會有誤認的部份例如:6 與 8 與 9 這三個數字。而字母與數字會誤認的例如數字 1 與 L 的英文小寫 l 之間的混淆,還有數字 0 與英文大寫 O 之間的混淆,以及數字 2 與英文 Z 的混淆。

目前我的作法是在中文的部份使用固定寬度的細明體,而純英文與數字的使用 Times New Roman 字型。

Leave a Comment

  • 工商服務

    廣告讀取中...
  • 近期留言

  • 標籤

  • 彙整