Eine alte DB-Tabelle soll durch eine Textdatei ersetzt werden.
Dazu ist eine Klasse TMyData zu entwickeln.
Im Programm gibt es folgende Original-Befehle:
DatenString := MyData.FieldByName('Name').AsTring;
DatenInteger := MyData.FieldByName('Name').AsInteger;
Diese Programmzeilen sollen ohne eine Änderung des Quellcodes
durch die neue Klasse bedient werden.
Das ist nicht weiter kompliziert und könnte wie folgt gelöst werden:
In der neuen Klasse TMyData gibt es folgenden Record. Die Methode verwendet
diesen Recordtypen
Type RecMyRecord = Record
AsString:String;
AsInteger:Integer;
end;
function TMyData.FieldByName(const FieldName:String):RecMyRecord;
var
RReturn:RecMyRecord
begin
// Suche in der Textdatei nach 'FieldName'
RReturn.AsString := 'ein Text';
RReturn.AsInteger := 4711;
FieldByName := RReturn;
end;
Auf diese Weise kann man den beiden Variablen
DatenString
DatenInteger
die korrekten Werte übergeben
Wie aber kann ich soetwas realisieren ???
MyData.FieldByName('Name').AsString := 'XYZ';
MyData.FieldByName('Name').AsInteger := 123;
Dazu ist eine Klasse TMyData zu entwickeln.
Im Programm gibt es folgende Original-Befehle:
DatenString := MyData.FieldByName('Name').AsTring;
DatenInteger := MyData.FieldByName('Name').AsInteger;
Diese Programmzeilen sollen ohne eine Änderung des Quellcodes
durch die neue Klasse bedient werden.
Das ist nicht weiter kompliziert und könnte wie folgt gelöst werden:
In der neuen Klasse TMyData gibt es folgenden Record. Die Methode verwendet
diesen Recordtypen
Type RecMyRecord = Record
AsString:String;
AsInteger:Integer;
end;
function TMyData.FieldByName(const FieldName:String):RecMyRecord;
var
RReturn:RecMyRecord
begin
// Suche in der Textdatei nach 'FieldName'
RReturn.AsString := 'ein Text';
RReturn.AsInteger := 4711;
FieldByName := RReturn;
end;
Auf diese Weise kann man den beiden Variablen
DatenString
DatenInteger
die korrekten Werte übergeben
Wie aber kann ich soetwas realisieren ???
MyData.FieldByName('Name').AsString := 'XYZ';
MyData.FieldByName('Name').AsInteger := 123;
Comment