PRB: Merge Replication Fails with "Process could not enumerate changes" Error Message When Assigning a Blank Value to an Image Column
This article has been archived. It is offered "as is" and will no longer be updated.
When you assign a blank value to an image column table that is part of merge replication, the Merge agent may fail with the following error message:
The process could not enumerate changes at the Subscriber.
Full Message: Invalid argument value
This behavior only happens when the image column is updated to an empty string value such as "" on either the Publishing or Subscribing merge table.
You can check whether you have an empty string value in your image column by viewing the binary value stored in the image column. A binary value of "0x" indicates an empty string value.
This error message occurs because of an incorrect data conversion by the SQLGetData ODBC driver function. The SQLGetData function incorrectly interprets a blank value stored in the image column.
Avoid assigning empty string values ("") to the image columns.
To resolve this merge agent error, UPDATE the image column to a non-empty string value such as NULL or to an actual string value.
Steps to Reproduce Problem
- Run the following CREATE TABLE statement:
Create Table Imagetest1 (c1 int ,c2 image,c3 char(4), c4uniqueidentifier rowguidcol)
- Publish the table for Merge Replication.
- Run the following INSERT statement, which updates the image column to a blank value.
Insert Imagetest1 values(1,'','merge_test',newid())
- Run the Merge agent.The Merge agent fails because of an invalid data type conversion for the image column.
- To resolve this error, run the following UPDATE statement:
The Merge agent now runs successfully.
UPDATE Imagetest1 set image = 'non_blank_value' where c1 = 1
merge image enumerate changes
Article ID: 280684 - Last Review: 01/16/2015 21:11:10 - Revision: 4.0
- Microsoft SQL Server 7.0 Standard Edition
- Microsoft SQL Server 2000 Standard Edition
- kbnosurvey kbarchive kbprb KB280684