ÎÁ 1.5 ÔÁËÏÇÏ ÇÌÀËÁ ÎÅ ÚÁÍÅÞÁÌ, Á ÐÅÒÅÛÅÌ ÎÁ 2.0.2 É ÐÏÌÕÞÉÌ:

úÁÐÒÏÓ:

select TIMEHOURARRAY(Time_Log) as TIMEHOURARRAY_Time_Log,
       sum(TIMETOROUNDMINUTES(DURATION,0)) as Sum_Minutes,
       sum(SUMMA) as Sum_Money
from sp_select_log 
(:DateBegin,:DateEnd,:TimeBegin,:TimeEnd,:ID_EXT_Line,:Department,
                    :ID_CO_Line,:Operator,:MaskTelNumber,:Flag_Direction, 
:Flag_Transfer, :Flag_Answer, :ACC_Codes, -1)
where (TIMETOROUNDMINUTES(DURATION,0) > 0)
group by TIMEHOURARRAY(Time_Log)
order by 1

×ÙÚÙ×ÁÅÔ ÐÁÄÅÎÉÅ ÓÅÒ×ÅÒÁ Ó

 The user defined function:  TIMEHOURARRAY
    referencing entrypoint:  TimeHourArray
                 in module:  nntudf
 caused the fatal exception: Access violation.
  The code attempted to access a virtual
  address without privilege to do so.
 This exception will cause the Firebird server
 to terminate abnormally.

óÁÍÁ ÆÕÎËÃÉÑ
DECLARE EXTERNAL FUNCTION TIMEHOURARRAY
    TIME
RETURNS CSTRING(11) FREE_IT
ENTRY_POINT 'TimeHourArray' MODULE_NAME 'nntudf';

É ÅÅ ÔÅËÓÔ

const
  TIME_HOUR_ARRAY: array[0..23] of string = 
('00:00-01:00','01:00-02:00','02:00-03:00','03:00-04:00',
                                             
'04:00-05:00','05:00-06:00','06:00-07:00','07:00-08:00',
                                             
'08:00-09:00','09:00-10:00','10:00-11:00','11:00-12:00',
                                             
'12:00-13:00','13:00-14:00','14:00-15:00','15:00-16:00',
                                             
'16:00-17:00','17:00-18:00','18:00-19:00','19:00-20:00',
                                             
'20:00-21:00','21:00-22:00','22:00-23:00','23:00-24:00');

//ÐÅÒÅ×ÏÄ ÞÁÓÏ× ÉÚ Ttime × ÓÔÒÏËÏ×ÙÊ ×ÉÄ '00:00-01:00'
function TimeHourArray(var T: TFBTime): PChar; cdecl; export;
var S: ShortString;
begin
//**  Result := StrPCopy(Result, TIME_HOUR_ARRAY[FBDecodeTime(T).Hour]);
  S := TIME_HOUR_ARRAY[FBDecodeTime(T).Hour];
  Result := malloc(Length(S) + 1);
  StrPCopy(Result, S);
end;

÷ ÞÅÍ Ñ ÎÅ ÐÒÁ×?



Ответить