글을 길게 쓰다가 클릭의 실수로;; ㅠ.ㅠ
요점만 남길께요~ ^^
제가 처음 질문을 드렸던 부분의 문제해결 핵심은
sql_commit(); 명령입니다.
sql구문 실행후 마무리를 지어주는 명령어가 필요했었네요.ㅠㅠ
여러 DBMS를 접해보지 못하였지만 큐브리드가 MySQL과 구문명령 실행에 있어서 큰 차이점
을 보이는 부분이 아닌가 합니다. 역시 초보의 실수 ㅠㅠ(메뉴얼 대충봤나봐요 ㅠㅠ)
그런데 또 한가지 문제가 발생했었습니다.
그누보드가 처음 생성된 여분필드 wr_10번까지는 값이 없어도 글이 잘 쓰여지는 데 반하여
큐브리드매니저에서 여분필드(wr_11)를 추가하면 오류보고 없이 글이 등록 안됩니다.
그래서 매니저에서 insert 구문을 테스트 해보니 wr_11에 NULL값이라고 오류를 띄우더군요.
wr_11의 NOT NULL 속성을 해제하면 잘 되긴 하지만 분명 wr_10도 NOT NULL속성인데
왜 wr_10은 되고 wr_11은 안되는가? 에 대한 의문을 품고 다시 파고 들었습니다.
결국 그누보드의 처음 DB생성 및 설치 과정에 쓰이는 파일까지 뒤져가며 살펴보는 도중
DEFAULT \'\' 이란 문구들이 보였습니다.
그걸 보자마자 문득 드는 생각이 제가 질문을 드린글 답변 중에서
큐브리드의 특징인 속성을 강하게 검사한다는 것이 떠올랐고 wr_11추가할 때 보이던
DEFAULT를 입력하는 부분이 생각났습니다.
문자의 경우는 싱글쿼테이션을 넣어야 한다는 문구도 있었구요.
처음엔 wr_11추가할 때 기본값이 아무것도 없는 거니까 비워뒀었는데
문자로 인식하지 않아서 NULL로 받아들여진 것 같았습니다.
그래서 DEFAULT에 싱글쿼테이션 두개를 넣어 속성을 바꾸었습니다.
그랬더니 모든 것이 원활하게 작동되더군요.ㅠㅠ
여기서 문제는,
큐브리드 매니저에서 인스턴스가 NULL값일 때는 NULL을 표시해주고
아무것도 없는 문자일 경우는 공백이던데
DEFAULT에서는 NULL값이던지 문자가 공백이던지 표시가 똑같습니다.
실제 속성은 차이가 있지만 보여지는 상태는 똑같아서 원인찾기가 너무 힘들었습니다.
CUBRID 7.3에서도 마찬가지입니다.
클래스 편집때 DEFAULT값이 NULL과 문자가 없는 것일때를 구분지어줄 수 있는 표시가
있었으면 합니다. ^^
이번 문제 해결되지 않았으면 APM환경으로 가야하는 상황이었는데
다행입니다. ㅠㅠ
|