泰國片 片名:友誼,我和你 愛情傷心片 慘慘慘 推薦大家看 別問我劇情,因為太好看了... |
2012年1月19日 星期四
2012年1月17日 星期二
【電影推薦】從心開始 Reign Over Me
心得:故事前面、中間很淡,內容講的很慢,卻在電影最後一節10分鐘講了以上那段話,讓我哭的亂七八糟。
2012年1月16日 星期一
Windows Service 2003 / SQL 2000 / IIS_Web 無法連線 1433 問題
剛安裝好以下設備,所出現問題
架設: A電腦
Windows Serivce 2003 / SQL 2000
架設: B電腦
Windows Serivce 2003 / IIS (Web Service)
兩層式架構
B電腦Web 抓不到連線,A電腦 SQL 2000 資料庫
原因: SQL 2000 必需要升級到 SP 4版本,Windows Service 2003 才能開Port 1433出來
SQL 2000 SP 4 升級完後,可以測試下指令
一、開始\執行\cmd
二、netstat -na
三、查閱有無1433 port 開放
以上動作就能解決 連線不到的問題
架設: A電腦
Windows Serivce 2003 / SQL 2000
架設: B電腦
Windows Serivce 2003 / IIS (Web Service)
兩層式架構
B電腦Web 抓不到連線,A電腦 SQL 2000 資料庫
原因: SQL 2000 必需要升級到 SP 4版本,Windows Service 2003 才能開Port 1433出來
SQL 2000 SP 4 升級完後,可以測試下指令
一、開始\執行\cmd
二、netstat -na
三、查閱有無1433 port 開放
以上動作就能解決 連線不到的問題
2012年1月7日 星期六
我的自足、自在、常樂
我天生資質普普,家庭給予我穩定的生活,感謝父母到不讓我為錢煩腦,三餐有著落,衣服有人洗,要吃飯時有飯吃,四肢健全及健康的身體!,現今吾長大了,獨立自主,不讓父母操心,養活自我,金錢而是身外之外(但沒錢還是要自己去賺錢),何必羨慕別人,人生該有的都有,已比其它人好上千萬倍了,要知足常樂,末須強求一切事物,要努力能會有收獲,要動頭腦才會有高收成,而不是看別人的好,靠人不如靠已,重要的是感謝一切那麼自然、自在!
2011年12月29日 星期四
Distinct 不能做到的 多欄 或 多個欄位 的 做法
Distinct 只能撈一個欄位出來,後面的連帶欄位無法撈出,所以我們用另外一種做法
假設【A1資料表】裡面有,編號有重複,要過濾編號又要最新的更改次數,連後面的【公司名稱、姓名、地址、電話】都要一併撈出
【做法】
From裡面 select 編號,Max(更新次數) from A1 group by 編號 建一個 【A2 資料表】
另外後面 再加上原本的 【A1 資料表名稱】
然後在 Where 比對我們要的最新資料
WHERE A2.編號 = A1編號 and a2.更新次數 = A1.更新次數
資料就能抓出來了
主要再於A2 只有撈兩個關鍵欄位,再去WHERE 裡面 比對資料
【研究花費我四個小時】
SQL指令如下:
SELECT 編號,公司名稱,姓名,地址,電話 from
(select 編號,Max(更新次數) from A1 group by 編號) A2 , A1
WHERE A2.編號 = A1編號 and a2.更新次數 = A1.更新次數
2011年12月28日 星期三
2004年 第一本 QBQ!問題背後的問題 心得
我最近在圖書館讀到一本書想推薦給大家
這是一本能解決問題的書,聽起來好像很棒的一本書,
因為你聽我講好像有翻就有答案出現的書,但答案卻在自己身上
書裡面所點出來的方法,卻是最難實踐~
這是2004年第一本 QBQ的書
書名:QBQ!問題背後的問題
出版:2004 年
如何讓問題找到答案,尋找答案中而碰到的礙障
我認為這本書,在把我的毛病挑出來,也在發覺我的毛病
也許有些人已經生活在這本QBQ法則裡面,我由心裡佩服他們
因為自我能不靠書籍而提升到某種境界,就是佛家的「悟、禪」之理
附件檔一:我做了一點心得記錄,也分享給大家!心得好像大多都是字,請多包涵~
附件檔二:我在網路找到的簡報,比較有趣一點!可以引起大家看這本書!
大家如果有好書也可以分享給我~
附件檔一:我的心得_QBQ問題背後的問題
附件檔二:有趣簡報_問題背後的問題
2011年12月18日 星期日
My dream - 我的夢想 Travel Guitar Person
2011/12/?
My dream is to travel all over th world.
Travel Guitar Person - Singing
1.Hoobastank - The Reason
2.山崎まさよし - one more time one more chance
3.Eric Clapton - Tears In Heaven
4.James Blunt - You're beautiful
5.Jonathan Rhys Meyers - This Time
6.Beck - slip out
7.Santana - Europa (演奏曲)
8.陳奕迅 - 好久不見
9.伍佰 - 如果這都不算愛
10.陳柏霖 - 我不會喜歡你
11.COLOR樂團 - 鐵人
12.乱彈阿翔 - 完美落地
13.自創曲 - 遺失的小孩
14.Jealous Guy
Guitar travel
My dream is to travel all over th world.
Travel Guitar Person - Singing
1.Hoobastank - The Reason
2.山崎まさよし - one more time one more chance
3.Eric Clapton - Tears In Heaven
4.James Blunt - You're beautiful
5.Jonathan Rhys Meyers - This Time
6.Beck - slip out
7.Santana - Europa (演奏曲)
8.陳奕迅 - 好久不見
9.伍佰 - 如果這都不算愛
10.陳柏霖 - 我不會喜歡你
11.COLOR樂團 - 鐵人
12.乱彈阿翔 - 完美落地
13.自創曲 - 遺失的小孩
14.Jealous Guy
Guitar travel
2011年12月12日 星期一
SQL 語法雜碎 - 字串處理
SQL 常用字串處理語法說明:包含 substring、left、right、upper、lower、ltrim、rtrim、、、
- 取字串中部分字元
- SELECT Mem_ID, substring(Mem_ID,4,6) AS MEM_ID_6 FROM members
- 語法:substring(欄位, 起始字元, 取幾字元)
- ex: A123456789 => substring(Id,4,6) => 456789
- 取左側字元
- SELECT LEFT(engname,5) FROM members
- 語法:left(欄位, 位數)
- ex: SELECT LEFT('abcdefghijk',5) => abcde
- 取右側字元
- SELECT RIGHT(engname,5) FROM members
- 語法:right(欄位, 位數)
- ex: SELECT RIGHT('abcdefghijk',5) => ghijk
- 字串大小寫轉換 upper、lower
- SELECT upper(engname) FROM members
- 語法:upper(欄位)
- ex: michael => upper => MICHAEL
- SELECT lower(engname) FROM members
- 語法:lower(欄位)
- ex: MICHAEL => lower => michael
- 去除無謂空白 ltrim、rtrim
- SELECT LTRIM(email) FROM members
- 語法:ltrim(欄位)
- ex: " abd@com" => ltrim => "abd@com"
- SELECT RTRIM(memo) FROM members
- 語法:rtrim(欄位)
- ex:"Have a nice day. " => rtrim =>"Have a nice day."
Reference : SQL 字串處理函式 http://technet.microsoft.com/zh-tw/library/ms181984.aspx
2011年12月5日 星期一
2011年11月30日 星期三
股票基本入門 2011.12.01 (二)
中鋼100年
配息1.99元x1000股=1990元
配股50股x目前股價29.35=1468元 ...(1990+1468)/(31x1000)=報酬率11%
31=是我的成本
為什麼中鋼要多點, 因為是半國營企業,官股,龍頭股,權值股, 一個字''穩''
正新100年
配息2元x1000股=2000元
配股200股x目前股價68.2=13640元 ...(2000+13640)/(61x1000)=報酬率26%
61=是我的成本
中華電100年
配息5.52元x1000股=5520元 ...5.52/股價100=報酬率6%
如果你所投資的公司有賺錢的話,公司通常會將扣除所有開銷後所得的純利潤分配給股東,這稱作股利。股利分為兩種:「現金股利」跟「股票股利」,或稱無償配股,現金股利指的就是公司發放的是現金,股票股利則指公司發放的是股票。當公司發放現金股利時,叫做除息;發放股票股利時,叫做除權。
除權參考價=前一日交易日收盤價/(1+配股率)
除息參考價=前一日交易日收盤價—現金股利
假如:除權息前一日收盤價 50元,除權 1元,跟除息 1元
※1.只除權 1元,50 / ( 1 + 0.1 ) = 45.45元
其中( 1 + 0.1 )的意思是
原股數為 1,無償配股 1元,每股 10元,所以 1 / 10 = 0.1
每 1股配發 0.1股,原來的 1股變成 1.1股。
※2.只除息 1元,50 - 1 = 49元
※3.除權息各 1元,( 50 - 1 ) / 1.1 = 44.54元
除權息之後,您手上的股票市值是不會變的。
也就是說除權息不能讓你賺錢,讓你賺錢的是配完權息後,股票的漲跌
2011年11月26日 星期六
無法存取 IIS Metabase [xp iis vs2010]
IIS 顯示這行訊息... 無法存取 IIS Metabase
無法存取 IIS Metabase。
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外詳細資訊: System.xxxxxxxxxxxxxx: 無法存取 IIS Metabase。
用來執行 ASP.NET 的處理序帳戶必須擁有 IIS Metabase (例如 IIS://servername/W3SVC) 的讀取權限。如需修改 Metabase 使用權限的詳細資訊,請參閱 http://support.microsoft.com/?kbid=267904。
後來找到資料是說...重新安裝一次 .net framework就可以了
所以步驟為下...
開始 -> Microsoft Visual Studio -> Visual Studio Tools -> Visual Studio Command Prompt (Visual Studio 2008 命令提示字元) 中執行
aspnet_regiis -i
重新啟動IIS 就正常了....
無法存取 IIS Metabase。
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外詳細資訊: System.xxxxxxxxxxxxxx: 無法存取 IIS Metabase。
用來執行 ASP.NET 的處理序帳戶必須擁有 IIS Metabase (例如 IIS://servername/W3SVC) 的讀取權限。如需修改 Metabase 使用權限的詳細資訊,請參閱 http://support.microsoft.com/?kbid=267904。
後來找到資料是說...重新安裝一次 .net framework就可以了
所以步驟為下...
開始 -> Microsoft Visual Studio -> Visual Studio Tools -> Visual Studio Command Prompt (Visual Studio 2008 命令提示字元) 中執行
aspnet_regiis -i
重新啟動IIS 就正常了....
2011年11月24日 星期四
C# SqlTransaction 交易方式
SqlConnection conn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DBconnStr"].ToString());
2 conn.Open();
3 SqlCommand command = new SqlCommand();
4 SqlTransaction transaction;
5 //Start Transaction
6 transaction = conn.BeginTransaction();
7 command.Connection = conn;
8 command.Transaction = transaction;
9 try
10 {
11 for (int i = 0; i < 5; i++)
12 {
13 command.CommandText = "insert into demouser values(newid(),'TestBatch')";
14 command.ExecuteNonQuery();
15 }
16 //Commit
17 transaction.Commit();
18 }
19 catch (Exception ex)
20 {
21 //有問題即Rollback
22 transaction.Rollback();
23 }
24 command.Connection.Close();
2 conn.Open();
3 SqlCommand command = new SqlCommand();
4 SqlTransaction transaction;
5 //Start Transaction
6 transaction = conn.BeginTransaction();
7 command.Connection = conn;
8 command.Transaction = transaction;
9 try
10 {
11 for (int i = 0; i < 5; i++)
12 {
13 command.CommandText = "insert into demouser values(newid(),'TestBatch')";
14 command.ExecuteNonQuery();
15 }
16 //Commit
17 transaction.Commit();
18 }
19 catch (Exception ex)
20 {
21 //有問題即Rollback
22 transaction.Rollback();
23 }
24 command.Connection.Close();
2011年11月22日 星期二
OFFICE OWC (Office Web Components)
相關教學連結:http://www.cnblogs.com/brucenan999/archive/2008/10/28/1321125.html
EXCEL
OWC :全名(Office Web Components)
只支援到OFFICE 2003 版本: OWC 12 版 (OWC 9、OWC 10、OWC11、OWC12)
每個版本對應的【CLSID】都不一樣,元件安裝也不一樣
使用方式,必需安裝OFFICE ,要不然就是要上微軟下載 OWC 來安裝使用
OWC9 spreadsheet升級至OWC11的若干問題.
由於現有系統從OWC9升級至OWC11,遇到一些小問題,記錄如下,供參考:
1. COM組件升級
OWC9的CLSID是0002E510-0000-0000-C000-000000000046
OWC11的CLSID是0002E559-0000-0000-C000-000000000046,直接替換.當然機子上要裝上OWC11的組件.
2. 自動行列寬度調整
OWC9中的AutoFitColumns()改為Columns.AutoFit()
3. 鎖定單元格
OWC9: Spreadsheet1.Activesheet.Range("").FreezePanes(X)
OWC11: Spreadsheet1.ActiveSheet.Range("").Select();
Spreadsheet1.ActiveWindow.FreezePanes = true
4. 位置
OWC9中的HAlignment調整為OWC11的HorizontalAlignment
值為Constants.xlHAlignRight, xlHAlighLeft and so on.
5. 邊線
OWC9中的Borders.LineStyle = owcLineStyleSolid值改為Constants.xlContinuous
關於這一點,有點疑問,在OWC11的說明文檔中,OWC9中支持的owcLineStyleSolid常量還有有描述的,但是在OWC11中使用總是出錯,而改為xlContinuous等類型即可,不知道是怎麼回事,還望知情人共享,謝謝.
版本 類別字串 說明 Office (2000-2002)
9.0 0002E500-0000-0000-C000-000000000046
【office 2000】
0002E510-0000-0000-C000-000000000046
10.0
0002E556-0000-0000-C000-000000000046
11.0
0002E55D-0000-0000-C000-000000000046
【XP】
0002E559-0000-0000-C000-000000000046
EXCEL
OWC :全名(Office Web Components)
只支援到OFFICE 2003 版本: OWC 12 版 (OWC 9、OWC 10、OWC11、OWC12)
每個版本對應的【CLSID】都不一樣,元件安裝也不一樣
使用方式,必需安裝OFFICE ,要不然就是要上微軟下載 OWC 來安裝使用
OWC9 spreadsheet升級至OWC11的若干問題.
由於現有系統從OWC9升級至OWC11,遇到一些小問題,記錄如下,供參考:
1. COM組件升級
OWC9的CLSID是0002E510-0000-0000-C000-000000000046
OWC11的CLSID是0002E559-0000-0000-C000-000000000046,直接替換.當然機子上要裝上OWC11的組件.
2. 自動行列寬度調整
OWC9中的AutoFitColumns()改為Columns.AutoFit()
3. 鎖定單元格
OWC9: Spreadsheet1.Activesheet.Range("").FreezePanes(X)
OWC11: Spreadsheet1.ActiveSheet.Range("").Select();
Spreadsheet1.ActiveWindow.FreezePanes = true
4. 位置
OWC9中的HAlignment調整為OWC11的HorizontalAlignment
值為Constants.xlHAlignRight, xlHAlighLeft and so on.
5. 邊線
OWC9中的Borders.LineStyle = owcLineStyleSolid值改為Constants.xlContinuous
關於這一點,有點疑問,在OWC11的說明文檔中,OWC9中支持的owcLineStyleSolid常量還有有描述的,但是在OWC11中使用總是出錯,而改為xlContinuous等類型即可,不知道是怎麼回事,還望知情人共享,謝謝.
版本 類別字串 說明 Office (2000-2002)
9.0 0002E500-0000-0000-C000-000000000046
【office 2000】
0002E510-0000-0000-C000-000000000046
10.0
0002E556-0000-0000-C000-000000000046
11.0
0002E55D-0000-0000-C000-000000000046
【XP】
0002E559-0000-0000-C000-000000000046
2011年11月21日 星期一
富爸爸,窮爸爸
2011年11月19日 星期六
轉載:如何安裝market app 到 android 2.3 emulator
模擬器沒有 market app 總是有種空洞感, 茲感謝國外能人, 已能安裝在最新的Android 2.3 SDK.
真期待3.0 honeybomb 版~ 可惜還沒看到.
以下為安裝 market app 到 android 2.2/2.3 的安裝說明
1. Download and install Android SDK. 下載安裝 android SDK. (設定android emulator 教學如後 how to set up an Android Emulator)
2. 到目錄 …….\android-sdk_r08-windows\android-sdk-windows\platforms\android-9\images (預設資料夾, 多會在我的文件, downloads 資料夾內 SDK Platform Android 2.3, API 9, revision 1), 複製 system.img, 貼到 C:\Users\Username\.android\avd\Emulator’s name.avd
3. 下載以下三個檔案: Vending.apk, GoogleServicesFramework.apk and ADB.zip ;下載完解壓縮後將三個檔案放到 …….\android-sdk_r08-windows\android-sdk-windows\tools. (在 Android 2.3 SDK, adb files 被移到其他的目錄, anyway, 懶的深究, 照做可行就是了)
3. 按 Winkey+R, 鍵入 cmd 按 Enter. 叫出 command prompt DOS 視窗, 接著到以下目錄 …….\android-sdk_r08-windows\android-sdk-windows\tools (提醒, 按 cc .. (回上層目錄) 或 cd 目錄名稱 來移動).
4. 鍵入: emulator –avd tech-recipes –partition-size 100 and hit Enter ( tech-recipes 指的是你的 emulator 的名稱). 這個指令是叫出 android emulator. (請不要用SDK manager 來叫出android emulator, 會無法完成安裝.)
5. 再叫出另一個command prompt window (DOS 視窗), 到以下目錄 …….\android-sdk_r08-windows\android-sdk-windows\tools , 鍵入 adb -s emulator-5554 shell 並按 Enter
(模擬器emulator 要完全啓動完成, 並注意模擬器的編號 (多為5554) 鍵入 mount 按 Enter. 以下畫面會出現, 請找 /dev/block/mtdblock0 /system yaffs2 ro 00.
6. 鍵入 mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system 按 Enter. 會重啓系統並進入 read-write 模式. (因為我們將要複製一些檔案到 /system/app ) 鍵入 chmod 777 /system/app 按 Enter. 接著離開, 鍵入 exit, 按 Enter. 流程會像以下圖示:
7. 此步驟, 我們將複製 Vending.apk 與 GoogleServicesFramework.apk 到 /system/app. 在第二個 command prompt window(DOS 視窗), 鍵入 adb -s emulator-5554 push Vending.apk /system/app/ 按 Enter. 同樣地, 另一個檔案也用同樣方式鍵入 adb -s emulator-5554 push GoogleServicesFramework.apk /system/app/. 按 Enter. 流程如下圖:
8. 現在,自 /system/app 移除 SdkSetup.apk (如果不移除, 下次SDK重啓會還原設定). 在第二個 command prompt window(DOS 視窗), 鍵入 adb shell rm /system/app/SdkSetup.apk , 按 Enter.
9. 關掉模擬器
10. 到 C:\Users\Username\.android\avd\Emulator’s name.avd 目錄並刪除下面二個檔案: userdata-qemu.img and cache.img. 啓動你的android emulator, 你會發現 Android Market 已經安裝成功了 ^^
轉載:http://dontung.wordpress.com/2011/03/14/hello-world/
真期待3.0 honeybomb 版~ 可惜還沒看到.
以下為安裝 market app 到 android 2.2/2.3 的安裝說明
1. Download and install Android SDK. 下載安裝 android SDK. (設定android emulator 教學如後 how to set up an Android Emulator)
2. 到目錄 …….\android-sdk_r08-windows\android-sdk-windows\platforms\android-9\images (預設資料夾, 多會在我的文件, downloads 資料夾內 SDK Platform Android 2.3, API 9, revision 1), 複製 system.img, 貼到 C:\Users\Username\.android\avd\Emulator’s name.avd
3. 下載以下三個檔案: Vending.apk, GoogleServicesFramework.apk and ADB.zip ;下載完解壓縮後將三個檔案放到 …….\android-sdk_r08-windows\android-sdk-windows\tools. (在 Android 2.3 SDK, adb files 被移到其他的目錄, anyway, 懶的深究, 照做可行就是了)
3. 按 Winkey+R, 鍵入 cmd 按 Enter. 叫出 command prompt DOS 視窗, 接著到以下目錄 …….\android-sdk_r08-windows\android-sdk-windows\tools (提醒, 按 cc .. (回上層目錄) 或 cd 目錄名稱 來移動).
4. 鍵入: emulator –avd tech-recipes –partition-size 100 and hit Enter ( tech-recipes 指的是你的 emulator 的名稱). 這個指令是叫出 android emulator. (請不要用SDK manager 來叫出android emulator, 會無法完成安裝.)
5. 再叫出另一個command prompt window (DOS 視窗), 到以下目錄 …….\android-sdk_r08-windows\android-sdk-windows\tools , 鍵入 adb -s emulator-5554 shell 並按 Enter
(模擬器emulator 要完全啓動完成, 並注意模擬器的編號 (多為5554) 鍵入 mount 按 Enter. 以下畫面會出現, 請找 /dev/block/mtdblock0 /system yaffs2 ro 00.
6. 鍵入 mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system 按 Enter. 會重啓系統並進入 read-write 模式. (因為我們將要複製一些檔案到 /system/app ) 鍵入 chmod 777 /system/app 按 Enter. 接著離開, 鍵入 exit, 按 Enter. 流程會像以下圖示:
7. 此步驟, 我們將複製 Vending.apk 與 GoogleServicesFramework.apk 到 /system/app. 在第二個 command prompt window(DOS 視窗), 鍵入 adb -s emulator-5554 push Vending.apk /system/app/ 按 Enter. 同樣地, 另一個檔案也用同樣方式鍵入 adb -s emulator-5554 push GoogleServicesFramework.apk /system/app/. 按 Enter. 流程如下圖:
8. 現在,自 /system/app 移除 SdkSetup.apk (如果不移除, 下次SDK重啓會還原設定). 在第二個 command prompt window(DOS 視窗), 鍵入 adb shell rm /system/app/SdkSetup.apk , 按 Enter.
9. 關掉模擬器
10. 到 C:\Users\Username\.android\avd\Emulator’s name.avd 目錄並刪除下面二個檔案: userdata-qemu.img and cache.img. 啓動你的android emulator, 你會發現 Android Market 已經安裝成功了 ^^
轉載:http://dontung.wordpress.com/2011/03/14/hello-world/
2011年11月17日 星期四
vs 2010 標籤 規範需要加入 alt屬性 ie7狀態下
最近遇到一個問題, 就是標籤中的alt屬性並不會顯示在畫面中(我的環境是XP/IE7)
但是不加alt屬性, VS2008執行網頁時會出現警告如下
警告 1 驗證 (XHTML 1.0 Transitional): 'img' 項目遺漏必要的 'alt' 屬性。
google的結果如下,
alt的屬性在W3C定義中是用在當圖片無法正常顯示時, 用來替代的文字
我故意將標籤中的src屬性修改成不存在的檔名, 並定義alt內容如下
執行結果(環境XP/IE7下執行)
1.JPG (2.25 KiB) 被瀏覽 146 次
但是經測試IE6, IE7, IE8後發現, 在IE6及IE8環境下的alt屬性會被直接當作title來使用, 但是alt並不是title
為了避免每當使用標籤時就會出現警告訊息及配合IE6/IE8的顯示方式(只有IE6/IE8會莫名其妙的直接把alt當title來秀...), 請使用標籤時記得加上
alt=""
若是有使用畫面說明的需求(如下圖), 請一律使用title屬性來達到需求, 不要直接利用alt屬性(因為IE7及其他瀏覽器並不會顯示出alt)
2.JPG (8.93 KiB) 被瀏覽 146 次
總結, 達到上圖中的效果, HTML語法應如下
*未考慮資源檔貼字
以上
三商電腦股份有
但是不加alt屬性, VS2008執行網頁時會出現警告如下
警告 1 驗證 (XHTML 1.0 Transitional): 'img' 項目遺漏必要的 'alt' 屬性。
google的結果如下,
alt的屬性在W3C定義中是用在當圖片無法正常顯示時, 用來替代的文字
我故意將標籤中的src屬性修改成不存在的檔名, 並定義alt內容如下
執行結果(環境XP/IE7下執行)
1.JPG (2.25 KiB) 被瀏覽 146 次
但是經測試IE6, IE7, IE8後發現, 在IE6及IE8環境下的alt屬性會被直接當作title來使用, 但是alt並不是title
為了避免每當使用標籤時就會出現警告訊息及配合IE6/IE8的顯示方式(只有IE6/IE8會莫名其妙的直接把alt當title來秀...), 請使用標籤時記得加上
alt=""
若是有使用畫面說明的需求(如下圖), 請一律使用title屬性來達到需求, 不要直接利用alt屬性(因為IE7及其他瀏覽器並不會顯示出alt)
2.JPG (8.93 KiB) 被瀏覽 146 次
總結, 達到上圖中的效果, HTML語法應如下
*未考慮資源檔貼字
以上
三商電腦股份有
img 的 alt 屬性和 title 屬性的差異
img
可以下 alt
屬性,也可以下 title
屬性。兩者的差異其實很微妙…alt
屬性是當這張圖被刪掉、叉燒包、網路壞掉等狀況,反正無法顯示時,顯示給瀏覽器及瀏覽者的「替代文字」( ALTernate text )。title
屬性是當滑鼠游標移過去 (mouseover) 的時候,顯示在圖案旁邊的「標題」;很多標籤都可以使用這個屬性,例如 a
也可以。當
img
只有指定 alt
屬性時,原本應該要在圖片變成叉燒包時才顯示出來。但 ie 卻把 alt
當成 alt+title 來用,所以當圖有正常顯示的時候,也會把 alt
屬性的內容以 title
的方式顯示出來…Meta 指令運用
meta 是用來在HTML文檔中模擬HTTP協議的響應頭報文,放於網頁中的與間。
meta 的屬性有name和http-equiv兩種,name屬性主要用於描述網頁性質並對應於content(網頁內容),以方便搜索引擎機器人(網站蜘蛛)查找及分類(目前幾乎所有的搜索引擎都使用網上機器人自動查找meta值來給網頁分類)。
讓搜索引擎容易找到您:
語法範例
網頁內文關鍵字,可使用中、英文均可
每個關鍵字用逗號(,)隔開;最好不要加上空白,例如:"key word keyword",因有些搜尋引擎會將它們視為三個不同的字,有些搜尋引擎會把它們當成一個字(視空白為一個字母)。理論上,您可以加上無數個和您的網頁有關的關鍵字。
阻擋所有的網路蜘蛛找到您:
name="robots"的屬性說明如下:
all:文件將被檢索,且頁面上的鏈接可以被查詢;
none:文件將不被檢索,且頁面上的鏈接不可以被查詢;
index:文件將被檢索;
follow:頁面上的鏈接可以被查詢;
noindex:文件將不被檢索,但頁面上的鏈接可以被查詢;
nofollow:文件將不被檢索,頁面上的鏈接可以被查詢。
語法範例
...
將上述起始的語法放置在網頁區段中,這個頁面就不會搜尋到,NAME的部份使用「robots」即可阻擋所有的網路蜘蛛,也可以指定特定名稱,例如Googlebot或Yahoo!Slurp,就可阻擋特定網站蜘蛛。CONTENT可指定noindex、nofollow等兩個屬性,noindex意指不可對本頁進行索引動作,nofollow指的是否可使用本頁的超連結再延伸出去擷取搜尋。
標示網頁語言文字編碼:
上例為每15秒自動重新整理(refresh)網頁一次。您若希望網頁每五分鐘自動更新一次,就設定CONTENT="300"(5x60秒=300)。
自動轉址功能:
如果您須要進入網頁的訪客自動被導引至另一個網址時,就可利用網頁自動更新的語法做自動轉址的動作,如下:
如果您要顯示網站搬家訊息給訪客,可以設定停3至10秒以便顯示一段搬家訊息後再轉址,也可以設定為0秒,立即轉址。
網頁有效時期:
Expired 網頁終止標示
01-jan-2002 00:00:01 詳細日期時間
網頁完成時間:
Creation-Date 創作日期標示
01-jan-2001 14:41:01 詳細日期時間
網站相關內容描述:
Description 內容的主要描述
標示網頁作者:
標註本網頁作者姓名等資料
用何編輯器完成的網頁:
meta 的屬性有name和http-equiv兩種,name屬性主要用於描述網頁性質並對應於content(網頁內容),以方便搜索引擎機器人(網站蜘蛛)查找及分類(目前幾乎所有的搜索引擎都使用網上機器人自動查找meta值來給網頁分類)。
- 它必須放於與之間,主要用於本網頁的內容說明,以利自己或別人(搜索引擎)使用,另外也可以製造出一些自動翻頁等特殊效果。
- http-equiv或NAME屬性,必須配合content屬性使用,兩者也可互替使用。
- 後設語法標籤(META description tag)的用法隨各搜索引擎設定有所不同。
- 有無Meta標籤,並不影響網頁正常顯示,其最大目的在於提供網頁各種資訊及產生特殊效果。
讓搜索引擎容易找到您:
語法範例
網頁內文關鍵字,可使用中、英文均可
每個關鍵字用逗號(,)隔開;最好不要加上空白,例如:"key word keyword",因有些搜尋引擎會將它們視為三個不同的字,有些搜尋引擎會把它們當成一個字(視空白為一個字母)。理論上,您可以加上無數個和您的網頁有關的關鍵字。
阻擋所有的網路蜘蛛找到您:
name="robots"的屬性說明如下:
all:文件將被檢索,且頁面上的鏈接可以被查詢;
none:文件將不被檢索,且頁面上的鏈接不可以被查詢;
index:文件將被檢索;
follow:頁面上的鏈接可以被查詢;
noindex:文件將不被檢索,但頁面上的鏈接可以被查詢;
nofollow:文件將不被檢索,頁面上的鏈接可以被查詢。
語法範例
將上述起始的語法放置在網頁區段中,這個頁面就不會搜尋到,NAME的部份使用「robots」即可阻擋所有的網路蜘蛛,也可以指定特定名稱,例如Googlebot或Yahoo!Slurp,就可阻擋特定網站蜘蛛。CONTENT可指定noindex、nofollow等兩個屬性,noindex意指不可對本頁進行索引動作,nofollow指的是否可使用本頁的超連結再延伸出去擷取搜尋。
標示網頁語言文字編碼:
- Content-Type 文件內容格式
- text/html 純文字/超文字
- charset 字元組big5為中文繁體大五碼,如用iso-2022-jp是指日文
上例為每15秒自動重新整理(refresh)網頁一次。您若希望網頁每五分鐘自動更新一次,就設定CONTENT="300"(5x60秒=300)。
自動轉址功能:
如果您須要進入網頁的訪客自動被導引至另一個網址時,就可利用網頁自動更新的語法做自動轉址的動作,如下:
如果您要顯示網站搬家訊息給訪客,可以設定停3至10秒以便顯示一段搬家訊息後再轉址,也可以設定為0秒,立即轉址。
網頁有效時期:
Expired 網頁終止標示
01-jan-2002 00:00:01 詳細日期時間
網頁完成時間:
Creation-Date 創作日期標示
01-jan-2001 14:41:01 詳細日期時間
網站相關內容描述:
Description 內容的主要描述
標示網頁作者:
標註本網頁作者姓名等資料
用何編輯器完成的網頁:
- 標註本網頁作者姓名等資料
- Generator 編輯器
- Mozilla/3.0Gold(Win95)[Netscape] 編輯器等版本說明
- http-equiv="Page-Enter是進入本頁、Page-Exit是離開本頁、Site-Enter是進入本站、Site-Exit是離開本站"。
- content="revealTrans(指定換頁特效)、blendTrans(設定換頁特效為"混合")。
- Duration=設定特效持續的時間(秒),建議在3-5秒之間。
- Transition=以0-23代替特效,如附表及範例。
2011年11月7日 星期一
MS SQL 200 資料型態
資料型態:
資料型態 | 說明 | 範例 |
INT | 長度為 4 個 bytes;介於 -2,147,483,648 與 2,147,483,647 間的整數 | |
SMALLINT | 長度為 2 個 bytes;介於 -32,768 與 32,767 間的整數 | |
TINYINT | 長度為 1 個 bytes;介於 0 與 255 間的整數 | |
BIGINT | 長度為 8 個 bytes;介於 -2^63 與 2^63-1 間的整數 | |
FLOAT[(n)] | n 是儲存 float 數字的小數位數,介於 1 與 53 間; 若 n 介於 1 與 24 間,儲存大小為 4 個 bytes,有效位數為 7 位數;若 n 介於 25 與 53 間,儲存大小為 8 個 bytes,有效位數為 15 位數 | create table p_ex (num1 real, num2 float) insert into p_ex values(4000000.123456789, 4000000.123456789012345) insert into p_ex values(400.123456789, 400.1234567890123456789) select * from p_ex // real 共顯示八位數,float 共顯示 17 位數 |
REAL | 長度為 4 個 bytes;介於 -3.4E-38 與 3.4E+38 間的浮點數;與 FLOAT(24) 相同 | |
DECIMAL[(p[,s])] | 使用 2 到 17 個 bytes 來儲存資料,可儲存的值介於 -1038-1 與 1038-1 之間;p 用來定義小數點兩邊可以被儲存的位數總數目,而 s 代表小數點右邊的有效位數(s < p);p的預設值為 18 而 s 的預設值為0 | create table p_ex (num1 numeric(19,9), num2 decimal) insert into p_ex values(4000000.123456789, 4000000.123456789012345) select * from p_ex |
NUMERIC[(p[,s])] | 與 DECIMAL[(p[,s])] 同 | |
CHAR[(n)] | 固定長度為 n 的字元型態,n 必須介於 1 與 8000 之間 | |
VARCHAR[(n)] | 與 CHAR 相同,只是若輸入的資料小於 n,資料庫不會自動補空格,因此為變動長度之字串 | |
NCHAR 與 NVARCHAR | 與 CHAR 以及 VARCHAR 相同,只是每一個 字元為兩個 bytes 的 unicode,且 n 最大為 4000 | |
DATETIME | 長度為 8 個 bytes;介於 1/1/1753 與 12/31/9999 間的日期時間 | |
SMALLDATETIME | 長度為 4 個 bytes;介於 1/1/1900 與 6/6/2079間的日期時間 | create table d_ex (d1 datetime, d2 smalldatetime) insert into d_ex values ('1/1/1753', 'Jan 2 1900') select * from d_ex |
MONEY | 長度為 8 個 bytes 的整數,小數點的精確度取四位 | |
SMALLMONEY | 長度為 4 個 bytes 的整數,小數點的精確度取四位 | |
BIT | 只佔用一個位元,且不允許存放 NULL 值 | |
BINARY[(n)] | 固定長度為 n+4 個 bytes; n 為 1 到 8000 的值,輸入的 值必需符合兩個條件: (1) 每一個值皆為 0-9、a-f 的值;(2)每一個值的前面必須有 0X | create table b_ex (x binary(1), y binary(2)) insert into b_ex values(0x0, 0x0) insert into b_ex values(0x1, 0x1) insert into b_ex values(0xff, 0xff) insert into b_ex values(0xfff, 0xfff) insert into b_ex values(0xff, 0xfff) insert into b_ex values(0xffff, 0xffff) insert into b_ex values(0xff, 0xffff) select * from b_ex |
VARBINARY[(n)] | 與 BINARY 相同,只是若輸入的資料小於 n,資料庫 不會自動補 0,因此長度為變動的 | |
TEXT | 用來儲存大量的(可高達兩億個位元組)字元資料,儲存空間 以 8k 為單位動態增加 | |
NTEXT | 和 TEXT 雷同,只是儲存的是 Unicode 資料 | |
IMAGE | 和 TEXT 雷同,只是儲存的是影像資料 | |
SQL_VARIANT | 此資料型別可儲存 text、ntext、timestamp 與 sql_variant以外的各種 SQL Server 支援的資料型別。 | a sql_variant column can contain smallint values for some rows, float values for other rows, and char/nchar values in the remainder.create table b_ex (x int, y sql_variant) insert into b_ex values(5, '五十') insert into b_ex values(6, 60) select * from b_ex |
MSSQL 簡體字存入亂碼解決方式
資料庫型態須定義為 ntext 或是 nchar , nvarchar
若定義成一般習慣前面未加 'n' 將只能放本國語系的文字
如果簡體字存入就會變成 '?'
而當 Insert 或是 UPDATE 資料時直接將簡體資料寫入也會變成 '?'
寫法必須改為 INSERT INTO table_name(test) VALUES(N'测试')
在寫入的資料前要加 N 他在存入資料庫時才會去呼掉到擴充字集..
如未加 N 他則是使用 big-5 字集...如果使用 .Net 裡面的 DataApdater 來
Update 資料也要注意 Parameters 裡面的關於每個參數的型態設定..
若定義成一般習慣前面未加 'n' 將只能放本國語系的文字
如果簡體字存入就會變成 '?'
而當 Insert 或是 UPDATE 資料時直接將簡體資料寫入也會變成 '?'
寫法必須改為 INSERT INTO table_name(test) VALUES(N'测试')
在寫入的資料前要加 N 他在存入資料庫時才會去呼掉到擴充字集..
如未加 N 他則是使用 big-5 字集...如果使用 .Net 裡面的 DataApdater 來
Update 資料也要注意 Parameters 裡面的關於每個參數的型態設定..
股票基本入門 2011.11.07 (一)
買進時需(手續費):0.001,425元
賣出時需(手續費):0.001,425元
賣出時需付(證交所稅)0.003元
以上總計 0.0585(基本費用)
1股10元,一張股票1000股
假設:1股10塊錢
你買進1張股票 =1,000股
買:1,000 X 10 X 0.001,425 = 14.25 元手續費
補允說明:14.25元手續費 但最低手續費不買20塊,都收20塊
補允建議:你還是湊買 20塊比較省點錢
每家證券行都有下單手續費 2.5~6折
以剛算的買進:14.25(手續費 ) X 0.6 = 8.55 (折古後手續費)
但是給你打六折手續費也沒用,因為基本手續費就20塊(哈哈哈)
買跟賣一樣都要手續費
賣的時候要多加一個證券交易稅(0.003元)
假設:1,000股 X 10 X 0.00,1425 = 14.25 元 (不足20元,自動調整20元)
100,000 - 20 = 99,980 元
9980 X 0.003 (證券費) = 29.94 元
所以 20 X 2(買.賣) + 29.94 = 69.94 (四捨五入進位:70元)
以上就是演算法,請參考
賣出時需(手續費):0.001,425元
賣出時需付(證交所稅)0.003元
以上總計 0.0585(基本費用)
1股10元,一張股票1000股
假設:1股10塊錢
你買進1張股票 =1,000股
買:1,000 X 10 X 0.001,425 = 14.25 元手續費
補允說明:14.25元手續費 但最低手續費不買20塊,都收20塊
補允建議:你還是湊買 20塊比較省點錢
每家證券行都有下單手續費 2.5~6折
以剛算的買進:14.25(手續費 ) X 0.6 = 8.55 (折古後手續費)
但是給你打六折手續費也沒用,因為基本手續費就20塊(哈哈哈)
買跟賣一樣都要手續費
賣的時候要多加一個證券交易稅(0.003元)
假設:1,000股 X 10 X 0.00,1425 = 14.25 元 (不足20元,自動調整20元)
100,000 - 20 = 99,980 元
9980 X 0.003 (證券費) = 29.94 元
所以 20 X 2(買.賣) + 29.94 = 69.94 (四捨五入進位:70元)
以上就是演算法,請參考
2011年11月6日 星期日
乾巧人之星巴克買一送一個方法
乾巧人之星巴克買一送一個方法
星巴克到今年年底, 持iBon的票根, 就可以到星巴克買一送一
但沒有iBon的票根怎麼辦?!
最快的方法就是去7-11買張 台北->板橋的兒童高鐵票
這樣只要花購票$20元 + iBon手續費$10 = $30
7-11馬上會給你一張iBon的票
這張高鐵票當然不是要你去搭
直接拿這張票, 就可以在星巴克買一送一囉!
但沒有iBon的票根怎麼辦?!
最快的方法就是去7-11買張 台北->板橋的兒童高鐵票
這樣只要花購票$20元 + iBon手續費$10 = $30
7-11馬上會給你一張iBon的票
這張高鐵票當然不是要你去搭
直接拿這張票, 就可以在星巴克買一送一囉!
當然這是兩個人臨時想喝星巴克才會用到的方法
有計畫一點的, 就可以提早弄到一些搭過的高鐵票根
這樣連$30元都可以省下來了.
P.S. 帶著濕衛生紙, 等星巴克店員蓋完章, 就用力地給它擦掉,
下次又是一尾活龍~ 乾巧+1
有計畫一點的, 就可以提早弄到一些搭過的高鐵票根
這樣連$30元都可以省下來了.
P.S. 帶著濕衛生紙, 等星巴克店員蓋完章, 就用力地給它擦掉,
下次又是一尾活龍~ 乾巧+1
Constraints 約束條件 (PK.FK.UC)
NOT NULL 設定該欄立不可含Null 值
UNIQUE 設定一個或多個欄位組合,資料內容需唯一不可重覆
PRIMARY KEY 設定資料表格不可重覆、空白或為Null的主鍵值
FOREIGN KEY 設定該欄位值的存在必須關連並參照指定資料表格的欄位值
CHECK 設定需符合所列示的條件值
注意事項
所有的Constraints資料均會存放在系統資料表格(Data Dictionary)中。建立Constraint時若賦予有意義的名稱,會較易查核Constraint的資料。Constraint標準的命名方式,應加入物件名稱。若未定名,則Oracle會自動以SYS_Cn的唯一名稱為之命名。USER_CONSTRAINTS可查核所設定的 Constraintion資料。
設立Constraints
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr]
[column_constraint],...
[table_constraint][,...]);
Schema:與資料表格擁有者相同的名稱。
Table:設定資料表格名稱。
DEFAULT expr:為欄位設定預設值。
Column:設定資料表格內的欄位名稱。
Datatype:設定欄位資料型態及長度。
Column_constraint:設定欄位層級的約束條件,以維護資料的完整性。
Table_constraint:設定資料表格層級的約束條件,以維護資料的完整性。
ex:
CREATE TABLE emp(
empno NUMBER(4),
ename VARCHAR2(10),...
deptno NUMBER(7,2) NOT NULL,
CONSTRAINT emp_empno_pk
PRIMARY KEY (EMPNO));
建立 Constraints 的層級
欄位層級的 constraint
column [CONSTRAINT constraint_name] constraint_type,
資料表格層級的 constraint
column,...[CONSTRAINT constraint_name] constraint_type(column, ...),
Column 單一欄位的參照設定,可定義任何型態的Constraint。
Table 一個或多個欄位的參照設定,可定義除了NOT NULL以外的,任何型態Constraint。
NOT NULL Constraint的用途
新增資料時,Oracle會對不給值的欄位,預設填入Null值。若確保該欄位值不可為Null值,需於該欄位設定NOT NULL的Constraint條件,當資料異動時,即可自動執行資料內容檢核的動作。
ex:
..deptno NUMBER(7,2)
CONSTRAINT emp_deptno_nn NOT NULL…..
使用 UNIQUE Constraint
為一個或組合性的欄位,設立UNIQUE Constraints可確保一個或組合性的欄位值的資料唯一。為一個欄立設立UNIQUE Constraint時,可接受Null值。
ex:
CREATE TABLE dept(
deptno NUMBER(2),
dname VARCHAR2(14),
loc VARCHAR2(13),
CONSTRAINT dept_dname_uk UNIQUE(dname));
設立UNIQUE Constraint時,Oracle 會隱含式自動為所設立的欄位,建置Unique Index的索引檔。
PRIMARY KEYConstraint
每一個資料表格,僅能擁有一個PRIMARY KEY的Constraints,建立主鍵值。PRIMARY KEY可以是一個欄位或組合式欄位,其欄位值必須唯一且不可含Null值。
ex:
CREATE TABLE dept(
deptno NUMBER(2),
dname VARCHAR2(14),
loc VARCHAR2(13),
CONSTRAINT dept_dname_uk UNIQUE (dname),
CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno));
設立PRIMARY KEY Constraint時,Oracle 會隱含式自動為所設立的欄位,建置Unique Index的索引檔。
FOREIGN KEYConstraint
FOREIGN KEY是維護資料庫資料完整性的Constraint。以FOREIGN KEY偵測一個或組合式欄位,與自有的或其他資料表格的PRIMARY KEY或UNIQUE Constraint欄位建立資料關連。如主檔與明細檔(父子檔)間的關連。單一的 FOREIGN KEY欄位,可接受Null值。設有FOREIGN KEY Constraint條件的欄位值(子檔),必須參照並符合被參照檔(父檔),已存在的欄位值。
ex:
CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno) REFERENCES dept (deptno));
FOREIGN KEY要設定前,應先確定所要參照的PRIMARY KEY 或 UNIQUE 已事先設置完成,可供參照。
FOREIGN KEY 的保留字
FOREIGN KEY定義於子檔中,且子檔含有可參照父檔的關連欄位。
FOREIGN KEY的設定,由下列保留字所組成:
FOREIGN KEY:於子檔設定可關連參照的欄位。
REFERENCES:用以指定所參照的資料表格名稱及欄位名稱。
ON DELETE CASCADE:設定當父檔的資料刪除時,子檔中相關連的明細資料,亦會一併被刪除。
若未設定ON DELETE CASCADE,在刪除父檔的資料時,若子檔仍有相關連的明細資料存在,會產生錯誤訊息。
CHECK Constraint
若以CHECK Constraint為欄位設定列示值條件,資料表格中的每一筆資料列,均需符合所列示的限制條件。一個欄位,可設定多個CHECK Constraint列示條件,衹要邏輯條件不衝突,CHECK Constraint 的個數不限。CHECK Constraint,可設立於資料表格或欄位層級。
ex:
CONSTRAINT emp_deptno_ck
CHECK (DEPTNO BETWEEN 10 AND 99),...
每一資料列的資料內容,均需滿足檢核條件
不可做為檢核條件的表述句:
參照 CURRVAL, NEXTVAL, LEVEL, 及 ROWNUM 等虛擬欄位名稱呼叫 SYSDATE, UID, USER, 及 USERENV 等函數使用
以其它資料列的資料內容做為檢核條件
新增Constraints
於資料表格建置完成後,可使用ALTER TABLE..ADD方式新增Constraint。
Table:設定資料表格名稱。
Constraint:Constraint的保留字及所指定的Constraint名稱。
Type:設定所要新增的Constraint 種類。
Column:設定Constraint運作的欄位名稱。
ALTER TABLE table
ADD [CONSTRAINT constraint] type (column);
Constraint可以新增、刪除、啟動或關閉,但不能更改其架構。
欲在已建置完成的資料表格,新增NOT NULL Constraint時,需於 ALTER TABLE 指令中,使用 MODIFY子句,否則無法設立。新增NOT NULL Constraint 時,若資料表格中已有資料,Constraint會進行檢核,若已存在有Null值,設立Constraint時會產生錯誤訊息。
ex:
ALTER TABLE emp
ADD CONSTRAINT emp_mgr_fk
FOREIGN KEY(mgr) REFERENCES emp(empno);
刪除Constraints
刪除Constraint前,可先查核系統資料表格中的USER_CONSTRAINTS及USER_CONS_COLUMNS資料內容。確定需求後,再進行刪除作業。
ALTER TABLE table
DROP PRIMARY KEY | UNIQUE (column) |
CONSTRAINT constraint [CASCADE];
DROP指令,若使用CASCADE子句,可將有參照關連的Constraint一併刪除。
關閉Constraints
對於不想刪除再重建的Constraint,可使用ALTER TABLE..DISABLE指令,暫時性關閉Constraint的檢核作用。
ALTER TABLE emp
DISABLE CONSTRAINT
emp_empno_pk CASCADE;
DISABLE子句,可使用於CREATE TABLE 及ALTER TABLE語法中。
CASCADE子句,可同時關閉有參照關連的Constraint作用。
啟動Constraints
對於被設定為DISABLE的Constraint,可使用ALTER TABLE…..ENABLE指令,重新啟動Constraint的檢核作用。
ALTER TABLE table
ENABLE CONSTRAINT constraint;
啟動Constraint作用時,會對資料表格中的所有資料列,檢核欄位值的合理性,故已存在的資料內容,需符合Constraint 的檢核條件。
啟動UNIQUE或PRIMARY KEY的Constraint 時,Oralce會自動為所設定的欄位,建置一個Unique Index索引檔。
ENABLE子句,可使用於CREATE TABLE 及ALTER TABLE語法中。
查核Constraints資訊
資料表格建置完成後,若以DESC指令查驗資料表格的檔案結構,針對Constraint,衹能查看是否有NOT NULL的Constraint記錄。若要查看資料表格上的所有Constraint設定,可查核USER_CONSTRAINTS系統資料表格檔。若 Constraint設立之初,使用者未設定Constraint名稱,所查看到的會是系統所配置的系統名稱。
SELECT constraint_name,constraint_type,search_condition
FROM user_constraints
WHERE table_name = 'EMP';
USER_CONSTRAINT的Constraint Type欄位值定義:
P:Primary key。
R:Foreign key。
U:Unique。
C:Check 或 Not Null。
查核USER_CONS_COLUMNS
USER_CONS_COLUMNS系統資料表格,可查核Constraint所對應的欄位名稱。尤其是查核系統自動配置的系統名稱(SYS_Cn)所對應的欄位,非常有效。常與USER_CONSTRAINTS的查核,搭配使用。
ex:
SELECT constraint_name,column_name
FROM user_cons_columns
WHERE table_name = 'EMP';
UNIQUE 設定一個或多個欄位組合,資料內容需唯一不可重覆
PRIMARY KEY 設定資料表格不可重覆、空白或為Null的主鍵值
FOREIGN KEY 設定該欄位值的存在必須關連並參照指定資料表格的欄位值
CHECK 設定需符合所列示的條件值
注意事項
所有的Constraints資料均會存放在系統資料表格(Data Dictionary)中。建立Constraint時若賦予有意義的名稱,會較易查核Constraint的資料。Constraint標準的命名方式,應加入物件名稱。若未定名,則Oracle會自動以SYS_Cn的唯一名稱為之命名。USER_CONSTRAINTS可查核所設定的 Constraintion資料。
設立Constraints
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr]
[column_constraint],...
[table_constraint][,...]);
Schema:與資料表格擁有者相同的名稱。
Table:設定資料表格名稱。
DEFAULT expr:為欄位設定預設值。
Column:設定資料表格內的欄位名稱。
Datatype:設定欄位資料型態及長度。
Column_constraint:設定欄位層級的約束條件,以維護資料的完整性。
Table_constraint:設定資料表格層級的約束條件,以維護資料的完整性。
ex:
CREATE TABLE emp(
empno NUMBER(4),
ename VARCHAR2(10),...
deptno NUMBER(7,2) NOT NULL,
CONSTRAINT emp_empno_pk
PRIMARY KEY (EMPNO));
建立 Constraints 的層級
欄位層級的 constraint
column [CONSTRAINT constraint_name] constraint_type,
資料表格層級的 constraint
column,...[CONSTRAINT constraint_name] constraint_type(column, ...),
Column 單一欄位的參照設定,可定義任何型態的Constraint。
Table 一個或多個欄位的參照設定,可定義除了NOT NULL以外的,任何型態Constraint。
NOT NULL Constraint的用途
新增資料時,Oracle會對不給值的欄位,預設填入Null值。若確保該欄位值不可為Null值,需於該欄位設定NOT NULL的Constraint條件,當資料異動時,即可自動執行資料內容檢核的動作。
ex:
..deptno NUMBER(7,2)
CONSTRAINT emp_deptno_nn NOT NULL…..
使用 UNIQUE Constraint
為一個或組合性的欄位,設立UNIQUE Constraints可確保一個或組合性的欄位值的資料唯一。為一個欄立設立UNIQUE Constraint時,可接受Null值。
ex:
CREATE TABLE dept(
deptno NUMBER(2),
dname VARCHAR2(14),
loc VARCHAR2(13),
CONSTRAINT dept_dname_uk UNIQUE(dname));
設立UNIQUE Constraint時,Oracle 會隱含式自動為所設立的欄位,建置Unique Index的索引檔。
PRIMARY KEYConstraint
每一個資料表格,僅能擁有一個PRIMARY KEY的Constraints,建立主鍵值。PRIMARY KEY可以是一個欄位或組合式欄位,其欄位值必須唯一且不可含Null值。
ex:
CREATE TABLE dept(
deptno NUMBER(2),
dname VARCHAR2(14),
loc VARCHAR2(13),
CONSTRAINT dept_dname_uk UNIQUE (dname),
CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno));
設立PRIMARY KEY Constraint時,Oracle 會隱含式自動為所設立的欄位,建置Unique Index的索引檔。
FOREIGN KEYConstraint
FOREIGN KEY是維護資料庫資料完整性的Constraint。以FOREIGN KEY偵測一個或組合式欄位,與自有的或其他資料表格的PRIMARY KEY或UNIQUE Constraint欄位建立資料關連。如主檔與明細檔(父子檔)間的關連。單一的 FOREIGN KEY欄位,可接受Null值。設有FOREIGN KEY Constraint條件的欄位值(子檔),必須參照並符合被參照檔(父檔),已存在的欄位值。
ex:
CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno) REFERENCES dept (deptno));
FOREIGN KEY要設定前,應先確定所要參照的PRIMARY KEY 或 UNIQUE 已事先設置完成,可供參照。
FOREIGN KEY 的保留字
FOREIGN KEY定義於子檔中,且子檔含有可參照父檔的關連欄位。
FOREIGN KEY的設定,由下列保留字所組成:
FOREIGN KEY:於子檔設定可關連參照的欄位。
REFERENCES:用以指定所參照的資料表格名稱及欄位名稱。
ON DELETE CASCADE:設定當父檔的資料刪除時,子檔中相關連的明細資料,亦會一併被刪除。
若未設定ON DELETE CASCADE,在刪除父檔的資料時,若子檔仍有相關連的明細資料存在,會產生錯誤訊息。
CHECK Constraint
若以CHECK Constraint為欄位設定列示值條件,資料表格中的每一筆資料列,均需符合所列示的限制條件。一個欄位,可設定多個CHECK Constraint列示條件,衹要邏輯條件不衝突,CHECK Constraint 的個數不限。CHECK Constraint,可設立於資料表格或欄位層級。
ex:
CONSTRAINT emp_deptno_ck
CHECK (DEPTNO BETWEEN 10 AND 99),...
每一資料列的資料內容,均需滿足檢核條件
不可做為檢核條件的表述句:
參照 CURRVAL, NEXTVAL, LEVEL, 及 ROWNUM 等虛擬欄位名稱呼叫 SYSDATE, UID, USER, 及 USERENV 等函數使用
以其它資料列的資料內容做為檢核條件
新增Constraints
於資料表格建置完成後,可使用ALTER TABLE..ADD方式新增Constraint。
Table:設定資料表格名稱。
Constraint:Constraint的保留字及所指定的Constraint名稱。
Type:設定所要新增的Constraint 種類。
Column:設定Constraint運作的欄位名稱。
ALTER TABLE table
ADD [CONSTRAINT constraint] type (column);
Constraint可以新增、刪除、啟動或關閉,但不能更改其架構。
欲在已建置完成的資料表格,新增NOT NULL Constraint時,需於 ALTER TABLE 指令中,使用 MODIFY子句,否則無法設立。新增NOT NULL Constraint 時,若資料表格中已有資料,Constraint會進行檢核,若已存在有Null值,設立Constraint時會產生錯誤訊息。
ex:
ALTER TABLE emp
ADD CONSTRAINT emp_mgr_fk
FOREIGN KEY(mgr) REFERENCES emp(empno);
刪除Constraints
刪除Constraint前,可先查核系統資料表格中的USER_CONSTRAINTS及USER_CONS_COLUMNS資料內容。確定需求後,再進行刪除作業。
ALTER TABLE table
DROP PRIMARY KEY | UNIQUE (column) |
CONSTRAINT constraint [CASCADE];
DROP指令,若使用CASCADE子句,可將有參照關連的Constraint一併刪除。
關閉Constraints
對於不想刪除再重建的Constraint,可使用ALTER TABLE..DISABLE指令,暫時性關閉Constraint的檢核作用。
ALTER TABLE emp
DISABLE CONSTRAINT
emp_empno_pk CASCADE;
DISABLE子句,可使用於CREATE TABLE 及ALTER TABLE語法中。
CASCADE子句,可同時關閉有參照關連的Constraint作用。
啟動Constraints
對於被設定為DISABLE的Constraint,可使用ALTER TABLE…..ENABLE指令,重新啟動Constraint的檢核作用。
ALTER TABLE table
ENABLE CONSTRAINT constraint;
啟動Constraint作用時,會對資料表格中的所有資料列,檢核欄位值的合理性,故已存在的資料內容,需符合Constraint 的檢核條件。
啟動UNIQUE或PRIMARY KEY的Constraint 時,Oralce會自動為所設定的欄位,建置一個Unique Index索引檔。
ENABLE子句,可使用於CREATE TABLE 及ALTER TABLE語法中。
查核Constraints資訊
資料表格建置完成後,若以DESC指令查驗資料表格的檔案結構,針對Constraint,衹能查看是否有NOT NULL的Constraint記錄。若要查看資料表格上的所有Constraint設定,可查核USER_CONSTRAINTS系統資料表格檔。若 Constraint設立之初,使用者未設定Constraint名稱,所查看到的會是系統所配置的系統名稱。
SELECT constraint_name,constraint_type,search_condition
FROM user_constraints
WHERE table_name = 'EMP';
USER_CONSTRAINT的Constraint Type欄位值定義:
P:Primary key。
R:Foreign key。
U:Unique。
C:Check 或 Not Null。
查核USER_CONS_COLUMNS
USER_CONS_COLUMNS系統資料表格,可查核Constraint所對應的欄位名稱。尤其是查核系統自動配置的系統名稱(SYS_Cn)所對應的欄位,非常有效。常與USER_CONSTRAINTS的查核,搭配使用。
ex:
SELECT constraint_name,column_name
FROM user_cons_columns
WHERE table_name = 'EMP';
2011年11月3日 星期四
【2011/11/03】股票開市交易時間
2、交易時間 | |||||||||||||||||||||
| |||||||||||||||||||||
3、因應主管機關規定,電子交易須使用CA憑證,請先申請證後再下單。 | |||||||||||||||||||||
4、每筆交易最低手續費為20元。 | |||||||||||||||||||||
5、本公司提供之報價資訊僅供參考,所有報價及交易資訊以各交易所之資料為準。 |
2011年10月24日 星期一
Windows XP 修改遠端桌面連線 port
1. 啟動「登錄編輯程式」。
2. 找出並按一下下列登錄子機碼:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber
3. 在 [編輯] 功能表上,按一下 [修改],再按一下 [十進位]。
4. 輸入新的連接埠編號,然後按一下 [確定]。
5. 結束「登錄編輯器」。
2011年10月20日 星期四
【2012/12/27 - 完成此目標】MCTS 認證第一步.就是它了!
70-561 中文重點翻譯 Microsoft .NET Framework 3.5, ADO.NET Application Development
網址:http://www.dotblogs.com.tw/regionbbs/archive/2009/02/15/70-561.aspx
網址:http://www.dotblogs.com.tw/regionbbs/archive/2009/02/15/70-562.aspx
中文重點翻譯:70-536: TS: Microsoft .NET Framework, Application Development Foundation 介紹
網址:http://www.dotblogs.com.tw/regionbbs/archive/2008/10/09/5641.aspx
考試地址:台北市公園路30號3樓(TI19)
台北 Prometric TI19 GJUN Information Taipei Co Ltd 23826015 3RD Floor NO.30 Gungyuan Road Jungjeng Chiu
http://zh.wikipedia.org/wiki/%E5%BE%AE%E8%BB%9F%E8%AA%8D%E8%AD%89%E6%8A%80%E8%A1%93%E5%B0%88%E5%93%A1
【2012/12/27 - 完成此目標】
http://zh.wikipedia.org/wiki/%E5%BE%AE%E8%BB%9F%E8%AA%8D%E8%AD%89%E6%8A%80%E8%A1%93%E5%B0%88%E5%93%A1
【2012/12/27 - 完成此目標】
訂閱:
文章 (Atom)