Hi,
ich habe SQLDirect 6.5 und möchte diese nun unter 10.4 installieren. Unter 10.3 lief es.
Der Compiler zeigt mir folgenden Fehler : [dcc32 Fehler] SDCommon.pas(445): E2086 Typ 'TSDParam' ist nicht vollständig definiert
Codeauszug:
Delphi-Quellcode:
TSDParam = class; //<-- Hier kommt der Fehler
TSDParams = class;
TSDParamType = (ptUnknown, ptInput, ptOutput, ptInputOutput, ptResult);
TSDHelperParam = TSDParam;
TSDHelperParams = TSDParams;
TSDHelperParamType= TSDParamType;
Es handelt sich wohl um eine Forwarddeklaration, denn TDSParam wird weiter unten im Code als TPersistent wein weiteres mal deklariert.
Ich bekomme den Fehler nur weg, wenn ich das in
Delphi-Quellcode:
TSDParam = class(TObject);
TSDParams = class(TObject);
ändere, oder so
Delphi-Quellcode:
TSDParam = class
end;
TSDParams = class
end;
TSDParamType = (ptUnknown, ptInput, ptOutput, ptInputOutput, ptResult);
dann scheint der compiler zufrieden.
Wie gesagt wird es weiter unten erneut deklariert, aber da kommt dann der Fehler: [dcc32 Fehler] SDCommon.pas(749): E2004 Bezeichner redeklariert: "TSDParam"
Dieser Code sieht folgendermaßen aus:
Delphi-Quellcode:
TSDParam = class(TPersistent) //<-- Hier tritt der Fehler auf
private
.
.
.
protected
.
.
.
public
.
.
.
end;
Das gleiche passiert bei TDSParams auch.
Warum muss ich bei der ersten Deklaration TObject (TPersistent geht auch) angeben?
Und warum wird die zweite Deklaration angemeckert?
Muss man das in 10.4 anders machen?