2011年1月28日 星期五

CHECK CYCLE BEFORE ADD NEW RECORD

SELECT * FROM BOM;

A B
B C
C D

--CHECK CYCLE BEFORE ADD NEW RECORD ('D','E') => NO CYCLE ERROR
SELECT COUNT(*) FROM
(
SELECT CONNECT_BY_ISCYCLE CYCLE_ERROR,P,C
FROM
(
SELECT P,C
FROM BOM
START WITH P ='A' CONNECT BY NOCYCLE PRIOR C = P
UNION
SELECT 'D','E' FROM DUAL
)FAKE_BOM
START WITH P ='A' CONNECT BY NOCYCLE PRIOR C = P
)
WHERE CYCLE_ERROR = 1;

0

--CHECK CYCLE BEFORE ADD NEW RECORD ('D','B') => CYCLE ERROR
SELECT COUNT(*) FROM
(
SELECT CONNECT_BY_ISCYCLE CYCLE_ERROR,P,C
FROM
(
SELECT P,C
FROM BOM
START WITH P ='A' CONNECT BY NOCYCLE PRIOR C = P
UNION
SELECT 'D','B' FROM DUAL
)FAKE_BOM
START WITH P ='A' CONNECT BY NOCYCLE PRIOR C = P
)
WHERE CYCLE_ERROR = 1;

1

2011年1月27日 星期四

ORA-01436: CONNECT BY loop in user data, How to Find Cycle Record

DESC BOM
Name Null Type
---- -------- ------------
P NOT NULL VARCHAR2(20)
C NOT NULL VARCHAR2(20)

--NO CYCLE DATA
SELECT * FROM BOM
ORDER BY P;

A B
B C
C D

