Jon*_*nek 5 sql-server ms-access mfc odbc
我正在将访问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]
Run Code Online (Sandbox Code Playgroud)
返回的数据应为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);
Run Code Online (Sandbox Code Playgroud)
在此之后,sSerialNumber应该是12345678但是它的1234567
谢谢您的帮助
我同意这与驱动程序有关。{SQL Server} 驱动程序是为与 SQL 2000 一起使用而引入的。{SQL Native Client} 是随 2005 一起推出的。理想情况下,对于 2008 数据库,您应该使用最新的 {SQL Server Native Client 10.0}。较新的驱动程序向后兼容旧版本的 SQL Server。
| 归档时间: |
|
| 查看次数: |
17185 次 |
| 最近记录: |