Предупреждение «Строковые данные, усечение справа» в операторе выбора

Я масштабирую базу данных Access 2003 до SQL Server Express 2008. Кажется, что таблицы созданы нормально, а данные выглядят нормально.

У меня есть приложение MFC, которое подключается к этой базе данных. Он работал нормально, подключаясь к доступу, но когда я подключаюсь к SQL Server, я получаю следующую ошибку в операторе select.

DBMS: Microsoft SQL Server
Version: 10.50.1600
ODBC Driver Manager Version: 03.80.0000
Warning: ODBC Success With Info on field 0.
String data, right truncation

State:01004,Native:0,Origin:[Microsoft][ODBC SQL Server Driver]

Возвращаемые данные должны содержать 8 символов, но только 7 с урезанием правого символа.

Интерфейс доступа может правильно считывать данные из SQL Server.

Поле в таблице SQL Server определяется как nvarchar длиной 8.

Код для чтения поля выглядит примерно так

CDatabase Database;
CString sSerialNumber = "00000000";
CString SqlString;

CString sDsn = "Driver={SQL Server};Server=server\\db;Database=Boards;Uid=uid;Pwd=pwd;Trusted_Connection=False";
Database.Open(NULL,false,false,sDsn);

CRecordset recset( &Database );
SqlString.Format("Select SerialNumber from boards where MACAddress = '%s'",mac);
recset.Open(CRecordset::forwardOnly,SqlString,CRecordset::readOnly);
recset.GetFieldValue("SerialNumber",sSerialNumber);

После этого sSerialNumber должен быть 12345678, но его 1234567

Спасибо за помощь

5
задан JonDrnek 12 August 2010 в 20:51
поделиться