--NO CYCLE DATA + SELECT
SELECT LEVEL,P,C, SYS_CONNECT_BY_PATH(P,'\')
FROM BOM
START WITH P ='A' CONNECT BY PRIOR C = P;

1 A B \A
2 B C \A\B
3 C D \A\B\C

--LOOP DATA
SELECT * FROM BOM
ORDER BY P;

A B
B C
C D
D A

--CYCLE DATA + SELECT = ORA-01436: CONNECT BY loop in user data
SELECT LEVEL,P,C, SYS_CONNECT_BY_PATH(P,'\')
FROM BOM
START WITH P ='A' CONNECT BY PRIOR C = P;

ORA-01436: CONNECT BY loop in user data
01436. 00000 - "CONNECT BY loop in user data"
*Cause:
*Action:

--CYCLE DATA + SELECT(NOCYCLE)
SELECT LEVEL,P,C, SYS_CONNECT_BY_PATH(P,'\')
FROM BOM
START WITH P ='A' CONNECT BY NOCYCLE PRIOR C = P;

1 A B \A
2 B C \A\B
3 C D \A\B\C
4 D A \A\B\C\D

--CYCLE DATA + SELECT(CONNECT_BY_ISCYCLE,NOCYCLE) = GET CYCLE RECORD(MAYBE)
SELECT LEVEL,CONNECT_BY_ISCYCLE,P,C, SYS_CONNECT_BY_PATH(P,'\')
FROM BOM
START WITH P ='A' CONNECT BY NOCYCLE PRIOR C = P;

1 0 A B \A
2 0 B C \A\B
3 0 C D \A\B\C
4 1 D A \A\B\C\D <-- CYCLE RECORD(MAYBE)

2011年1月19日 星期三

以兩次 ORACLE IMPORT 解決 IMPORT 時 CREATE VIEW,FUNCTION 失敗的問題

以兩次 ORACLE IMPORT 解決 IMPORT 時 CREATE VIEW,FUNCTION 失敗的問題
ORACLE Import twice to solve the problem
that Create View Fail in Import

Iimport Data Usually With User one by one,
However, the situation will encounter some failures,
In Create View, fcunction ...

Create View Fail by reference Table to import yet
Twice Import to solve the problem

PASS1 STANDARD IMPORT

IMP USR_A/USR_A@ORCL FILE=C:\USR_A.DMP FULL=Y BUFFER=1024000 LOG=C:\IMP_P1_USR_A.LOG
IMP USR_B/USR_B@ORCL FILE=C:\USR_B.DMP FULL=Y BUFFER=1024000 LOG=C:\IMP_P1_USR_B.LOG
IMP USR_C/USR_C@ORCL FILE=C:\USR_C.DMP FULL=Y BUFFER=1024000 LOG=C:\IMP_P1_USR_C.LOG

PASS2 IMPORT USE SKILL FOR LOSS VIEW FUNCTION.....

IMP USR_A/USR_A@ORCL FILE=C:\USR_A.DMP IGNORE=Y ROWS=N STATISTICS=NONE FULL=Y BUFFER=1024000 LOG=C:\IMP_P2_USR_A.LOG
IMP USR_B/USR_B@ORCL FILE=C:\USR_B.DMP IGNORE=Y ROWS=N STATISTICS=NONE FULL=Y BUFFER=1024000 LOG=C:\IMP_P2_USR_B.LOG
IMP USR_C/USR_C@ORCL FILE=C:\USR_C.DMP IGNORE=Y ROWS=N STATISTICS=NONE FULL=Y BUFFER=1024000 LOG=C:\IMP_P2_USR_C.LOG

2011年1月17日 星期一

Windows 7 程式暫時以系統管理員身分執行

How to Run a Program as an Administrator in Windows 7 Temporary

I.
按下 [Ctrl] + [Shift] + 開啟程式
Press and hold Ctrl+Shift while opening the program.

II.
如果出現 UAC(使用者帳戶控制)請按 YES
If prompted by UAC (User Account Control),
then click on Yes to apply permission to allow the program
to run with full permission as an Administrator.

III.
如果還需要系統管理員權限,請提供系統管理員權限,如果非系統管理員,
請先準備好系統管理員帳號密碼。
If you are doing this is while logged in as standard user instead of an administrator,
then you will need to provide the administrator's password
before the program will run as administrator.

2011年1月14日 星期五

VB.NET Windows Application 如何開啟 Word 樣板(*.dot)

How VB.NET Windows Application to open an Word Template(*.dot)

Shell("C:\123.dot") '失敗,變成文件1 Fail ,Docutment1
System.Diagnostics.Process.Start("C:\123.dot") '失敗,變成文件1 Fail ,Docutment1

'成功開啟123.dot
'Success open as 123.dot
'Way1
Dim myProcess As New Process

Try

myProcess.StartInfo.FileName = "C:\123.dot"
myProcess.StartInfo.Verb = "Open"
myProcess.StartInfo.CreateNoWindow = True
myProcess.Start()

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try


'Way 2
Dim wdApp As Object ' Declare variable to hold the reference.

Try

wdApp = CreateObject("WORD.Application")
wdApp.Visible = True
wdApp.Application.WindowState = wdWindowStateMaximize
wdApp.DOCUMENTS.Open("C:\123.dot")
wdApp = Nothing

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try


VS2005 使用者設定

VS2005 開發時,使用者設定

刪灌後,VS2005 原本習慣的設定跑啦
就在第一次使用 VS2005 時的導引下使用了 Visual Basic 開發設定
實在有點兩光ㄟ,和以往設定不像,和 VS2003也不像,
很多細部是自動設定,調整很費工
想來想去不是辦法,仔細瞧 一下,是可以改的

VS2005 -> 工具 -> 匯入和匯出設定 ->
重設所有設定 -> 下一步 ->
不,直接重設定並覆寫目前的設定 -> 下一步 ->
一般開發設定 -> 完成

.NET 2.0 GUID產生器

所有程式 >
Microsoft Visual Studio 2005 >
Visual Studio Tools >
Visual Studio 2005 命令提示字元 >

Setting environment for using Microsoft Visual Studio 2005 x86 tools.
C:\Program Files\Microsoft Visual Studio 8\VC>guidgen
這樣就可以使用 GUID 產生器


P.S 每一個 .NET 2.0 VS2005 專案都有一組 GUID
要抄程式的時候,記得要把 GUID 換掉
CLR 在過去 60 秒一直無法從 COM 內容 0x1a1d38 轉換為 COM 內容 0x1a1ea8。
擁有該目的內容/Apartment 的執行緒,很可能正在進行非提取等候或正在處理非常長的執行作業,而未提取 Windows 訊息。
這種情況通常會對效能產生負面影響,甚至可能導致應用程式停止回應,或導致記憶體使用量持續隨時間而累積。
若要避免這個問題,所有單一執行緒的 Apartment (STA) 執行緒都應該使用提取等候基本方法 (例如 CoWaitForMultipleHandles),並且在長時間的執行作業中定期提取訊息。


解決方式
Microsoft Visual Studio 2005 Professional Debug(偵錯)
-> Exceptions(例外狀況)
-> Managed Debuging Assistants
-> 取消勾選 ContextSwitchDeadlock 即可

2011年1月13日 星期四

Oracle String Aggregation

Table T,with Varcahr2 Field A,B,C

1.Simple
SELECT A,WM_CONCAT(B) FROM T GROUP BY A

2.Complex
SELECT A,LISTAGG(B,',') WITHIN GROUP (ORDER BY C) FROM T GROUP BY A

2011年1月11日 星期二

Win Server 2008 + IIS7 + Visual Studio 2005(VB.NET)

Microsoft Solution Here:
http://msdn.microsoft.com/zh-tw/library/bb763173(v=vs.100).aspx

IIS7(Vista, Win7, Win server 2008) + Visual Studio 2005
會有 Web Application 無法 Debug 的問題

訊息如下
無法在 web 伺服器上啟動偵錯。偵錯失敗,
偵錯失敗,因為整合式Windows 驗證沒有啟用

完整解法如下:

I.About Windows Server 2008
開始\控制台\程式集\開啟或關閉Windows功能 = 伺服器管理員
伺服器管理員\角色\網頁伺服器(IIS)\角色服務
角色服務中除了啟用IIS時的預設值之外
尚需安裝
1.IIS6管理相容性
2.安全性\WINDOWS驗證

II.About .NET2005
Install .NET2005
Install .NET2005 SP1
Install .NET2005 SP1 Update for W7(or Vista)

III.開啟站台的WINDOWS驗證P.S.Windows 7 Home 沒有 Windows驗證可以安裝