1. il componente che sto utilizzando è una tabella paradox che creo via codice a cui assegno di volta in volta il nome della tabella che devo aggiornare in modo tale da non utilizzare "tremila" componenti nella form.
2. il campo lo aggiungo così, o meglio il codice che uso è:
codice:
TbTable := TTable.Create(Self);
MyQry := TQuery.Create(Self);
try
MyQry.Databasename := EditDir.Text;
With TbTable Do begin
TableType := ttParadox;
Databasename := EditDir.Text;
TableName := 'Pippo';
if Exists then begin
Active := True;
sField := '';
For nF := 0 To FieldCount - 1 Do
if (Uppercase(Fields[nF].FieldName) <> 'PROGRESSIVO')
and (Uppercase(Fields[nF].FieldName) <> 'OGGETTO') then
sField := sField + ' DROP ' + Fields[nF].FieldName + ',';
Active := False;
if sField <> '' then begin
sField := Copy(sField,1,Length(sField)-1);
MyQry.Sql.Clear;
MyQry.Sql.Add('Alter Table "Pippo" ' + sField);
MyQry.ExecSql;
end;
Active := True;
sField := '';
if FindField('PROGRESSIVO') = nil then
sField := ' ADD PROGRESSIVO AutoInc,';
if FindField('OGGETTO') = nil then
sField := ' ADD OGGETTO Char(15),';
Active := False;
if sField <> '' then begin
sField := Copy(sField,1,Length(sField)-1);
MyQry.Sql.Clear;
MyQry.Sql.Add('Alter Table "Pippo" ' + sField);
MyQry.ExecSql;
end;
//DeleteIndex('');
AddIndex('', 'PROGRESSIVO', [ixPrimary]);
end;
End;
finally
TbTable.Free;
MyQry.Free;
end;
nel codice il problema mi viene dall'PROGRESSIVO
3. non uso database desktop perchè sto realizzando un programma per aggiornare un database (posto su diversi server) a seconda della presenza o meno di certi campi, di conseguenza visto che sui server esistono versioni differenti ho pensato di creare questo programma per allineare tutti i database al database definitivo in un colpo e per farlo diventa troppo lungo col database desktop perchè non si parla di due o tre tabelle con 4/5 campi.