연결은 아주 잘됩니다...local이든 remote이든요...^^;
문제는 저희쪽 서버 디비가 아닌 기존 사용하고 있는 업체의 원격지 서버 디비 입니당...
연결은 문제 없이 잘 되는데, select * from testTable; 을 날리면 이상 없이 모든 데이터를
추출해오나, Where 조건문에 특정 문자열을 조건값으로 주게 되면 서버측과 클라이언트 측의
character set 이 틀려서(SQL Error: Illegal mix of collations (euckr_korean_ci,IMPLICIT) and
(latin1_swedish_ci,COERCIBLE) for operation '='. 짧은 영어로 대충 본 결과...
두가지 character set를 혼합해서 사용할 수 없다는 내용 같은데용~ --;;;) 결과값을 추출할 수 없다는
에러가 나옵니다...
MySQL Manage 에서도 이 charset을 Default로 놓고 connect 후 Query 문 날리면 동일한
에러구문이 나오고 charset을 euckr 로 고쳐서 해보면 이상없이 원하는 결과가 나옵니다...
제 컴엔 MySQL 4.1이 설치되어 있구용...설치시 charset 을 euckr로 설정했구요...
델파이에서 원격지 디비 연결시 뭘 설정해줘야 위와 같은 에러 구문없이 원하는 결과값을 얻을 수 있는지
한수 부탁드립니다...이곳저곳 다 뒤져봐도 원하는 자료가 없네요...(제가 못찾는건지 모르겠지만요...)
제가 함 해보니까요~ 잘못하고 있는지는 모르겠으나...^^;
my.ini 화일에서 default-character-set 과 default-collation을 확인하여 설정을 추가 한 후
MySQL을 재시작 해도 characterset 설정엔 변함이 없습니다...--;
다른 분들은 이렇게 하셔서 해결되었는지는 모르겠으나, 전 안되더라구용...쯔읍~
그래서 쿼리로 해결을 하려고 where 조건문에 있는 부분을 아래와 같이 했죠...
where 필드명 = _euckr '조건값' COLLATE euckr_korean_ci 이렇게요...
그랬더니 에러없이 우선 결과는 보여주더라구요 ^^
그러나, 필드값에 한글이 있는경우 "???" 나옵니다...--;
위 내용을 select 절에 적용해도 결과는 마찬가지입니다...대략 난감...
그래서 포기하고 다시 첨 부터...--;
디비 연결 후 --default-character-set=euckr; 또는 set names euckr; 을 이용하여
설정을 변경합니다...status를 확인해보면 server, db, client, conn 의 characterset이
모두 euckr 로 변경되어 있더라구요...^^ 흐흐흐
이 상태에서 그냥 일반적으로 사용하는 쿼리문 날리면 where 조건문의 값이나, 결과 값 모두
아무 에러없이 잘 나옵니다...^^
근데 다시 disconnect 후 connect 하여 status 확인해보면 characterset은 다시 원상복귀입니다...--;;;
MySQL 실행중에 설정을 변경하면 변경 사항이 영구적으로 적용이 되는것 같지 않더라구요...
물론 ini 에서 설정을 수정해도 변경이 안되구요...--;
제가 설치를 잘못한건지는 모르겠으나, 설치시 characterset을 euckr 로 선택하여 설치를 했었거든요.
이렇게하면 server, db 의 characterset 만 euckr로 설정이되고 client, conn 은 latin1로 자동 설정이 됩니다.
그래서 connect 할 때마다 characterset 설정을 바꿔줘야 한다라고 결론을 짓게되었네요...^^
어쨌든 이렇게 해결되서 지난주에 작업 다 끝내놓고 편한한 맘으로 글 올립니다...