【发布时间】:2016-06-30 18:46:13
【问题描述】:
for (int i=0; i< sqlite3_column_count(selectStatement); i++)
{
int intValue = 0;
const char *strValue;
switch (sqlite3_column_type(selectStatement,i))
{
}
}
如何从一行Sqlite3 db中获取列数据类型
Android 等效代码,其中我有全局光标对象并且工作正常:
public Object get(String name, QueryDbType type) throws Exception {
Object retult = null;
int index = cursor.getColumnIndex(name);
switch (type) {
case Text:
retult = cursor.getString(index);
break;
case Int:
retult = cursor.getInt(index);
break;
default:
retult = cursor.getString(index);
break;
}
return retult;
}
【问题讨论】:
-
不容易; Java 是面向对象的,并且具有良好集成的 sqlite3 包装器。基本的 sqlite3 API 是 C 并且 C 不是面向对象的。因此,您正在查看
union或类似的东西,但是您怎么还不知道列类型? -
sqlite3_column_type()已经做了你想做的事。有什么问题? -
他想要一个 C 变种机制来捕获列值。
-
我有一个表格,其中一些字段是 TEXT 和一些罕见的 BLOB,但是当我检查 sqlite3_column_type 时,我总是得到 3。3 表示文本。
标签: ios iphone sqlite column-types