Hi zusammen
Ich habe meinem Datenmodul eine eigene Klasse zur 'direkten Kommunikation mit dem Server' spendiert. Im wesentlichen sollen damit Sessionvariablen abgerufen/verändert werden können.
Delphi-Quellcode:
TMySQLCorrespondent = class(TPersistent)
private{private Declarations}
FContentmasterConnection : Boolean;
FCatalogInformation: TStringlist;
FMaxAllowedPacket: Integer;
FCatNames: TStringList;
...
function DefineContentmasterConnection: Boolean;
function GetPerformanceSchemaConnection: Boolean;
function GetSessionVarlist: TStringList;
function GetCatalogInformation: TStringlist; //<==
public{public Declarations}
property ContentmasterConnection2: Boolean read DefineContentmasterConnection;
property PerformanceSchemaConnection: Boolean read GetPerformanceSchemaConnection;
property Cataloginformation : TStringlist read GetCatalogInformation;
...
Constructor Create(AOwner: TObject);
Destructor Destroy; override;
end;
So die Deklaration. Einige der Felder und Propertys, die für diesen Thred nicht wichtig sind, habe ich durch Pünktchen ersetzt.
Das Thema ist das Feld FCatNames. Und so wird das verwendet:
Delphi-Quellcode:
constructor TMySQLCorrespondent.Create(AOwner: TObject);
begin
inherited Create;
FCatalogInformation := TStringlist.Create;
FCatNames := TStringList.Create;
end;
destructor TMySQLCorrespondent.Destroy;
begin
FCatalogInformation.Free;
FCatNames.Free;
inherited;
end;
function TMySQLCorrespondent.GetCatalogInformation: TStringlist;
var i, j: Integer; Catalog:
string;
begin
FDMySQLDml.FDConnectionMySql.GetCatalogNames('
', FCatNames);
// AV
Result := FCatNames;
end;
Die
AV wird ausgelöst, weil FCatnames unbekannnt ist, also nicht mal nil.
Was könnte da falsch sein?
Im Anhang noch 3 Jpegs meines Strukturfensters. Aktiv sind dabei:
Struktur1: TCM_First (das Hauptfenster)
Struktur2: TServerInfoFrame
Struktur3: FDMySQLDml (Datenmodul
Gruss
Delbor
Gruss
Delbor