Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zugriffsverletzung bei Adresse *** in Modul '*.exe'. (https://www.delphipraxis.net/65279-zugriffsverletzung-bei-adresse-%2A%2A%2A-modul-%2A-exe.html)

mädibo 14. Mär 2006 15:07

Datenbank: Delphi BDE • Version: delphi 6 • Zugriff über: Table (TAdmin) und DataSource (DataSource1)

Zugriffsverletzung bei Adresse *** in Modul '*.exe'.
 
hallo leute,

ich weiss, es gab schon einige Einträge zu diesem Thema, aber geholfen hat keiner.

ich mache ein programm, bei dem man sich als administrator anmelden kann. dabei gibt man den Username und das PW ein.

der code sieht wie folgt aus
Delphi-Quellcode:
procedure TFormAdmin.sbAdminClick(Sender: TObject);
var user, pw: string;
begin

user := edAdminUser.Text; //editfeld für Username eintrag
pw := meAdminPW.Text;    //maskedit feld für PW

UnitLogin.FormLogin.TAdmin.Active := false; //die Tabelle ist im objkt.inspector auf true gesetzt
UnitLogin.FormLogin.TAdmin.Filtered := false;
UnitLogin.FormLogin.TAdmin.Filter := 'User = '+QuotedStr( user );
UnitLogin.FormLogin.TAdmin.Filtered := True;
UnitLogin.FormLogin.TAdmin.Open;

    if ((edAdminUser.Text = 'mad') AND ( meAdminPW.Text = '1234' )) OR ( pw = UnitLogin.FormLogin.dbePW.Text ) then
    begin
        showmessage('Eingabe korrekt. Sie wurden als Administrator angemeldet.');  //information an den Benutzer
        btAdminOK.Enabled := true;               //wird freigegeben.
        sbAdminLogin.Enabled := true;            //als Admin kann man weitere Admins erstellen.
        ok := 1;

    end

    else
    begin
        showmessage('Der Benutzername oder das Passwort stimmt nicht. Versuchen Sie es erneut.');
        ok := 0;
    end;
end;
'ok' wird in der Funktion isOk übergeben und isOk auf true gesetzt, wenn ok = 1
als admin kann man die einstellungen ändern und neue benutzer erfassen.

ich hoffe jemand kann mir helfen

mfg mark

Angel4585 14. Mär 2006 15:09

Re: Zugriffsverletzung bei Adresse *** in Modul '*.exe'.
 
Wo genau tritt denn der Fehler auf?
Edit: Fast ergessen:

Herzlich Willkommen in der DP !! :party:

Union 14. Mär 2006 15:11

Re: Zugriffsverletzung bei Adresse *** in Modul '*.exe'.
 
Hallo,

kann es sein, dass "User" ein reserviertes Wort ist?

Angel4585 14. Mär 2006 15:13

Re: Zugriffsverletzung bei Adresse *** in Modul '*.exe'.
 
nicht das ich wüsste..

mädibo 14. Mär 2006 15:32

Re: Zugriffsverletzung bei Adresse *** in Modul '*.exe'.
 
nein, ich habe es zuhause gemacht und alles lieg einwandfrei. danach wollte ich es heute in den code einbauen (habe alles gleich gemacht) aber es kommt immer der fehler. ich habe soeben 2 neue klassen gemacht, die auf eine neue db ugreifen. der fehler kommt genau bei
Delphi-Quellcode:
UnitLogin.FormLogin.TAdmin.Active := false;

Bernhard Geyer 14. Mär 2006 15:34

Re: Zugriffsverletzung bei Adresse *** in Modul '*.exe'.
 
Ich rate mal: UnitLogin.FormLogin ist nil.

mädibo 14. Mär 2006 15:39

Re: Zugriffsverletzung bei Adresse *** in Modul '*.exe'.
 
das heisst?

mquadrat 14. Mär 2006 15:49

Re: Zugriffsverletzung bei Adresse *** in Modul '*.exe'.
 
Wann wird denn FormLogin erzeugt? In der .dpr?

Bernhard Geyer 14. Mär 2006 15:52

Re: Zugriffsverletzung bei Adresse *** in Modul '*.exe'.
 
Zitat:

Zitat von mädibo
das heisst?

Ist es nun nil oder nicht?
Dan verrate ich dir auch eine sehr oft anzutrefenden Fehler den man macht wenn man nicht noch nicht so fit in der Programmierung mit VCL und der IDE ist. Aber blos auf verdacht gleich diese Fehlerquelle breit zu treten wollte ich nicht.

mädibo 14. Mär 2006 15:57

Re: Zugriffsverletzung bei Adresse *** in Modul '*.exe'.
 
ja, ich habe die form schon erstellt. wenn ok = 1 dan wird ein button enable mit dem man auf die db zugreiffen kann, also mit dbedit feldern und einer dbnavigation.

was meinst du mit formlogin = nil

dases not in list heisst weiss ich. ich habe eine klasse login, die nur über die Form benutzt wird. es hat weder funktionen noch sonst etwas. mit login greiffe ich auf die db zu und stelle sie in den dbedit feldern dar. dazu kann ich neue einträge mit dem navigator mache. oder was meinst du mit formlogin = nil?

Delphi-Quellcode:
unit UnitLogin2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBTables, Mask, DBCtrls, ExtCtrls;

type
  TFormLogin2 = class(TForm)
    DataSource1: TDataSource;
    DBNavigator1: TDBNavigator;
    dbeUser: TDBEdit;
    dbePW: TDBEdit;
    Table1: TTable;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FormLogin2: TFormLogin2;

implementation

{$R *.dfm}

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:22 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz