to Attid
Там есть 3 описания этой процедуры:
- Код: Выделить всё
procedure EncodeTimeStamp(const DateTime: TDateTime; v: PISCTimeStamp);
begin
v.timestamp_date := Round(int(DateTime)) + DateOffset;
v.timestamp_time := ISC_TIME(Round(Frac(DateTime) * TimeCoeff));
end;
procedure EncodeTimeStamp(const Date: Integer; v: PISCTimeStamp);
begin
v.timestamp_date := Date + DateOffset;
v.timestamp_time := 0;
end;
procedure EncodeTimeStamp(const Time: Cardinal; v: PISCTimeStamp);
begin
v.timestamp_date := DateOffset;
v.timestamp_time := Time;
end;
Ты явно вызываешь вторую.
Компилятор то это съест, но будет ли это потом работать?
По идее надо точно идентифицировать тип первого параметра.
Т.е. если это TDateTime, то -- EncodeTimeStamp(DateTime(Value), PISCTimeStamp(sqldata));
если это Integer, то -- EncodeTimeStamp(integer(Value), PISCTimeStamp(sqldata)); // как ты и предлогаешь
если это Cardinal, то -- EncodeTimeStamp(cardinal(Value), PISCTimeStamp(sqldata));
По моему все эти типы определены в конечном счете как LongInt.
Тогда непонятно, почему надо было писать разные процедуры...
Короче, что-то я не догоняю