Hola:
Tengo dudas con tu aplicación: aver..
*¿Porque haces en el create del form y en el show lo mismo?
*¿No es redundante?
*Otra cosa:
cuando agregas un registro:
Código Delphi
[-]
ADOQuery1.Close;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select *');
ADOQuery1.SQL.Add('from Docente');
ADOQuery1.open;
ADOQuery1.Append;
ADOQuery1.FieldByName('Nombres').asString:= LabeledEdit2.text;
ADOQuery1.fieldbyname('ap').asString:= LabeledEdit3.text;
ADOQuery1.fieldbyname('am').asString:= LabeledEdit4.text;
ADOQuery1.fieldbyname('Dni').asstring:= LabeledEdit5.text;
ADOQuery1.fieldbyname('direccion').asString:= LabeledEdit6.text;
ADOQuery1.fieldbyname('telefono').asString:= LabeledEdit7.text;
ADOQuery1.fieldbyname('Especialidad').asString:= LabeledEdit8.text;
ADOQuery1.fieldbyname('Area').asString:= LabeledEdit9.text
ADOQuery1.post;
No hace falta traer todos los registros solo para que el dataset tenga la estructura que necesitas para insertar.
Si queres insertar todo con SQL podes mandar dentro del SQL.text del TADOQuery la sentencia INSERT
Código Delphi
[-]
ADOQuery1.sql,text:='INSERT INTO Docente (Nombres,ap,am,Dni,direccion,telefono,Especialidad,Area)
SELECT '+
quotedstr(LabeledEdit2.text)+ 'AS Expr1'
Luego a ese Query lo ejecutas con ADOQuery.ExecSql
Ahora bien.. si no te gusta la idea y seguis con tu planteo, deberias revisar si no estas queriendo guardar un valor string (label.text) en un campo tipo numerico.
y ademas podrias probar asi
Código Delphi
[-]
ADOQuery1.FieldByName('Nombres').Value:= LabeledEdit2.text;
por supuesto por cada campo..
bueno. Saludos..