자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi 파이어닥 관련하여 궁금점이 있습니다.
2018.07.24 14:44
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요.
프로그램 테스트 중 정말 이해가 안가는 부분이 있어서 글을 남기게 되었습니다.
사용 툴 : Delphi 10.2 도쿄 릴리즈 3
접속 DB : MYSQL 5
사용 dll : libmysql.dll
MYSQL에 특정 DB및 테이블을 생성하여 테스트 중입니다.
* 증상 :
FDConnection 컴포넌트로 db mysql5 에 연결 하였습니다.
FDQuery 컴포넌트로 해당 테이블에 insert & Update 를 하고 있습니다.
프로그램 a필드에 "가나다라마바사아자차카타파하" 라는 글을 입력 후 저장 버튼을 누르면 insert 와 update를 합니다.
* 소스 코딩 EX:
With FD_Q do
begin
Close;
SQL.Clear;
SQ.ADD('UPDATE A테이블 SET A='가나다라마바사아자차카타파하' ');
ExecSQL;
end;
이런식으로 A테이블에 A필드에 Edit 컴포넌트에 입력 받은 값을 업데이트 시켰습니다.
문제의 소지가 보이지 않는 소스코딩인데요.
실제 값이 DB에 입력되는 것을 보면 처음에는 A필드에 "가나다라마바사아자" 까지 짤려서 값이 들어가고.
해당 A필드 값을 다시 조회해서 "가나다라마바사아자" 란 값으로 UPDATE를 하면
A필드에 "가나다라마바" 까지 짤려서 들어가기를 반복 합니다.
나중에는 공백만 남구요..
쿼리상 A필드 파라미터로 온전한 값이 들어가는것을 확인 하여.
파이어닥 컴포넌트의 버그인것인지....
아니면 libmysql.dll 에서 잘못 처리하는것인지...
확신을 못하고 있습니다.
감사합니다.
** 추가 **
영문자나 숫자는 해당 증상이 없고
오직 한글만 이러한 증상을 보이고 있습니다.
Delphi 파이어닥 관련하여 궁금점이 있습니다.
2018.07.24 14:44
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요.
프로그램 테스트 중 정말 이해가 안가는 부분이 있어서 글을 남기게 되었습니다.
사용 툴 : Delphi 10.2 도쿄 릴리즈 3
접속 DB : MYSQL 5
사용 dll : libmysql.dll
MYSQL에 특정 DB및 테이블을 생성하여 테스트 중입니다.
* 증상 :
FDConnection 컴포넌트로 db mysql5 에 연결 하였습니다.
FDQuery 컴포넌트로 해당 테이블에 insert & Update 를 하고 있습니다.
프로그램 a필드에 "가나다라마바사아자차카타파하" 라는 글을 입력 후 저장 버튼을 누르면 insert 와 update를 합니다.
* 소스 코딩 EX:
With FD_Q do
begin
Close;
SQL.Clear;
SQ.ADD('UPDATE A테이블 SET A='가나다라마바사아자차카타파하' ');
ExecSQL;
end;
이런식으로 A테이블에 A필드에 Edit 컴포넌트에 입력 받은 값을 업데이트 시켰습니다.
문제의 소지가 보이지 않는 소스코딩인데요.
실제 값이 DB에 입력되는 것을 보면 처음에는 A필드에 "가나다라마바사아자" 까지 짤려서 값이 들어가고.
해당 A필드 값을 다시 조회해서 "가나다라마바사아자" 란 값으로 UPDATE를 하면
A필드에 "가나다라마바" 까지 짤려서 들어가기를 반복 합니다.
나중에는 공백만 남구요..
쿼리상 A필드 파라미터로 온전한 값이 들어가는것을 확인 하여.
파이어닥 컴포넌트의 버그인것인지....
아니면 libmysql.dll 에서 잘못 처리하는것인지...
확신을 못하고 있습니다.
감사합니다.
** 추가 **
영문자나 숫자는 해당 증상이 없고
오직 한글만 이러한 증상을 보이고 있습니다.
문제 해결했습니다.
TFDConnection 과 TFDQuery 컴포넌트 교체 하여 해결 하였습니다.
TFDConnection에서 UTF-8 설정을 다했었는데도 안되서..
포기하는 마음으로 컴포넌트 날려버리고 새로운 컴포넌트로 하니깐 정상 작동하네요..
(깊은 빡침이.....)