Supongo que el problema está en como se da formato a la fecha al convertira a string.
- m/d/y
- y/m/d
- d/m/y
- y lo mismo, pero con la hora incluida
- y lo mismo, pero con la hora y zona horaria incluida.
Lo correcto es trabajar con el tipo de datos sin hacer transformaciones.
Los campos de una tabla suelen tener la propiedad
- .AsString
- .AsDate
- .AsDateTime
- .AsInteger
- .AsFloat
- etc.
Prueba utilizado
Código Delphi
[-]
Dataset.FieldByName('Fecha Nacimiento').AsDateTime := DBfechanac.Date;
y
Código Delphi
[-]
DBfechanac.Date := Dataset.FieldByName('Fecha Nacimiento').AsDateTime;