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

在SQLite Android游标中识别列的数据类型,第1张

概述有没有办法在 Android中识别游标中列的数据类型.游标对象有许多方法来获取列名,列值. 我想找出列的SQLite数据类型(TEXT,INTEGER)等… 我正在编写一个通用函数来解析游标并执行 *** 作.我只会得到一个sql字符串作为函数的参数. 根据SQLite文档( http://www.sqlite.org/datatype3.html),SQLite中的列没有数据类型 – 这些列中的值可以. 有没有办法在 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 tablesqliteDatabase 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 Android游标中识别列的数据类型全部内容,希望文章能够帮你解决在SQLite Android游标中识别列的数据类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1160456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存