델파이를 시작한지 3일 지난 완전 초보 입니다 .
zeos 컴포넌트를 사용해서 DB 접속기를 만들어 보았는데요,
일단 접속은 잘 되는데, 문제는 DB접속 아이디와, 패스워드를
입력 하지 않았을때 디버깅을 하면 ZDbcMySqlUtils 유닛의
CheckMySQLError 프로시저 에서 예외처리 부분 에서 처리해주는 에러 메시지 박스가 뜨게되던데, 그 에러메시지가 실행파일에서는 안뜨더군요.
제가 필요한 것을 디비 접속시 에러가 나면 제가 만든 예외처리 부분에서 메시지 박스로 해당 에러메시를 표시 하고 싶습니다. 완전 초보라 어떻게 해야할지 잘 모르겠습니다. 고수님 들의 많은 조언 부탁 드리겠습니다.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ZConnection, ZSqlProcessor, ZDbcMySqlUtils, ExtCtrls;
type
TForm1 = class(TForm)
ZConnection1: TZConnection;
pnlConn: TPanel;
Button1: TButton;
edtIP: TEdit;
edtID: TEdit;
edtPS: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
btnDisconn: TButton;
procedure Button1Click(Sender: TObject);
procedure btnDisconnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ZConnection1.User := edtID.Text;
ZConnection1.Password := edtps.Text;
ZConnection1.Database := 'messenger';
ZConnection1.HostName := edtip.Text;
try
ZConnection1.Connect;
//ShowMessage('접속성공');
pnlConn.Visible := false; //사라지게 하는 속성
btnDisconn.Visible := true;
except
ZConnection1.Disconnect; //예외처리 어떻게??
ShowMessage('접속실패');
//이 부분에서 unit ZDbcMySqlUtils 의 CheckMySQLError 프로시저의 에러메시지를 출력 하고 싶습니다.
end;
end;
procedure TForm1.btnDisconnClick(Sender: TObject);
begin
ZConnection1.Disconnect;
btnDisconn.Visible := false;
pnlConn.Visible := true;
end;
end.
----------------------------------------------------------------
아래는 ZDbcMySqlUtils 의 CheckMySQLError 프로시저 부분 입니다.
----------------------------------------------------------------
procedure CheckMySQLError(PlainDriver: IZMySQLPlainDriver;
Handle: PZMySQLConnect);
var
ErrorMessage: string;
ErrorCode: Integer;
begin
ErrorMessage := Trim(StrPas(PlainDriver.GetLastError(Handle)));
ErrorCode := PlainDriver.GetLastErrorCode(Handle);
if (ErrorCode <> 0) and (ErrorMessage <> '') then
begin
raise EZSQLException.CreateWithCode(ErrorCode,
Format('SQL Error: %s', [ErrorMessage]));
end;
end;
제가 완전초보라 쉬운 설명을 해주셨으면 감사하겠습니다.^^;