자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi Generator를 변수로 변경할 수있을까요?
2018.07.13 22:15
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요? 고수님들의 도움을 구합니다.
XE4, Firebird를 사용합니다. 한 테이블에서 ID 필드를 generator와 trigger를 사용해서 자동중기 시키고 있는데 generator 숫자를 임의로 100을 추가하려 하는데 안되네요.
DB에 직접 sql로 'Set set generator gen_rd_id to 155' 하거나 프로그램에서 같은 sql을 사용해도 괜찮은데,
기존의 마지막 ID에 100을 추가하면, 다시 말해 155 대신 :ID 변수로 sql을 돌리면 에러가 납니다.
감사합니다.
Delphi Generator를 변수로 변경할 수있을까요?
2018.07.13 22:15
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요? 고수님들의 도움을 구합니다.
XE4, Firebird를 사용합니다. 한 테이블에서 ID 필드를 generator와 trigger를 사용해서 자동중기 시키고 있는데 generator 숫자를 임의로 100을 추가하려 하는데 안되네요.
DB에 직접 sql로 'Set set generator gen_rd_id to 155' 하거나 프로그램에서 같은 sql을 사용해도 괜찮은데,
기존의 마지막 ID에 100을 추가하면, 다시 말해 155 대신 :ID 변수로 sql을 돌리면 에러가 납니다.
감사합니다.
자답입니다. 간단한 방법으로 처리가 되었는데 맞는 방법인 듯 합니다.
qr.exexSQL('set generator gen_rd_id to ' + IntToStr(t_ID));
(* t_ID는 원래 ID(Int) + 원하는 증가분을 합한 private 변수임)
파라미터 대신 변수를 직접 SQL 문에 넣으니까 이상없이 동작하네요. 2일동안 짬날때마다의 구글링에서 해결하지 못했는데, 원래 SQL 문에 숫자로는 이상없이 업데이트되는 것에서 힌트를 얻었습니다. 케이스가 많지 않았던 것으로 보면 그리 필요하지는 않겠다 싶지만, 그래도 다른 분께 참고가 될 수 있겠다 싶어 남겨둡니다.
수고하세요.