在SQLite Android游标中识别列的数据类型
发布时间:2020-12-12 19:08:47 所属栏目:百科 来源:网络整理
导读:有没有办法在 Android中识别游标中列的数据类型.游标对象有许多方法来获取列名,列值. 我想找出列的SQLite数据类型(TEXT,INTEGER)等… 我正在编写一个通用函数来解析游标并执行操作.我只会得到一个sql字符串作为函数的参数. 根据SQLite文档( http://www.sqlit
有没有办法在
Android中识别游标中列的数据类型.游标对象有许多方法来获取列名,列值.
我想找出列的SQLite数据类型(TEXT,INTEGER)等… 我正在编写一个通用函数来解析游标并执行操作.我只会得到一个sql字符串作为函数的参数. 根据SQLite文档( http://www.sqlite.org/datatype3.html),SQLite中的列没有数据类型 – 这些列中的值可以.
如果您使用的是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()调用的结果,那么(我预期)会失败. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |