/ / perl sybase: zachyťte tlač uložených procedúr a vyberte príkaz - perl, tlač, sybase, postup

perl sybase: zachytávanie uloženej procedúry tlač a výber výpis - perl, tlač, sybase, postup

Mám uloženú procedúru, ktorá má veľa tlačových vyhlásení a ich výsledkom je tlačové vyhlásenie aj výsledková sada

Ako môžem zachytiť tlačový výpis a vybrať príkaz zvlášť pomocou Perl a (DBI / DBD alebo CTLib alebo DBLib)

odpovede:

1 pre odpoveď č. 1

http://search.cpan.org/~mewp/DBD-Sybase-1.12/Sybase.pm#syb_err_handler_(subroutine_ref) hovorí:

syb_err_handler (ref. podprogramu)
Tento atribút sa používa na nastavenie ad-hoc chybyspätné volanie obslužného programu (tj. podprogram perl), ktorý sa zavolá skôr, ako svoju prácu urobí bežný obslužný program chyby. Ak tento podprogram vráti hodnotu 0, bude chyba ignorovaná. To je užitočné pri spracovávaní príkazov PRINT v Transact-SQL, na spracovanie správ zo zálohovacieho servera, výstup z ukážky, výstup z dbcc atď. [zvýrazniť moje]

A ukazuje nasledujúci spôsob, ako to vyriešiť:

$dbh = DBI->connect("dbi:Sybase:server=troll", "sa", "",
{ syb_err_handler => &err_handler });

Ďalšia vec, ktorú som robil, keď som to vedelmoje procs by sa volalo hlavne z Perlu bol "select" všetok tlačený výstup, pričom prvý stĺpec bol "Message:" a druhý stĺpec ako správa, ktorú som chcel vytlačiť. Okolo toho som dokonca vytvoril akúsi funkciu printf-from-the-database.