2015-12-29 1 views
1

У меня есть столбец в SQL Server 2008 таблица с varchar(100), что при обновлении кидаетКолонка связывания ODBC не является правильным

строковые данные, правое усечение

Столбец сопоставляется с CStringA члена переменная. Когда я пытаюсь обновить его содержимое с помощью строки 64 символов, я получаю исключение выше.

Я нашел, что предел для этой длины столбца, когда я смог записать в таблицу, - 50 символов длинный, любой дополнительный символ вызовет это исключение.

Проблема в том, что у меня есть другой столбец в той же таблице, который имеет тип varchar(50), и я подозреваю, что его длина связана с моей переменной-членом.

Есть ли способ связать длину столбцов вручную или любое другое решение ?!

+1

Я предполагаю, что вы должны использовать 'NVARCHAR (100)' вместо 'VARCHAR (100)' –

+0

@TT. Сначала я тоже так думал, но если у него есть 'CStringA', это должно отлично работать с' CHAR'. Если бы это было связано с 'CStringW', я бы ожидал, что он работал только для первых 50 (широких) символов. @Pavel: Как вы связываете столбцы? Покажите код. – erg

+0

@erg Я должен признать, что с 2002 года у меня был какой-то контакт с C++/MFC, поэтому я не могу прокомментировать это. –

ответ

0

Эта проблема решена! Парень, который написал код до моего использования 'DISTINCT * SELECT ....' в своем запросе. Когда вы используете отдельный * в качестве открытого оператора, вы должны переупорядочить вызовы RFX в DoFieldExchange в том же порядке, что и столбцы, определенные в этой таблице, плюс несколько столбцов отсутствовали, что и послужило причиной моего исключения.

Смежные вопросы