|
답변해주셔서 고맙습니다. 찬찬히 말씀하신대로 해보죠 mysql쪽에 설정이 잘못됄수도 호환성에 문재가 있을수도 있다고 생각은 했는데 뭐 프로잭트 완성하는 것도 아니니 배워나가는 과정이라 일단 mysql에 대해서 좀 봐야 겠어요
예전에는 php짤때 큰 신경 안쓰고 쓰던터라 이잰 좀 자세히 봐야 겠내요.
답변주시느라 수고하셨습니다. 감사 ^^
----------------
박지훈.임프 님이 쓰신 글 :
: 몇가지 가능성이 있습니다.
:
: 1. 너무나 단순한 거지만, LoginPrompt 를 true/false로 바꾸면 되다 안되다 한다는 말은, 세몬님이 실제로 계정과 패스워드를 잘못 입력했을 가능성입니다. Params에 지정한 계정과 패스워드(yinghuan/test)가 맞는지 다시 한번 확인하는 게 가장 먼저겠죠.
:
: 질문에서 보여주신 계정/패스워드와 첨부하신 소스의 계정/패스워드가 다른 것이 좀 맘에 걸리네요. 그리고 첨부하신 소스에서 패스워드의 첫글자만 대문자이고 나머지는 소문자인 것도 좀 이상한데.. 일부러 그렇게 설정하신 것인지요.
:
: 2. dll 버전 충돌의 가능성이 있습니다. MySQL이 3.xx 버전에서 4.xx로 업하면서 바뀐 부분이 많아서 호환이 안됩니다. 그래서 dbExpress 드라이버도 델파이에 MySQL의 두 버전용이 같이 들어 있습니다. dbexpmysql.dll 파일은 4.0.xx 버전용이고 dbexpmys.dll 파일은 3.22.xx 버전용입니다.
:
: 또 델파이의 dbExpress 설정도 두 버전용의 설정이 별도로 있습니다. MySQLConnection 연결은 4.0.xx 버전용이고 MSConnection 연결은 3.22.xx 버전용입니다. 일단 첨부하신 소스를 보면 이 설정은 바로 된 거 같습니다.
:
: 3. 어떤 이유로든지 시스템에 여러 버전의 dll들이 같이 있을 경우입니다. 예를 들면 델파이6와 델파이7 혹은 델파이2005 등의 dbERxpress DLL들이 여기저기에 흩어져 있는 경우. 혹은 C++빌더와 함께 설치되어 있는 경우. 이렇게 서로 다른 버전의 dll들이 여기저기에 있을 경우 엉뚱한 파일이 로딩될 수 있습니다. 또 MySQL의 libmysql.dll도 비슷하게 여러 버전의 파일들이 섞여 있을 수 있습니다.
:
: 여러 버전의 파일들이 혼재해 있을 경우 가장 쉽게 해결하는 방법은 정확한 버전의 dbExpress DLL, 그러니까 델파이6의 bin 디렉토리에 있는 dbexpmysql.dll과, libmysql.dll을 프로젝트의 현재 디렉토리로 복사해버리는 겁니다. 그러면 다른 경로에 어떤 파일들이 있든지 현재 디렉토리의 파일들이 우선적으로 로드되지요. 다른 방법으로는, dbExpress DLL을 아예 쓰지 않고 dbExpress 루틴을 현재 프로젝트에 정적으로 링크시켜버리는 방법도 있습니다만 앞의 방법(파일을 현재 디렉토리로 복사)으로 효과는 동일합니다.
:
: 델파이 IDE에서 폼 디자이너에서 연결시도했을 때와 프로그램 실행시에 연결을 시도했을 때가 결과가 같은지요. LoginPrompt를 true/false로 설정해보면서 말이죠. 만약 결과가 다르다면 dll 버전의 문제가 거의 확실합니다.
:
: 또 MySQL을 이전에 3.22.xx 버전을 깔았다가 4.0.xx 버전을 추가로 깐 경우, 3.22.xx 버전의 libmysql.dll을 4.0.xx 버전이 덮어쓰지 않고 그대로 둔다는 말이 있습니다. 현재 PC에 있는 libmysql.dll의 버전을 확인해보세요. libmysql.dll의 경우 버전 정보가 포함되어 있지 않았던 것으로 기억하기 때문에 파일의 날짜로 확인하실 수밖에 없을 듯. 주위에 다른 피씨나 서버에 4.0.xx 버전이 깔린 곳이 있으면 거기에 깔린 libmysql.dll 파일과 날짜와 파일 크기를 비교해보세요.
:
: 그럼...
:
:
: 세몬 님이 쓰신 글 :
: : 박지훈.임프 님이 쓰신 글 :
: : : 질문의 정보가 부족합니다.
: : :
: : : 1. 에러 메시지 (에러 메시지 없이 문제의 원인을 추측하려면 돗자리 깔고 점을 쳐 봐야 합니다)
: : : 2. 연결하려는 MySQL의 버전 (3.x와 4.x의 dbExpress 드라이버가 다릅니다)
: : : 3. 사용하는 델파이의 버전 (버전 충돌 등의 문제가 발생하는 경우도 있습니다)
: : : 4. TSQLConnection 컴포넌트에서 Params외의 다른 속성 값들
: : :
: : : 그럼...
: : :
: : :
: : : 세몬 님이 쓰신 글 :
: : : : mysql 연결하는데 false에서는 입력창 뜨고 클릭하면 연결이 돼는데요
: : : :
: : : : params설정은
: : : :
: : : : DriverName=MySQL
: : : : HostName=localhost
: : : : Database=test_web
: : : : User_Name=yinghuan
: : : : Password=test
: : : : BlobSize=-1
: : : : ErrorResourceFile=
: : : : LocaleCode=0000
: : : :
: : : : 이렇거든요
: : 답변 해주셔서 고맙구요
: : delphi 7.0이고 mysql은 4.0.22입니다. 그리고 애러메세지는 dbexpress Error:Invalid UsernamePassword.라고 나오내요 헤헤헤
|