Está ocorrendo o erro descrito por tratamento errado ao cerificar os fields e tabelas existentes. Correções:
UCBase, linha 2691:
for sFieldName in TableUsers.GetFieldList do
begin
if Trim(sFieldName) <> '' then begin
if not DataConnector.UCFindFieldTable(TableUsers.TableName, sFieldName) then
begin
SQLstmt := Format('alter table %s add %s %s;', [TableUsers.TableName, sFieldName, TableUsers.GetFieldType(sFieldName, Self.Criptografia)]);
DataConnector.UCExecSQL(SQLstmt);
end;
end;
end;
UCDBXConn, linha 193 e 195:
function TUCDBXConn.UCFindFieldTable(const Tablename, FieldName: string): Boolean;
var
TempList: TStringList;
begin
TempList := TStringList.Create;
try
if SchemaName <> '' then
FConnection.GetFieldNames(uppercase(Tablename), SchemaName, TempList)
else
FConnection.GetFieldNames(uppercase(Tablename), TempList);
TempList.Text := UpperCase(TempList.Text);
Result := TempList.IndexOf(UpperCase(FieldName)) > -1;
finally
FreeAndNil(TempList);
end;
end;