타이타늄에서 SQLite 사용시 주의사항!

엄청난 삽질을 했다. 무려 반나절?

타이타늄 버그인지 원래 그런건지 모르겠지만,..

DB 테이블을 만들때 숫자로 ID 값을 만드는 경우가 있다. 이때 ID의 데이터 타입으로 INTEGER나 TEXT 타입으로 지정할수있는데, INTEGER로 할 경우 MAX_INT 의 범위가 모호하다.

아마 시스템마다 다를 것으로 예상되는데, 정확히 범위가 얼마인지는 테스트 안해봤다.
여튼 ID 값은 유니크해야하므로 INTEGER로 지정할 경우 AUTOINCREMENT 를 지정해 쓸수도 있다.

하지만 부득히 시스템에서 유니크한 값을 결정해 넣을 경우엔 시스템에서 제공하는 getGuid() 같은 함수가 있다면 그걸 사용하고, 없는 경우엔 Date.getTime() 같은 시간함수를 이용해 유니크한 값을 얻을수도 있다.

그렇데 이렇게 숫자로 지정된 타임스템프를 가져올 경우 시스템마다 범위가 달라서 인식을 못할수도 있다는 사실!!.
뚜둥~! 타이타늄에선 인식을 못했다. -_- 제기랄…

해결법은 간단히 INTEGER 속성을 TEXT타입으로 변경하면 된다.
하지만  이 문제를 찾아내는데 8시간을 소비했다

아~ 억울해~ ㅜㅜ
자바스크립트처럼 정밀도 오류를 내주던가…  아무런 오류없이 그냥 안되면 어찌하리오..ㅜㅜ..
여튼 주의하자!!

불꽃남자

UI 개발자

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.