|
Bueno despues de algunas pruebas he logrado circumvenir al DataSet, lo que he hecho es ver la manera de conocer el número real de campos que hay en la tabla, la única manera que he econtrado y que funciona, es cargar la lista de campos en una StringList y abordarlos desde el número de campos cargados.
procedure TForm1.Button1Click(Sender: TObject);
var
I,J,nCampos:Integer;
Sl:TstringList;
begin
sl:=Table1.FieldDefList;
nCampos:=sl.Count -1;
for i := 0 to nCampos do
begin
ShowMessage(Table1.FieldDefList[i].Name);
//showMessage(DataSource1.DataSet.FieldDefs.Items[i].FieldClass.ClassName );
//ShowMessage(DataSource1.DataSet.FieldDefs.Items[i].Name);
if DataSource1.DataSet.FieldDefs.Items[i].Required then
begin
ShowMessage(DataSource1.DataSet.FieldDefs.Items[i].Name +'Requerido');
for j := 0 to ComponentCount - 1 do
begin
if Components[j].ClassNameIs('TDBEdit') then
begin
If DataSource1.DataSet.FieldDefs.Items[i].Name =(Components[j] as TDBEdit).DataField then
(Components[j] as TDBEdit).Color := clLime;
end;
end;
end;
end;
Un Saludo.
|