Q&A

  • zeos연동으로 mysql사용시 table 생성 에러


CREATE TABLE test_table하는데 에러가 나타나는데
컴포넌트 소스 ZConnection.pas에서
디버그 라인이 걸리는 것을 보면
not FSqlHourGlass에서 에러가 걸립니다
그런데 MySQL Query Browser툴을 써서 table을 만들면 문제없이
만들어집니다

원인을 알수가 없어 질문 올립니다

<!--CodeS-->
ZConnection1 := TZConnection.Create(nil);
zConnection1.Protocol := 'mysql';
zConnection1.Port := 3306;
zConnection1.Database :='test_db';
zConnection1.HostName := 'localhost';
zConnection1.User :='test_user';
zConnection1.Password := 'test_pw';
ZConnection1.AutoCommit := false;
ZConnection1.readOnly := false;
ZConnection1.StartTransaction;
try
    ZConnection1.Connect;
    Application.MessageBox('서버 연결 성공','연결 Suiccess', MB_OK );
except
    on E: Exception do
      Application.MessageBox('서버와의 연결이 실패했습니다.  ','연결 실패', MB_OK or MB_ICONERROR);

  make_sql := 'CREATE TABLE test_table (';
  make_sql := make_sql + ' name varchar(20), email varchar(120) binary,';
  make_sql := make_sql + ' photo longblob)';

