Einzelnen Beitrag anzeigen

Benutzerbild von wo0zy
wo0zy

Registriert seit: 14. Apr 2003
Ort: 127.0.0.1
80 Beiträge
 
Delphi 7 Enterprise
 
#1

EAccessViolation beim beenden

  Alt 10. Jun 2003, 22:24
Hi,
hab da mal ein Problem bei meinem Adress-tool.

undzwar läuft bis jetzt alles wunderbar, doch wenn ich das Programm schließe dann kommt immer ne Fehlermeldnung in der was von EAccessViolation steht.
Hier mal der Code, vieleicht findet ihr da ja was raus!
Code:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ComCtrls, StdCtrls, DB, ZQuery, ZMySqlQuery, ZConnect,
  ZMySqlCon, ZTransact, ZMySqlTr;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Hilfe1: TMenuItem;
    Einstellungen1: TMenuItem;
    Zugangsdaten1: TMenuItem;
    ListView1: TListView;
    StatusBar1: TStatusBar;
    Hilfe2: TMenuItem;
    N1: TMenuItem;
    Info1: TMenuItem;
    edName: TEdit;
    Label1: TLabel;
    edEmail: TEdit;
    Label2: TLabel;
    edTelefon: TEdit;
    Label3: TLabel;
    edFax: TEdit;
    Label4: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    trMain: TZMySqlTransact;
    qrMain: TZMySqlQuery;
    dsMain: TDataSource;
    dbMain: TZMySqlDatabase;
    edID: TEdit;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Connect;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Connect;
begin
  dbMain.Host:='********';
  dbMain.login:='********';
  dbMain.Password:='********';
  dbMain.Database:='delphi';
  dbMain.Connected:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  connect;
  try
    qrMain.Sql.Text:='INSERT INTO `telebase` (`id`,`name`,`email`,`telefon`,`fax`) '+
                      'VALUES '+
                      '('''','''+edName.Text+''','''+edEmail.Text+
                      ''', '''+edTelefon.Text+''','''+edFax.Text+
                      ''');';
    qrMain.ExecSql;
  finally
    dbMain.Connected:=false;
  end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  dbMain.Connected:=false;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  connect;
  try
    qrMain.Sql.Text:='DELETE FROM `telebase` WHERE `id`='+edID.Text+';';
    qrMain.ExecSql;
  finally
    dbMain.Connected:=false;
  end;
end;

end.
ich hab auch schon versucht beim onClose der Form von der Datenbank zu disconnecten, aber das brachte absolut keine Veränderung.
It's not a bug it's a feature!
  Mit Zitat antworten Zitat