Gracias a ambos, la solución de SQL es mucho mejor que la PARADOX y no necesita componentes adicionales, de todas maneras publico mi procedimiento para que le sirva a alguien más
Procedure AddFieldSql(Table1:TTable;campo,Tipo:String);
var
nCont:Integer;
sLista:TStringList;
Query1 : TQuery;
s : String;
begin
sLista:=TStringList.Create();
Query1 := TQuery.Create(nil);
Query1.DatabaseName := Table1.DatabaseName;
table1.FieldDefs.Update;
for nCont:=0 to Table1.FieldDefs.Count -1 do
sLista.Add(Table1.FieldDefs[nCont].Name);
sLista.Sort;
If Not(sLista.Find(Campo,nCont)) then
begin
Table1.Close;
Query1.Close;
Query1.Sql.Clear;
s := 'Alter Table '+#39+Table1.TableName+#39+
' Add '+Campo+' '+Tipo;
// Ejemplo: 'Alter Table ''Albaranes.db'' Add Sueldo Integer'
Query1.Sql.Add(s);
Query1.ExecSQL;
end;
Query1.Free;
end;
Aunque me queda la duda de porque no sirve el otro método, al final no importa porque con este simple código se soluciona el problema. :-)
Gracias nuevamente.
__________________
Sitrico
|