query1.Sql.Clear;
query1.Sql.Add(make_sql);
  try
    query1.ExecSql;
    Application.MessageBox(테이블 생성 성공','생성 Suiccess', MB_OK );
  except
    on E: Exception do
      Application.MessageBox('테이블 생성이 실패했습니다.  ','생성 실패', MB_OK or MB_ICONERROR);
  end;
<!--CodeE-->


컴포넌트 소스 ZConnection.pas

procedure TZConnection.ShowSQLHourGlass;
begin
  if not FSqlHourGlass then          --------------->여기서 걸립니다
    Exit;

  if SqlHourGlassLock = 0 then
  begin
    if Assigned(DBScreen) then
    begin
      CursorBackup := DBScreen.Cursor;
      if CursorBackup <> dcrOther then
        DBScreen.Cursor := dcrSQLWait;
    end;
  end;
  Inc(SqlHourGlassLock);
end;
4  COMMENTS
  • Profile
    고영호 2008.03.11 05:18
    저는 Zeos 6.1.5 버젼을 사용하고 있습니다만, 님께서는 몇버젼을 사용하고 계시는지 모르겠네요.


    //ZConnection1 := TZConnection.Create(nil);  ==>주석처리 했어요..
    zConnection1.Protocol := 'mysql';
    zConnection1.Port := 3306;
    zConnection1.Database :='xxx';
    zConnection1.HostName := 'localhost';
    zConnection1.User :='xxxxx';
    zConnection1.Password := 'xxxxx';
    ZConnection1.AutoCommit := true;      //===> false로 해놓았던데 true로 해놓아야해요...
    ZConnection1.readOnly := false;
    ZConnection1.StartTransaction;     //===>이문을 쓰실려면 commit 혹은 rollback 처리해 주시구요.

    try
      ZConnection1.Connect;
      Application.MessageBox('서버 연결 성공','연결 Suiccess', MB_OK );
    except
      on E: Exception do
        Application.MessageBox('서버와의 연결이 실패했습니다.  ','연결 실패', MB_OK or MB_ICONERROR);
    end     //===> end 문이 빠져 있었네요.

    make_sql := 'CREATE TABLE test_table (';
    make_sql := make_sql + ' name varchar(20), email varchar(120) binary,';
    make_sql := make_sql + ' photo longblob)';

    query1.Sql.Clear;
    query1.Sql.Add(make_sql);

    try
      query1.ExecSql;
      Application.MessageBox('테이블 생성 성공','생성 Suiccess', MB_OK );
    except
      on E: Exception do
        Application.MessageBox('테이블 생성이 실패했습니다.  ','생성 실패', MB_OK or MB_ICONERROR);
    end;


    위와 같이 하니까 zeos 6.1.5 에서는 에러없이 테이블이 생성이 되었습니다.

    참고하세요...^^



  • Profile
    이경애 2008.03.11 18:52
    답변 감사드립니다
    그런데 님께서 손을 본대로 고쳤는데도
    마찬가지 결과가 나오는군요
    저도 Zeos 6.1.5 버젼을 사용하고 있습니다
    설치 환경설정의 문제 아니면 권한의 문제같기도 하고
    도저히 모르겟습니다
    Library Path도 맞추어주었고 libmysql320,323,40,41.dll도
    windwos\system에 복사했는데..

    컴포넌트 소스 ZConnection.pas

    procedure TZConnection.ShowSQLHourGlass;
    begin
      if not FSqlHourGlass then          --------------->왜 여기서 걸릴까요?
        Exit;
    .....

  • Profile
    고영호 2008.03.11 20:11
    수고하시네요...^^

    혹 query1 콤포넌트 속성(Properties)중 Connection에  ZConnection1을 선택하셨나요?

    쿼리 컴포넌트를 사용할때 Connection을 연결하지 않으면 비슷한 오류가 나오는 것 같습니다.

    참고하시고, 꼭 오류를 잡으시기를 바랍니다....^^
  • Profile
    이경애 2008.03.11 20:24
    뭐든지 처음에 하면 이렇듯 곤란을 겪는군요
    바로 해결이 되엇습니다 감사합니다
    이런건 처음부터 알수있어야 하는데
    알고보면 쉬운건데..
    BDE를 쓸때 똑같이 적용하는 방법인데 새로운 것을 하려니
    전혀 생각이 안났습니다
    가르쳐주는 데도 없고..

    • 이정훈
    • 2008.03.12 23:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.13 18:45
      질문이 좀 애매하군요. 컴포넌트를 올려두고 컴파일하면 에러가난다는 것인지... 코딩으로 사용하면 ...
    • 이명은
    • 2008.03.12 22:54
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 머문자리
      2008.03.13 01:31
      혹시 제가 아는 이명은(kh정보교육원 Database&보안전문가 과정)이 아닌지 모르겠습니다. update문은 DB에...
    • nilriri™
      2008.03.14 00:29
      ExecSQL 의 리턴값을 보시면 integer형입니다. 처리된 결과 행의 갯수입니다. 즉 인서트 문이면 인서...
    • 머문자리
      2008.03.14 01:35
      그렇군여.. 괜히 쓸데없는 답변을 했다는 느낌이 드네요.. <!--CodeS--> var   DML_n...
    • 이명은
      2008.03.14 01:43
      두분 모두 감사해요.. ^^ 생각지도 못한 답글이 이렇게 많이 생길줄이야.. ExecSQL의 리턴값이있을거란 ...
    • 이명은
      2008.03.13 23:23
      ^^ 네 맞습니다.
    • 이정훈
    • 2008.03.12 20:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.13 02:49
      GetFileVersion(AFileName); 파일 버전을 비교하세요.
    • 소울해커
      2008.03.13 02:48
      Query1.RecordSet.RecordCount 이상없습니다만...?
    • 이정훈
      2008.03.13 04:26
      이렇게 코딩했는데 -1이 나옵니다. Rcount.caption:= inttostr(Query1.RecordCount); 틀린부분 있...
    • nilriri™
      2008.03.14 00:37
      BDE 의  TQuery컴포넌트일 경우에는.. AfterOpen이벤트에서 TQuery(DataSet).FetchAll;을 해...
    • 임형호
      2008.03.13 18:26
      Query.Last; 이후에 recordcount를 다시구해보세요.
    • 이경애
      2008.03.13 18:31
      여기저기 싸이트와 네이버 지식이나 다음 신지식등등을 돌아다니며 물어보고 자료를 찾아보았는데 도움을...
    • 머문자리
      2008.03.13 18:45
      고생하셨네요.. 4.x버전 이상에서 utf-8형식을 지원하기 때문에 문제가 일어난 거였네요.. 문제점이 무...
    • 정경철
    • 2008.03.11 23:44
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 백록화
      2008.03.12 01:00
      델파이 7 에는 다음과 같은 디렉토리에 있습니다. 델파이설치디렉토리\imports 에는 dcu 파일이.. &...
    • 정경철
      2008.03.12 16:22
      감사 합니다.
    • 임형호
      2008.03.11 22:28
      크리스탈 관련질문이시죠? Crpe1.ReportName := 풀패스; Crpe1.Excute; 이렇게하심.. ReportName에...
    • 신민철
      2008.03.11 23:13
      "풀패스"를 레포트 경로값을 놓었더니 화면이 나오긴 나오는데 폼안에 나오지않고 따로 나오네요......
    • 임형호
      2008.03.13 18:33
      네.. 폼이 따로 생성되서 보여집니다. 폼안에 나오게 할려면...  가령 폼안에 Panel을 놓고.. ...
    • 신민철
      2008.03.11 22:36
      감사합니다. 이제 델파이 시작했거든요... 암튼 고맙습니다.  즐코하세요...^^
    • 후초보
    • 2008.03.11 20:19
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2008.03.11 22:36
      - 일단 1번, 3번에 대해서 말씀을 드리면요. CashedUpdate를 사용하는 경우는 사용자가 Commit 시점을 지정...
    • 후초보
      2008.03.12 01:00
      답변 감사드립니다. 그런데 어느시점에 Commit 을 해야 하는지 모르겠습니다. 또한 레코드가 추가되는 시...
    • 깔쌈보이
      2008.03.11 20:50
      기본값이 0인 가상의 컬럼을 하나 만듭니다. 그래서 해당 필드가 바뀌면 가상의 컬럼에 1을 줍니다. 그...
    • 후초보
      2008.03.12 01:02
      답변 감사드립니다. 가상칼럼은 테이블과 상관이 없는건데 이것또한 어떤 시점에 Post를 해야 하는건지......
    • 깔쌈보이
      2008.03.13 17:58
      언바운드 모드로 작업하시구요... 저장 버튼을 따로 만들어서 Post 또는 Commit 하심이 어떨런지요.
    • KDDG_Hit
    • 2008.03.11 19:59
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 채기웅
    • 2008.03.11 19:13
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2008.03.11 22:42
      그리드의 타이틀이라는게 컬럼(퀀텀에서는 ITem)의 타이틀을 의미하시는건가요? 버전별로 차이가 있는...
    • 소울해커
      2008.03.11 20:07
      상용 그리드는 프로퍼티에 정렬 관련 옵션들이 있을겁니다. 딱히 눈에 띄는게 없다면 셀클릭 이벤트나 M...
    • 임형호
      2008.03.11 19:05
      여러가지 방법이 있겠지만요. 일단 가장 간단한 방법은.. 1. 크리스탈레포트 파일을 생성합니다. (...
    • 신민철
      2008.03.11 20:26
      Excite 메소드 호출 방법 말고 다른 방법은 없나요.?? 많은 도움을 주셔서 감사합니다. 델파이 왕...
    • 임형호
      2008.03.11 22:23
      다른방법이라 하심은 어떤걸 말씀하시는건가요? 본인이 하고자하는 방식이나.. 내용들을 구체적으로 말씀...
    • 이경애
    • 2008.03.11 04:38
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 고영호
      2008.03.11 05:18
      저는 Zeos 6.1.5 버젼을 사용하고 있습니다만, 님께서는 몇버젼을 사용하고 계시는지 모르겠네요. //Z...
    • 이경애
      2008.03.11 18:52
      답변 감사드립니다 그런데 님께서 손을 본대로 고쳤는데도 마찬가지 결과가 나오는군요 저도 Zeos 6.1.5...
    • 고영호
      2008.03.11 20:11
      수고하시네요...^^ 혹 query1 콤포넌트 속성(Properties)중 Connection에  ZConnection1을 선...
    • 이경애
      2008.03.11 20:24
      뭐든지 처음에 하면 이렇듯 곤란을 겪는군요 바로 해결이 되엇습니다 감사합니다 이런건 처음부터 알수있...
    • 후초보
    • 2008.03.11 04:23
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 깔쌈보이
      2008.03.11 17:56
      속성 조절 및 컴포넌트의 원소스를 일부 수정하거나 어플의 소스부분에서 컴포넌트 부분을 수정하거나 등등...
    • 후초보
      2008.03.11 19:53
      고맙습니다. 어제 새벽까지 이것 저것 해보다가 버젼을 바꿔어 볼려고 합니다. 실력이 없는탓에 기존에 것...
    • 김소연
    • 2008.03.11 04:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.11 19:55
      Dialogs 탭에 OpenPictureDialog란걸 써보세요.
    • 임형호
      2008.03.11 05:14
      제가 알기로는 이전버전에는 크리스탈 설치하면 특정폴더위치에 있었는데.. 이건 어디있는지 영 못찾겠네요...
    • 신민철
      2008.03.11 06:58
      고수님... 진짜 진짜 감사합니다. 덕분에 즐코 하게 됐습니다..^^
    • 하얀돌
    • 2008.03.11 03:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.11 19:53
      질문이 잘 이해되질 않습니다. 축소 확대를 바라시네요. 축소 확대를 바라시지 않는군요. ㅡ_ㅡ
    • 권두혁
    • 2008.03.11 02:40
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.11 19:50
      program Project2; //정수를 입력받아 등급을 출력 {$APPTYPE CONSOLE} uses   SysUtils, ...
    • 권두혁
      2008.03.12 18:25
      감사합니다~! ^^
    • 김소연
    • 2008.03.11 00:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.03.11 19:45
      sText := 'abcd1234ABCD'; function IsAlpha(const sText: String): Boolean; var i: Integer; begin ...
    • 임형호
      2008.03.11 01:05
      설치방법은 문서참조하세요.   전에 설치하던거 정리해놓은 문서입니다.
    • 신민철
      2008.03.11 02:31
      죄송합니다. 설치방법은 잘보았지만 .. component 에 dcl7cr11.dpk 파일이 없습니다. 좋은 가...
    • 신민철
      2008.03.11 01:16
      고맙습니다. 설치방법을 참조하겠습니다. 즐코 하겠습니다.^^