Hallo,
Ich versuche eine Model-View-Controller Application zu erstellen.
Ich habe also eine ViewController.pas in der nur das Design und die Funktionen der Buttons etc befindet.
Neben Model.pas habe ich auch eine Model_database.pas in der sich alles was mit der Datenbank zu tun hat befinden soll.
Diese
unit sieht so aus :
Delphi-Quellcode:
unit Model_Database;
interface
uses
ZConnection,ZDataset,DBgrids, ZAbstractRODataset,
ZAbstractDataset,ZSysUtils,ZPlainMySqlDriver,
DB,Classes,sysutils;
type
TDatabase =
class(TObject)
private
SQLQuery: TZQuery;
DataSource: TDataSource;
SQLConnection: TZConnection;
public
constructor Create();
//procedure DBConnect();
function DBSearch: TStringList;
virtual;
abstract;
//...
end;
TWorkStationSearch =
class(TDatabase)
private
public
function DBSearch: TStringList;
override;
end;
implementation
uses Model;
constructor TDatabase.Create();
begin
SQLConnection.HostName := '
asdf';
// <-------- Fehlerzeile
SQLConnection.User := '
asdf';
SQLConnection.Password := '
asdf';
SQLConnection.Database := '
asdf';
end;
var Result : TStringList;
function TWorkstationSearch.DBSearch :TStringList;
//...
end.
Wenn nun der constructor aufgerufen wird, beispielsweiße beim Erstellen einer Instanz von der Klasse TWorkstationSearch (welche ja eine vererbte Klasse der Database Klasse ist), dann bekomme ich in der Zeile eine Zugriffsverletzung bei der Adresse xy.
Weiß einer woran das liegt ? Ich schätze es könnte mitunter daran liegen, dass die ZConnection nur rein als Code deklariert ist, sich aber im Design der Applikation keine Komponente finden lässt.... ?