Я масштабирую базу данных Access 2003 до SQL Server Express 2008. Кажется, что таблицы созданы нормально, а данные выглядят нормально.
У меня есть приложение MFC, которое подключается к этой базе данных. Соединение с доступом работало нормально, но при подключении к SQL Server я получаю следующую ошибку в операторе выбора.
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
Спасибо за помощь