RECDUMP program - textlib szerver lekerdezes Használat: recdump [paraméterek] keresőkérdés TextLib keresőnyelv formátumú lekérdezés --max N Az első N találat kiírása --skip S Az össszes, N db. találatból az első S találat kihagyása --dref Csak a datarefeket írja --hunmarc Hunmarc export /.hm fájlokba (ISO-8859-2 kódolással) --hunfile Hunmarc export fájlba (ISO-8859-2 kódolással) --append Hunmarc export során hozzáír a létező fájlhoz --count Csak a találatok darabszámát írja --nocount Ne írja ki a találatok darabszámát --fileprt FILEPRT modul használata nyomtatáshoz sablonnal --dep 1-3 TH_CPRN paramétere --sysall TH_CPRN paramétere --megj TH_CPRN paramétere --cols N N oszlop széles legyen a kimenet --config X dbclient.X.cfg es tlgw3.X.cfg hasznaláta --charset C Kiírás a megadott karakterkészlettel (pl. UTF-8) --php Rekordok kiírása php formátumban --explain Keresőkérdés végrehajtási tervének kiírása --runtime Keresőkérdés teljes végrehajtási idejének kiírása a találatok előtt --profile Keresőkérdés részletes végrehajtási idejének kiírása a találatok előtt --par X Keresőkérdés aktuális paraméterének megadása (%1 %2 stb.) --set X=N Halmaz név-sorszám helyettesítés megadása (pl. H5=1152) --expand Csak az expandot kéri a halmazból, nem ír semmit (teszt) --noopt Nem vonja össze az azonos ÉS és VAGY kereséseket --kvt Rekord olvasása mintha dref intézményben lennénk --help Ez a képernyő recdump.cfg fájlt keres az exe mellett. Ebben kell leírni, melyik szerverre milyen felhasználóként lépjen be. Tartalma pl: network=tcp servertcp=opac.konyvtar.hu:11345 user = dolgozo password = jelszavam loglevel = 2 logpath = /tmp Példák: recdump.exe "keress cim=biblia" --dref --nocount recdump.exe '(dref=b2,b3)' --hunfile /tmp/b.hm recdump.exe --explain "valogass &HALMAZ PELDANY KOTETE ures" --set HALMAZ=1152 recdump.exe "s0=(keress idoszam idokotete=@%1 es KIADASI_EV=%2?) vagy (keress idoszam idokotete=@%1 es KELTEZES=%2?); utalj s0 idoszam peldany" --count --par n164582 --par 2015 ----------------------------- Példa PHP program 1. Kiírja azoknak az olvasóknak a nevét/email címét, akik kérnek újdonságok hírlevelet. Ha az UJ_HIR= helyett KVT_HIR= van, akkor a könyvtári hírlevélre feliratkozottak adatait kapjuk meg. ------------------------------ egy email cím kiírása, 1-> Összes email cím kiírása. $nev=1; //0-> nincs név kiírás, 1-> van név kiírása. $kerkerd= "s1=keress user email=?;valogass s1 user UJ_HIR=1"; $user_tomb=kerkerd_run($kerkerd); if(is_array($user_tomb)) { foreach($user_tomb as $user) { if($sokcim) { foreach($user['EMAIL'] as $a => $ertek) { if( $nev ) print $user['NEV']." <"; print $ertek; print $nev ? ">\n" : "\n"; } } else { if( $nev ) print $user['NEV']." <"; print $user['EMAIL'][0]; print $nev ? ">\n" : "\n"; } } } else print "Hiba! Szerver kapcsolódási hiba, vagy üres halmaz!"; function kerkerd_run($kerkerd) { $rekordok=""; $command="/usr/share/textlib/exe/recdump.exe '$kerkerd' --nohome --charset iso-8859-2 --php"; $retstr = shell_exec($command); // recdump php kodot csinal $retstr = str_replace("","",$retstr); // veget levagni eval($retstr); // $rekordok nevu valtozo toltodik ki return $rekordok; } ?> -------------------------------------- Példa PHP program 2. 1 ? escapeshellarg($argv[1]) : "xxxx"; // lefuttatja a recdump-ot, talalatok szamat visszaadja function kerkerd_run($kerkerd,&$rekordok) { $par="--kvt ah1 --nohome --charset iso-8859-2 --php"; $command="/usr/share/textlib/exe/recdump.exe '$kerkerd' $par"; $retstr = shell_exec($command); // recdump php kodot csinal $retstr = str_replace("","",$retstr); // veget levagni eval($retstr); // $ThSize, $ThRecNum, $rekordok valtozok toltodnek ki return $ThRecNum; } // Na nezzuk... $rekorodok=array(); $kerkerd="keress user rekordokat, ahol userazon=$vonalkod"; $num=kerkerd_run($kerkerd,$rekordok); switch( $num ) { case 0: die("nincs $vonalkod azonositoju olvaso\n"); break; case 1: $erv=$rekordok[0]['OJEGYLEJARATA']; $nev=$rekordok[0]['NEV']; die("Nev: $nev, ervenyes: $erv\n"); break; default: die("lehetetlen: $num ilyen azonositoju olvaso\n"); break; } ?> -------------------------------------- Keresokerdes vegrehajtasi tervenek kiirasa (nem hajtja vegre a keresest): Pl.: recdump.exe --explain "valogass (keress cim=biblia) peldany vonalkod ures" Question: 'valogass (keress cim=biblia) peldany vonalkod ures' * TMP0 = KERESS CIM = 'biblia' * S0 = VALOGASS TMP0 PELDANY VONALKOD EMPTY *** ParNum/Hnum: 0/0, Size: 168 -------------------------------------- Fileprt hasznalata (reszletes leirasert lasd a FILEPRT modul leirasat). Megj: a fileprt kapcsolo hasznalatahoz .12-es vagy ujabb recdump.exe szukseges! Pl.: recdump.exe --fileprt olvaso-lista.txt --cols 132 --max 2 "(keress userazon=?)" A kimenet az alabbihoz hasonlo lesz: szam,nev,anyja,irszam,varos,cim,email,mobil "1","Mezei Virág","Tavi Rózsa","2800","Tatabánya","Ferike u. 1.","","70555xxxx" "2","Vezeték Neve Kábel","Kereszt Neve Feszület","2800","Tatabánya","Utód v. u. 16. 5/22.","","" Az elozo nyomtatas altal hasznalt olvaso-lista.txt sablon fajl: # textlib nyomtato fajl, olvaso nyomtatashoz ${ESCAPE:CSV} ${DATAFILE:USER} ${FEJLEC:szam,nev,anyja,irszam,varos,cim,email,mobil} "${NUM}", "{NEV}", "{ANYJANEVE}", "{LEVCIM?LEVIRSZAM:ALLIRSZAM}", "{LEVCIM?LEVVAROS:ALLVAROS}", "{LEVCIM?LEVCIM:ALLCIM}", "{EMAIL}", "{MOBIL_TEL}"