在SQLite Android游标中识别列的数据类型

前端之家收集整理的这篇文章主要介绍了在SQLite Android游标中识别列的数据类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法在 Android中识别游标中列的数据类型.游标对象有许多方法获取列名,列值.

我想找出列的sqlite数据类型(TEXT,INTEGER)等…

我正在编写一个通用函数来解析游标并执行操作.我只会得到一个sql字符串作为函数的参数.

根据sqlite文档( http://www.sqlite.org/datatype3.html),sqlite中的列没有数据类型 – 这些列中的值可以.

Any column in an sqlite version 3 database,except an INTEGER PRIMARY KEY column,may be used to store a value of any storage class.

如果您使用的是API级别11或更高级别,则游标支持getType()(请参阅http://developer.android.com/reference/android/database/AbstractWindowedCursor.html#getType(int)).

如果您使用的是较早的API级别,并且您知道给定游标中的所有结果都来自同一个表,那么您可以执行类似(未经测试)的操作:

// Assumes "cursor" is a variable that contains the cursor you're
// interested in.

String tableName = "..."; // The name of the table
sqliteDatabase db = cursor.getDatabase();
String[] names = cursor.getColumnNames();

for (name : names) {
    Cursor typeCursor = 
        db.rawQuery("select typeof (" + name + ") from " + tableName;
    typeCursor.moveToFirst();
    Log.v("test","Type of " + name + " is " + typeCursor.getString(0);
}

但是,如果传入的游标(例如)是连接两个或多个表的db.rawQuery()调用的结果,那么(我预期)会失败.

猜你在找的Sqlite相关文章