Also bei DBase ist glaub ich nicht viel mit einem direktem
SQL Befehl um die besagte Spalte zu verändern. Rezentere
DB Systeme bieten auch Stringbehandlungsroutinen mit, damit wärs einfacher. So bleibt dir wohl nix anderes übrig, also das Datensatz für Datensatz zu lösen. Wichtig dabei ist aber, dass du lediglich mit Strings arbeitest, weil Du ja nicht auf TimeStamp umsteigen kannst.
Hier mal ein Schnippsel, allerdings ungetestet:
Delphi-Quellcode:
procedure TForm1.btn_set_dateClick(Sender: TObject);
var
oldDate, newDate :
string ;
begin
with Table1
do
First ;
begin
while not Eof
do
begin
edit;
oldDate := FieldByName('
date').AsString ;
try
dd := StrToInt(copy(oldDate,1,2)) ;
mm := StrToInt(copy(oldDate,4,2)) ;
yy := StrToInt(copy(oldDate,7,2)) ;
except
raise exception.create (oldDate + '
konnte nicht ins neue Format konvertiert werden') ;
end ;
if yy >= 70
// ab 1970 berücksichtigt. Älter wird als 2069 interpretiert
then yy := 1900 + y
else yy := 2000 + y ;
FieldValues['
date'] := FormatDateTime ('
dd.mm.yyyy',EncodeDate (yy,mm,dd)) ;
post;
Next;
end
end
end;