У меня есть следующее устройство, которое я использовал для некоторых версий Delphi. Но теперь я тестирую X Е8, и я получаю сообщение об ошибке вSystem.Generics.Collections различия в XE8 по сравнению с другими версиями Delphi
function THolydayList.TEnglishNameCollection.ToArray: TArray<string>;
begin
Result := ToArrayImpl(fList.Count);
end;
Я думаю, что это имеет отношение к тому, что System.Generics.Collections перезаписывается в X Е8. Но на время времени у меня не было возможности заглянуть в это. Мой вопрос: кто-нибудь заглянул в это и может вести меня в направлении, в зависимости от того, что искать.
Пример моего использование данного устройства может быть следующим, где я обновить таблицу с датами, связанными с работодателем в течение данного года
procedure TsCalendarYearHolyday(aEmployer: string; aYear: integer);
var
STDDato: TStdDato;
HolyDay : THolyDay;
Query: TUniQuery;
begin
Query := frmUniConn.CreateQuery;
STDDato := TStdDato.Create;
STDDato.Year := aYear;
STDDato.Country := Denmark;
STDDato.MarkSunday := False;
STDDato.Language := hdNative;
STDDato.MakeHoliDays(0);
try
Query.SQL.Clear;
Query.SQL.Add('UPDATE ' + TableTsCalendarYear);
Query.SQL.Add(' SET flddayspecial = :flddayspecial');
Query.SQL.Add(' ,flddaydesc = :flddaydesc');
Query.SQL.Add(' ,flddaynormal = :flddaynormal');
Query.SQL.Add(' WHERE (flddate = :flddate)');
Query.SQL.Add(' AND (fldemployer = :fldemployer)');
for HolyDay in STDDato.Liste do
begin
try
Query.ParamByName('flddayspecial').AsBoolean := True;
Query.ParamByName('flddaydesc').AsString := Holyday.NativeName;
Query.ParamByName('flddaynormal').AsFloat := 0;
Query.ParamByName('flddate').AsDate := HolyDay.Date;
Query.ParamByName('fldemployer').AsString := aEmployer;
Query.Execute;
except
on E: exception do
Logfile.Error('U_TsCalendars.TsCalendarYearHolyday: ' + E.Message);
end;
end;
finally
FreeAndNil(STDDato);
Query.Free;
end;
end;
I added a link since this is the whole unit
«Я получаю сообщение об ошибке», какую ошибку? У вас не было времени посмотреть, что вызвало ошибку с вашим кодом, и вы ожидаете, что мы это сделаем? –
Извините, но забыл об ошибке [dcc32 Ошибка] U_Helligdage.pas (873): E2003 Необъявленный идентификатор: 'ToArrayImpl' – OZ8HP
Сторона примечания: оберните изменение текста SQL в 'SQL.BeginUpdate' и' SQL.EndUpdate'. –