을 감안할 때 : 테이블 T
sqlite : 선택한 열의 열 ID를 얻는 방법?
T
10 개 컬럼이 들어있는 테이블
- SQLite는 데이터베이스 -
C0
,C1
...C9
합니다.sqlite3_stmt
포인터select C3,C2 from T
OK 대응
sqlite3_column_XXX
가족 (http://www.sqlite.org/capi3ref.html#sqlite3_column_blob)를 사용하여 선택된 열 값을 가져올 수 sqlite3_stmt *s;
sqlite3_prepare_v2(db, query, sizeof(query), &s, NULL);
while ((result = sqlite3_step(s)) == SQLITE_ROW)
{
const char *v3 = reinterpret_cast<const char *>(sqlite3_column_text(s, 0);
const char *v2 = reinterpret_cast<const char *>(sqlite3_column_text(s, 1);
}
무엇 I 필요한 것은 인 선택한 열의 실제 인덱스, 즉 v3
의 경우 3, v2
의 경우 2입니다.
동기 부여 : 반환 된 문자열 값을 실제 열 유형으로 구문 분석 할 수 있기를 바랍니다. 사실, 내 스키마는 c3
이 datetime
이고, sqlite는 TEXT
으로 취급됩니다. 따라서 sqlite3_column_type(s, 0)
은 SQLITE3_TEXT
을 반환하지만 테이블 메타 데이터 (pragma table_info(T)
에서 사용 가능)는 해당 열의 의도 유형 인 datetime
문자열을 유지합니다. 그것을 알면, 나는 반환 된 문자열을 신기원 이후의 각각의 유닉스 시간으로 파싱 할 수있다.
하지만 어떻게 내가 테이블 열 인덱스에 대한 질의 열 인덱스에 매핑 할 수 있습니다 :
- 질의 열 0-> 테이블 열 3
- 질의 열 1-> 테이블 열이
을 감사.
더 높은 수준의 우려 사항에 해당 정보를 삽입하는 것이 고려 되었습니까? * 테이블 바에서 쿼리하는 foo가 * 알고있는 코드는 일부 열의 날짜를 원한다고 선언 할 수 있습니다. 그렇지 않으면 실제로 설계되지 않았거나 잘 지원 될 것으로 기대되는 시스템에서의 내성에 의존합니다. –