2011-01-29 76 views
1

如果我叫JetSetColumn()來代替JET_coltypLongBinary值的內容操作工程,我期望 - 價值被替換可以使用JetSetColumns替換JET_coltypLongBinary值嗎?

但是,如果我叫JetSetColumns()的值不會被替換 - 而非值保持在它的舊價值。奇怪的是其他列(不是很長)會按預期更新。沒有錯誤返回。

相同的行爲發生JET_coltypLongText - 使我不知道是否JetSetColumns()不能用於長值?

提示?

回答

1

您可能沒有在JET_SETCOLUMN結構中設置itagSequence。這是API的非顯而易見的'功能'。

「使用ESENT時常見的編程錯誤是在更新列值時使用itagSequence爲0默認情況下,JET_SETINFO和JET_SETCOLUMN結構是用itagSequence爲0初始化的。這適用於插入(它必須創建一個新的但在更新記錄時,默認行爲是創建列的新實例,而不是更新現有列的實例。要覆蓋現有列,必須設置itagSequence,即使該列是單值的。 「

http://managedesent.codeplex.com/wikipage?title=MultiValueTutorial

+0

,以確保我的理解 - (?只是硬編碼本,它會工作都INSERT和UPDATE)我需要itagSequence設置爲1 – stuck

+0

硬編碼itagSequence 1將被罰款 –

相關問題