1

JetSetColumn()を呼び出してJET_coltypLongBinary値の内容を置き換えると、操作は期待どおりに機能します-値が置き換えられます

ただし、JetSetColumns()を呼び出すと、値は置き換えられません。代わりに、値は古い値のままになります。奇妙なことに、他の列(長い列ではない)は期待どおりに更新されます。エラーは返されません。

JET_coltypLongTextでも同じ動作が発生します。JetSetColumns()を長い値で使用できないのではないかと思いますか?

チップ?

4

1 に答える 1

1

おそらく、JET_SETCOLUMN 構造体で itagSequence を設定していません。これは、API の明白でない「機能」です。

「ESENT を使用する場合の一般的なプログラミング エラーは、列の値を更新するときに 0 の itagSequence を使用することです。デフォルトでは、JET_SETINFO および JET_SETCOLUMN 構造は 0 の itagSequence で初期化されます。これは、挿入 (レコードの新しいインスタンスを作成する必要がある) で機能します。 ) ただし、レコードを更新するときの既定の動作は、既存の列を更新するのではなく、列の新しいインスタンスを作成することです。既存の列を上書きするには、列が単一値であっても itagSequence を設定する必要があります。"

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

于 2011-01-30T22:49:22.313 に答える