2012年11月21日 星期三

多重步驟操作發生錯誤,請檢查每一個狀態值

當程式在回寫資料至資料庫時,若出現
"多重步驟操作發生錯誤,請檢查每一個狀態值"
的訊息,表示回寫資料庫的某個欄位長度不足,
將資料庫欄位長度修正為適合長度即可!

-----------------------------------------------------------
有時在新增或更新記錄時, 你會看到以下錯誤訊息
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
多重步驟 OLE DB 操作發生錯誤。請檢查每一個可用的 OLE DB 狀態值。尚未完成任何操作。

通常, 那是因為你新增記錄時, 使用的方法為
open recordset...
rs.addnew
rs("...")="XXX"
rs("...")="XXX"
...
rs("...").update
而其中有一欄的值XXX長度過長,才會出現這個錯誤, 你可以試著將所有欄位逐一清查, 以便了解是哪一欄出問題, 就我經驗, 有時問題會出現在你意想不到的地方, 例如電話號碼, 長度為10, 而你明明只輸入8碼, 但仍錯誤, 此時, 你可以將欄位長度加長3倍試試看, 或許可以

除此之外, 建議最好使用以下方法來新增記錄
sSQL = "INSERT INTO myTable(...)VALUES(.....)"
conn.Execute sSQL

雖然對初學者而言, 學習SQL Statement有點慢, 但等你學會了, 就會覺得其他部份也通了

http://www.allenkuo.com/forum/viewthread.asp?mid=688&