Fulltext_index_doc

Internφ programovacφ jazykC/C++PascalSQL

function Fulltext_index_doc(var ft_label : string; docid : integer; var filename : string; var format :string) : Boolean;
BOOL cd_Fulltext_index_doc(cdp_t cdp, const char * ft_label, t_docid docid, const char * filename, const char * format);
function cd_Fulltext_index_doc(cdp : cdp_t; ft_label : PChar; docid : integer; filename, format : PChar) : Boolean;
function Fulltext_index_doc(IN ft_label CHAR(52), IN docid INT, IN doc CLOB, IN format CHAR(10), IN mode INT) returns Boolean;

Parametry:

ft_label oznaΦenφ fulltextovΘho systΘmu;
docid Φφslo dokumentu;
filename plnΘ jmΘno souboru obsahujφcφho dokument;
format formßt dokumentu (prßzdn² - Φist² text, WPD, RTF, DOC, HTM);
doc dokument nebo odkaz na dokument podle hodnoty;
mode zp∙sob p°edßnφ dokumentu

Od verze:

7.0

Popis:

Funkce ulo₧φ dokument specifikovan² parametry do fulltextovΘho systΘmu oznaΦenΘho parametrem ft_label.

Je-li funkce volßna v klienta, pak dokument musφ b²t ulo₧en v souboru, jeho₧ plnΘ jmΘno je p°edßno jako parametr filename. Je-li funkce volßna na serveru, pak lze dokument p°edat n∞koliker²m zp∙sobem, p°iΦem₧ zp∙sob p°edßnφ popisuje parametr mode takto:

0 - dokument je obsahem parametru doc;

1 - dokument je v souboru, jeho₧ jmΘno je v parametru doc;

2 - dokument je OLE objekt (embedded nebo linked) umφst∞n² v parametru doc..

Pokud fulltextov² systΘm ji₧ obsahuje informace o obsahu dokumentu oznaΦenΘho parametrem docid, jsou p°ed zaindexovßnφm p°edanΘho dokumentu vymazßny.

Pokud zp∙sob ulo₧enφ dokumentu je 1 nebo 2, pak mφsto jmΘna formßtu dokumentu lze uvΘst "BYSUFFIX". Formßt se pak zvolφ automaticky podle p°φpony jmΘna souboru.

Hodnota funkce:

Funkce vracφ TRUE p°i ·sp∞chu, FALSE p°i chyb∞.

P°φklad:

P°edpoklßdejme, ₧e tabulka TXTAB obsahuje text ve sloupci TX a Φφslo tohoto dokumentu ve sloupci CISLO_DOC. Text je bu∩ prost² text nebo je ve formßtu RTF. Zaindexovßnφ lze pak provßd∞t v triggeru definovanΘm takto:

TRIGGER txupd AFTER UPDATE ON Txtab
REFERENCING NEW AS nove FOR EACH ROW
BEGIN
  IF Substring(nove.tx FROM 1 FOR 5) = '{\rtf' THEN
    CALL Fulltext_index_doc('', nove.cislo_doc, nove.tx, 'rtf', 0);
  ELSE
    CALL Fulltext_index_doc('', nove.cislo_doc, nove.tx, '', 0);
  END IF;
END

Tento trigger p°edpoklßdß, ₧e se Φφslo dokumentu p°i operaci UPDATE nem∞nφ.

Viz