SQL메소드에 따른 Cursor이슈

Chance·2023년 4월 19일

이슈
SQL SELECT 쿼리문 작성 후 결과값을 Cursor반환형으로 return받을 때 결과값이 0으로 찍히는 현상 발생
반대로 쿼리의 return형을 int로 변경 후 결과값을 보면 정상적인 값을 반환.

과정.1

  • Cursor반환형 자체는 가지고 있는데, get으로 값을 받아오지 못한다.
  • 다양한 get메소드를 사용해도 마찬가지

과정.2

  • 일단, 리턴값 자체가 null이 아니기 때문에 값은 리턴이 되었다는 뜻.
  • Cursor자체의 문제로 판단

과정.3

  • Cursor는 포인터처럼 해당 데이터베이스의 위치값을 가르키는 자료구조
  • moveToFirst, moveToNext로 해당 cursor의 위치값을 변경
  • 값이 정상적으로 나옴.

해결방안.
SQL함수 사용 할 때 : moveToFirst or Next
SQL함수 사용 안할 때 : 곧바로 get메소드 사용

= SQL 함수 활용 시 Cursor의 자료구조로 결과값을 새로 만듦,
함수를 사용하지 않을 때는 새로운 Cursor를 만들지 않고 사용

0개의 댓글