none
Потеря данных при сохранении в varchar(max), nvarchar(max), text, ntext RRS feed

  • Общие обсуждения

  • Клиент написан на С++ с использованием ODBC, БД была на MSDE2000 для доступа использовался ODBC Driver {SQL Server}.
    После перевода БД на SQL Server 2008 R2 Express с использованием {SQL Server Native Client 10.0} возникли проблемы с text, ntext, image(чтение выполняется нормально, при сохранении или добавлении сохраняется только 12 символов), после конвертации всех типов text, ntext, image в varchar(max), nvarchar(max), varbinary(max) проблема осталась. Отмечу что при использовании {SQL Native Client} с типами text, ntext, image проблем не возникает, а с типами varchar(max), nvarchar(max), varbinary(max) появляется эта проблема.
    12 октября 2011 г. 13:07

Все ответы

  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]
    17 октября 2011 г. 5:31
  • Can you show some code used to save the data? The problem sounds like something is wrong in the code, because SQL Server correctly saves the data of the mentioned types.
    For every expert, there is an equal and opposite expert. - Becker's Law


    My blog
    18 октября 2011 г. 1:12
  • Here's the code to store data in database:
    if (RETCODE_IS_SUCCESSFUL(rc))
    {
    	rc = SQLBulkOperations(m_hstmt, SQL_ADD);
    
    	_SQLCall(SQL_HANDLE_STMT, m_hstmt, rc);
    
    	if (rc == SQL_NEED_DATA)
    	{
    	      FC_BLOB* pblob;		
    	
    	      while ((rc = SQLParamData(m_hstmt, (SQLPOINTER*) &pblob)) == SQL_NEED_DATA)
    	      {
    	           _SQLCall(SQL_HANDLE_STMT, m_hstmt, rc);
    
    	          rc = SQLPutData(m_hstmt, pblob->data, pblob->size);
    	
    	          _SQLCall(SQL_HANDLE_STMT, m_hstmt, rc);
    	      }
    	}
    }
    
    when using SQL Server works fine,
    using the SQL Native Client 10.0, the database recorded only the first 12characters
    21 ноября 2011 г. 9:04
  • It may be related to the bug in SQL Server Native Client. Take a look at this Connect item (please vote also).

    http://connect.microsoft.com/SQLServer/feedback/details/467300/problem-with-varchar-max-via-sql-native-client

    I am not 100% sure it's relevant to your case, but sounds like it is.


    For every expert, there is an equal and opposite expert. - Becker's Law


    My blog

    • Изменено Naomi N 21 ноября 2011 г. 14:05
    21 ноября 2011 г. 14:04