Как передать в UDF дату ?
Добавлено: 16 авг 2011, 00:11
Подскажите, как передать в UDF дату ? UDF написана на Делфи, пробовал такие варианты вызова:
function CsUkrDate2 ( var INDate : tDateTime; var InGenetive : Integer ) : PAnsiChar; cdecl; export;
function CsUkrDate2 ( var INDate : Double; var InGenetive : Integer ) : PAnsiChar; cdecl; export;
( в Делфи tDateTime == Double )
В базе функцию создавал так:
( DECLARE EXTERNAL FUNCTION CSUKRDATE2
DOUBLE PRECISION, INTEGER
RETURNS CSTRING(17) FREE_IT
ENTRY_POINT 'CsUkrDate2' MODULE_NAME 'SIMUDF' }
При вызове функции ошибка "conversion error from string "1-JAN-2000". Вызывать пробовал так:
csukrdate2( dbegin ,1)
csukrdate2(cast(dbegin as double precision),1)
csukrdate2(cast(dbegin as timestamp ),1)
Первый параметр при создании функции пробовал не DOUBLE PRECISION, а TIMESTAMP - аналогично
function CsUkrDate2 ( var INDate : tDateTime; var InGenetive : Integer ) : PAnsiChar; cdecl; export;
function CsUkrDate2 ( var INDate : Double; var InGenetive : Integer ) : PAnsiChar; cdecl; export;
( в Делфи tDateTime == Double )
В базе функцию создавал так:
( DECLARE EXTERNAL FUNCTION CSUKRDATE2
DOUBLE PRECISION, INTEGER
RETURNS CSTRING(17) FREE_IT
ENTRY_POINT 'CsUkrDate2' MODULE_NAME 'SIMUDF' }
При вызове функции ошибка "conversion error from string "1-JAN-2000". Вызывать пробовал так:
csukrdate2( dbegin ,1)
csukrdate2(cast(dbegin as double precision),1)
csukrdate2(cast(dbegin as timestamp ),1)
Первый параметр при создании функции пробовал не DOUBLE PRECISION, а TIMESTAMP - аналогично