2012-10-14 2 views
3

Android 플랫폼에서 사용하는 sqlite 데이터베이스가 있습니다.컬럼 유형 NONE in sqlite

런타임에 테이블을 만들었습니다. 내 SQL은 :

CREATE TABLE funcs (id INTEGER PRIMARY KEY AUTOINCREMENT, func_name TEXT, param NONE) 

이 테이블의 각 행은 내 프로그램에서 함수를 호출합니다. 매개 변수는 각 행에 대해 유형을 변경합니다. 테이블

class FunctionDB 
{ 
    private ContentValues mContentValues; 

    public FunctionDB(Cursor cursor) 
    { 
     DatabaseUtils.cursorRowToContentValues(cursor, this.mContentValues); 
    } 

    public int getID() 
    { 
     return this.mContentValues.getAsInteger("id"); 
    } 

    public String getName() 
    { 
     return this.mContentValues.getAsString("func_name"); 
    } 

    public ??? getParam() 
    { 
     return this.mContentValues.getAs???("param"); 
    } 

} 

의 한 행을 미리

또한, 내가 생성 한 클래스 I이 클래스는 일반적인 함수 타입이어야합니다. 그게 의미, 그 기능의 이름을 확인하여, param 열의 유형이 무엇인지 결정하고 싶습니다.

내 코드에 param 열의 제네릭 유형을 수신하려면 어떻게해야합니까?

+0

Cursor 클래스는 이미이 작업을 수행합니다 ... 그러나 항상 ['ContentValues ​​# get()'] (http://developer.android.com/reference/android/content /ContentValues.html#get%28java.lang.String%29) 메소드를 실행하고 원하는대로 오브젝트를 변환하십시오. – Sam

답변

1

the documentation에 따르면 일부 값을 읽는 일반적인 방법은 get을 사용하는 것이며 Object을 반환합니다.

+0

와우, 빠른 답변 주셔서 감사합니다! 코드에서이 열을 어떻게 설정할 수 있습니까? – user1745470

+0

그리고 내 것보다 낫다. +1 – Simon

0

나는이 일을 명확하게 생각할 수 없다.

typeof(columnName) 

은 String으로 데이터 유형을 반환합니다.

String dataType = this.typeof("param"); 

if (dataType.equalsIgnoreCase("TEXT"){ 

if (dataType.equalsIgnoreCase("INTEGER"){ 

...