Q&A

  • Mysql과 델파이 프로그램....??????
환경: win98,Delphi5,MySqlODBC

고수님들 조금만 갈켜 주세여~
제가 지금 로컬에서 mysql디비에다가 로컬프로그램을 작성하고 있는데요!~!
네트웍프로그램이 아닙니다. 제PC에 MySql서버가 깔려 있는 상태라 보시면 됩니다.
잘 안되네요!~!~
MySqlODBC-Driver를 깔고 다른 디비처럼 로컬로 접근해서 사용할라고 하는데...
error메세지가 뜨네요!!!

================에러 메세지 ===========================================
Project1.exe raised exception class EDBEngineError with message
'Capability not supported'
[MySql][OBDC3.51 Driver] Transactions are not enabled'.
                          Process stopped.Use Step or Run to continue
======================================================================
mysql에서는 Transactions 사용이 안됩니까?? 다른 사용법이 있다면 좀 갈켜 주세요??
근데 디비컴포넌트랑 Sql컴포넌트의 프로퍼티메뉴에 보면 Connected에서는 True가 되는데...
소스내에서 왜 작업이 안되는지??? 그러면 Mysql를 사용할 수 있는 방법은 없습니까??

좀만 갈켜 주세요!~!~! 부탁입니다.

=============== 에러뜨는 소스 부분 =====================

Try
DB1.StartTransaction;  <== 이부분입니다.
    if not Query_user1.Eof then
    begin
      
      if MESSAGEDLG('아이디 '+ Trim(Data[2]) +' 가 중복 됩니다, 수정하시겠습니까?',
      mtconfirmation,[mbyes,mbno],0)=mryes then
      begin
       // 입력을 받은 데이타와 변수들과의 조화에 의해 DB에 업데이트한다.
        QueryTemp.close;
        QueryTemp.SQL.Clear;
        QueryTemp.SQL.Add(' Update YMEMBER set ' +
                          ' yname ='+ Quotedstr(Trim(data[1])) +','+
                          //' yid ='+ Quotedstr(Trim(data[2]))+','+
                          ' ypass ='+ Quotedstr(Trim(data[3])) +
                          ' Where yid = '+ Quotedstr(Trim(data[1])));

        QueryTemp.ExecSQL;

      end //if MESSAGEDLG('사원코드 ' ~ ) then
      else begin
       name_Edit.SetFocus;  
      end;

    end //if not Queryuser1.Eof then

    else if Query_user1.Eof then
    begin
     if  
     MESSAGEDLG('성명: '+ Trim(Data[1]) + ' 아이디: '+Trim(Data[2])+' 을 저장하시겠습니까?',
                 mtconfirmation,[mbyes,mbno],0)=mryes then
     begin
          // 입력을 받은 데이타와 변수들과의 조화에 의해 DB에 저장한다.
          QueryTemp.Close;
          QueryTemp.SQL.Clear;
          QueryTemp.SQL.Add('insert into YMEMBER(yname,yid,ypass)values('+
                            Quotedstr(Trim(Data[1]))+','+
                            Quotedstr(Trim(Data[2]))+','+
                            Quotedstr(Trim(Data[3]))+')');

          QueryTemp.ExecSQL;

     end
     else begin
       name_Edit.SetFocus;  
     end;

    end; //else if QuerySawon.Eof then
     DB1.Commit;

     name_Edit.Clear;
     id_Edit.Clear;
     pw_Edit.Clear;

     name_Edit.SetFocus;

   Except begin
       DB1.Rollback; // DB을 원래 상태로 되돌린다.
   end; //Except ~

  end; // Try ~

=====================================================================
0  COMMENTS