Код: Выделить всё
CREATE TABLE IBcurrencydata
(
AINC INTEGER DEFAULT NULL, // инкримент;
CURDAT_DATE VARCHAR(255) DEFAULT NULL, // дата;
CURDAT_INFO BLOB SUB_TYPE 1); // настройки ini файла;
Код: Выделить всё
CREATE OR ALTER PROCEDURE GET_DATEVALUE(DATE_ VARCHAR(25))
RETURNS(INI_VALUE_ BLOB SUB_TYPE 1,
RECORD_COUNT_ INTEGER)
AS
BEGIN
SELECT COUNT (IBCURRENCYDATA.CURDAT_INFO)
FROM IBCURRENCYDATA
WHERE IBCURRENCYDATA.CURDAT_DATE=:DATE_
INTO :RECORD_COUNT_;
IF (RECORD_COUNT_>=001) THEN
BEGIN
SELECT FIRST 1 IBCURRENCYDATA.CURDAT_INFO
FROM IBCURRENCYDATA
WHERE IBCURRENCYDATA.CURDAT_DATE=:DATE_
ORDER BY IBCURRENCYDATA.AINC
INTO :INI_VALUE_;
SUSPEND;
END -- IF RECORD COUNT
ELSE INI_VALUE_='NONE';
SUSPEND;
END -- PROCEDURE
Код: Выделить всё
var Res_: String;
Begin
IB_storedproc_.UnPrepare;
IB_storedproc_.StoredProcName :='GET_DATEVALUE';
IB_storedproc_.Prepare;
IB_storedproc_.Params.ParamByName('DATE_').AsString:='27.07.2008';
IB_storedproc_.ExecProc;
Res_:=IB_storedproc_.ParamByName('INI_VALUE_').AsString;
End;
и если данные больше 255 символов - ...то это уже конкретно crash!
Подскажите пожалуйста альтернативу!