2010-07-29 6 views
1

Java 코드에서 SQLite를 Zentus 통해 사용하고 있습니다.SQLite 및 Zentus Jdbc 드라이버가있는 긴 유형

자바 long 원시 타입을 데이터베이스에 매핑해야합니다. 이를 위해 다음 문장으로 테이블을 만들려고했습니다 : CREATE TABLE MY TABLE (...., LONG time, ...).

Zentus를 사용하여 Java를 통해 데이터베이스에 삽입하면 완벽하게 작동하지만 항상 Java 및 Zentus를 통해 데이터를 검색하면 LONG 값이 32 비트 값으로 줄어 듭니다.

나는 SQlite로 데이터베이스를 직접 쿼리하려고 했으므로 문제가 JDBC 드라이버라고 생각한다.

여러분 중 일부는 이미 그러한 문제를 경험 했습니까? 어떻게 해결 했습니까?

  • 텍스트
  • 리얼
  • 물방울

일부 키워드가 이러한 유형으로 변환이 알 수없는 키워드 기본 텍스트로

  • 정수 :

  • 답변

    1

    SQLite는 4 기본 유형이 있습니다. "정수"유형은 SQLite가 가장 큰 숫자를 기록하는 데 필요한 최소 크기 만 유지한다는 점에서 조금 특별합니다. 가장 큰 숫자가 2^31보다 작 으면 32 비트로 기록됩니다. 나는 그것이 64 비트로 확장되면 2^31 이상의 모든 값이 제거되거나 그냥 그대로 유지된다면 다시 줄어든다는 것을 모른다. 데이터베이스가 비우면 확실히 축소됩니다.

    dummy 레코드를 64 비트 값으로 유지하고 그 후에 JDBC가 동작하는지 확인해 볼 수 있습니다.

    +0

    답해 주셔서 감사합니다. 즉, 예를 들어 "LONGFOOBAR"유형으로 테이블을 만들 수 있으며 그 결과는 동일 할 것입니까? 언급 한 바와 같이 SQLite 수준에서는 아무 문제가 없다고 생각하지만 JDBC 드라이버에서는 사용하고 있습니다. Java 코드에서 SQLite를 사용합니까? –

    +0

    아니요, 저는 SQLite를 사용하지만 다른 코드를 사용합니다. 그래서 저는 여러분에게 100 % 계몽 된 답변을 드릴 수 없습니다. 유형 "LONGFOOBAR"에 대해서는 내부적으로 "TEXT"가되지만 "LONG"도 있습니다. 유형에 "INT"문자가있는 경우에만 열이 INTEGER로 선언됩니다. 정수를 삽입하면 TEXT 열이 그대로 유지됩니다. .. 글쎄, 난 모르겠지만. 귀하의 커넥터에 대한 INTEGER로 선언 선호. – MPelletier

    +0

    다시 SQLite 입력 정보를 읽고, 그리고 지금, 덕분에, 어떻게 작동하고 내 형식을 수정할 것이라고 숫자 값에 대해 INTEGER 열이 있습니다. 알면서도 수정 했는데도 문제가 있으며 Zentus JDBC 드라이버에 문제가 있다고 생각합니다. 조사 중입니다 ... –