2009-12-09 38 views
0

我在VB.NET中有一個應用程序,它使用ADO.NET連接在更新語句中在DB2中生成一些-301錯誤。在.NET中檢測-301 DB2錯誤

看來,DB2報告發生此錯誤,但隨後修復了任何數據錯誤並重新提交。這個修復和重新提交帶來了額外的開銷,並且反過來也是實際的美元和美分成本,因爲這是大型機DB2。

有沒有辦法以某種方式檢測這個-301錯誤?我無法重現這個問題。我只知道發生這種情況是因爲DB2報告發生了錯誤,但由於我使用了參數化查詢,並且由於DB2的配置,我無法確定參數的值。

在這一點上,我認爲我最好的選擇是將我得到的輸入序列化,然後將它們寫出到xml中,當我的DBA能夠告訴我什麼時候發生錯誤時,我將採用該文件,然後在測試環境中逐個重新處理。也就是說,除非有我可以檢查的內容,如返回代碼,然後通過序列化有問題的對象實例發送錯誤電子郵件。

回答

0

DB2修復並重新提交該語句聽起來很奇怪!
也許在你的程序和DB2之間有一些額外的層來做到這一點?

那麼,當你沒有得到錯誤返回到你的程序,然後...
首先,你可以讓你的DBA發送錯誤的位置號和更新聲明,所以你可以看到哪主機變量是問題。
該變量可能在某些SQL函數中使用。您的DBA應該能夠說出哪些數據類型在那裏被允許。

這裏誤差電子描述鏈接(如果你沒有的話): http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db29.doc.codes/n301.htm

我的回答是不是你要求很什麼,但我不認爲它可以是任何接近。

問候
        Sigersted

1

原因DB2 -301誤差大約在這個article提到DB2錯誤Input host variable or argument not valid.

更多細節。