2011-09-26 136 views
2

我在SQLite数据库中查询一些产品,但在2个不同的android基础版本中返回不同的值。android-光标返回错误的值

选择结果database.db3使用SQLite专家:

result

我创建这个代码后选择,测试:在Android 2.2的

 if(cursor.moveToFirst()){ 
      while(!cursor.isAfterLast()){ 
       log("CDPROD:" + cursor.getString(cursor.getColumnIndex("CDPROD"))); 
       cursor.moveToNext(); 
      } 
     } 

登录结果:

09-26 14:30:08.947: INFO/LOGG(20497): CDPROD:000000000000211934 
09-26 14:30:08.967: INFO/LOGG(20497): CDPROD:000000000000211944 
09-26 14:30:08.967: INFO/LOGG(20497): CDPROD:000000000000212020 
09-26 14:30:08.967: INFO/LOGG(20497): CDPROD:000000000000212124 
09-26 14:30:08.967: INFO/LOGG(20497): CDPROD:000000000000214280 
09-26 14:30:08.967: INFO/LOGG(20497): CDPROD:000000000000212886 

Android 2.1下的日志结果:

09-26 14:18:16.772: INFO/LOGG(1039): CDPROD:211934 
09-26 14:18:16.772: INFO/LOGG(1039): CDPROD:211944 
09-26 14:18:16.772: INFO/LOGG(1039): CDPROD:212020 
09-26 14:18:16.772: INFO/LOGG(1039): CDPROD:212124 
09-26 14:18:16.772: INFO/LOGG(1039): CDPROD:214280 
09-26 14:18:16.772: INFO/LOGG(1039): CDPROD:212886 

这是Android中的一个bug?

+1

“CRPOD”列的数据类型是什么? –

+0

为该列设置了什么类型的亲和力? –

+0

CDPROD Varchar2(25) – Rodrigo

回答

0

您需要在您创建SQLiteTables为列类型textstringvarchar使用。看来如果你把string它会trim你的领先zeros。另见SQLite Data Types

编辑:根据这answer: Versions of SQLite in Android,他们有不同SQLite versions

+0

Ok.But为什么android版本有这些差异? – Rodrigo