我用vc寫了一段oracle存儲blob字段的代碼,4000字節都可以存儲,4001以上就不可以,而且語句執行成功了,另外一個非blob字段更新成功了,blob字段卻變空了,直接用plsql可以把4000字節以上的數據更新進去的,代碼執行結果卻是我描述的現象,不知道有沒有碰到過同樣問題的
strSql.Format(_T("update %s set ConvertFlag=%d,CADDATA=? where objectId=%ld"),strLayer,2,objectId);
Cmd.SetConnection(&Connect);
Cmd.SetCommandText(strSql);
Cmd.SetCommandType(adCmdText);
Cmd.Append(Cmd.CreateParameter(_T("@CADDATA"),adVarBinary,adParamInput,-1,varBLOB));
Cmd.Execute(bRtn,adCmdText);
SafeArrayDestroy(psa);
找到原因了,連接時候的Provider應該是oledb不是msdaora