사용자 정의 ContentProvider
에서 입력에 지정된 일부 열을 필터링해야합니다. 텍스트 지향 안드로이드 인터페이스를 감안할 때 이것은 나에게 힘든 시간을줍니다. 문제는이 특정 MyContentProvider
_column_b_에서 이해가되지 않을 수도 있습니다 테이블에 존재하지 않을 것입니다사용자 정의 ContentProvider 함수의 입력 필터링
SELECT column_a, column_b FROM my_table WHERE column_a=1 AND column_b=red;
:
예를 들어 MyContentProvider.query()
의 입력을 효과적으로 같은 것을 요청할 것입니다. 관련 열만 남아 있도록 투영을 필터링하면 String []이기 때문에 쉽게 완료 할 수 있습니다. 그러나이 열에 대해 문자열 "where
"(선택) 및 "selectionArgs
"입력을 필터링하는 것은 쉬운 일이 아닙니다. 올바르게 완료되면 다음과 같이됩니다.
SELECT column_a FROM my_table WHERE column_a=1;
그렇지 않으면 SQLiteException "no such column"
이됩니다.
해당하는 SQL 문에서 열을 무시하거나 필터링하는 쉬운 방법이 있습니까? 아니면 선택 부분에 대해 매우 한정된 regexp 구문 분석 코드를 사용하지만 스마트를 작성해야합니까? 내가 해결하기 위해 인터페이스로 사용자 정의 ContentProvider
을 유지하기 때문에
내가 올바른 입력을받지 못했습니다 이유는,하지만 난 (배경)에 ContentProvider
의 여기에 여러 사용자에게 문의하십시오. 한 가지 방법이나 다른 방법으로, 어딘가에서 선택을 필터링해야합니다.
쿼리를 수행하는 방법이나 SELECT ... WHERE
문을 사용하는 방법은 간단하지 않습니다. 그러나 그것은 query()
함수의 구현과 관련이 있습니다.
저는 이미 이것을하고 있습니다. 내 질문은 이것 저쪽에있다. – pjv