NAME
PowerBuilder::ORCA - Perl API äëÿ ðàáîòû ñ .pbl è îáúåêòàìè PowerBuider
SYNOPSIS
use PowerBuilder::ORCA qw/:const/;
#îòêðûâàåì ORCA-ñåññèþ
my $ses=new PowerBuilder::ORCA(['d:\WORK\C\xs\PowerBuilder\ORCA\pbtest.pbl'],
'd:\WORK\C\xs\PowerBuilder\ORCA\pbtest.pbl',
'pbtest');
#òåïåðü ìîæíî âûïîëíÿòü ìàíèïóëÿöèè ñ îáúåêòàìè
my $rc=$ses->Export("pbtest.pbl","f_is_dir",PBORCA_FUNCTION,$buf);
my %h;
$ses->EntryInfo("pbtest.pbl","f_db_connect",PBORCA_FUNCTION,\%h);
#çàêðûâàåì ñåññèþ
$ses->Close();
DESCRIPTION
Ýòîò ìîäóëü äàåò âîçìîæíîñòü èñïîëüçîâàòü Powersoft Open Library API (ORCA) èç Perl. ORCA ïðåäñòàâëÿåò ñîáîé API äëÿ äîñòóïà ê ôóíêöèÿì PowerBuilder Library Manager. Èñïîëüçóÿ ORCA ìîæíî ïðîãðàììíî âûïîëíÿòü òå æå îïåðàöèè ïî óïðàâëåíèþ îáúåêòàìè è áèáëèîòåêàìè, ÷òî è â Powerbuilder Libarary painter. ORCA API áûëî ðàçðàáîòàíî äëÿ ïðîèçâîäèòåëåé CASE ñðåäñòâ, êîòîðûì íåîáõîäèì ïðîãðàììíûé äîñòóï ê ôàéëàì .pbl äëÿ ñîçäàíèÿ è ìîäèôèêàöèè îáúåêòîâ PowerBuilder. ERwin è S-Designor ðàáîòàþò ÷åðåç ORCA.
Äëÿ çàïóñêà ïðîãðàìì èñïîëüçóþùèõ ORCA API íåîáõîäèìà pborcNN.dll, êîòîðàÿ âõîäèò â ñîñòàâ professional è enterprise âåðñèé PB, ãäå NN - íîìåð âåðñèè PB. Äëÿ PB 6 - pborc60.dll.
Ïîäðîáíîå îïèñàíèå èäåîëîãèè è ôóíêöèé ORCA ìîæíî íàéòè â äîêóìåíòàöèè ïî PB (http://manuals.sybase.com/onlinebooks/group-pb/adt/orca/).
Ñîîòâåòñòâèå èìåí ôóíêöèé ORCA API è ôóíêöèé ïðåäîñòàâëÿåìûõ ORCA.pm:
ORCA API ORCA.pm
------------------------------ ------------------
PBORCA_SessionClose Close
PBORCA_SessionGetError GetError
PBORCA_SessionOpen new
PBORCA_SessionSetCurrentAppl SetAppl
PBORCA_SessionSetLibraryList SetLibList
PBORCA_LibraryCommentModify LibCommentModify
PBORCA_LibraryCreate LibCreate
PBORCA_LibraryDelete LibDel
PBORCA_LibraryDirectory LibInfo,LibDir,LibDirList
PBORCA_LibraryEntryCopy Copy
PBORCA_LibraryEntryDelete Del
PBORCA_LibraryEntryExport Export
PBORCA_LibraryEntryInformation EntryInfo
PBORCA_LibraryEntryMove Move
PBORCA_CheckOutEntry CheckOut
PBORCA_CheckInEntry CheckIn
PBORCA_ListCheckOutEntries ListCheckOutEntries
PBORCA_CompileEntryImport Import
PBORCA_CompileEntryImportList ImportList
PBORCA_CompileEntryRegenerate Regenerate
PBORCA_ExecutableCreate ExeCreate
PBORCA_DynamicLibraryCreate DllCreate
PBORCA_ObjectQueryHierarchy ObjectQueryHierarchy
PBORCA_ObjectQueryReference ObjectQueryReference
FUNCTIONS
Áîëüøèíñòâî ôóíêöèé âîçâðàùàþò íåíóëåâîé êîä îøèáêè â ñëó÷àå íåóäà÷íîãî çàâåðøåíèÿ. Ñîîáùåíèå îá îøèáêå ìîæíî ïîëó÷èòü ô-åé GetError.
Êîä Îïèñàíèå
--- -----------------------------------
0 Operation successful
-1 Invalid parameter list
-2 Duplicate operation
-3 Object not found
-4 Bad library name
-5 Library list not set
-6 Library not in library list
-7 Library I/O error
-8 Object exists
-9 Invalid name
-10 Buffer size is too small
-11 Compile error
-12 Link error
-13 Current application not set
-14 Object has no ancestors
-15 Object has no references
-16 Invalid # of PBDs
-17 PBD create error
-18 Source Management error
Äëÿ ôóíêöèé, â êîòîðûå ïàðìåòðîì ïåðåäàåòñÿ òèï îáúåêòà, çíà÷åíèåì ýòîãî ïàðàìåòðà äîëæåíà áûòü îäíà èç êîíñòàíò, îïèñàííûõ â ðàçäåëå "Exported constants".
Íà÷àëüíàÿ èíèöèàëèçàöèÿ
Ïåðåä íà÷àëîì ðàáîòû íåîáõîäèìî óêàçàòü èìÿ ORCA dll. Dll ORCA ðàçíûõ âåðñèé PB èìåþò ðàçíûå èìåíà.
- PowerBuilder::ORCA::LoadDll($dll_file);
- PowerBuilder::ORCA::LoadDll();
-
Çàãðóæàåò äëÿ ðàáîòû óêàçàííóþ dll. Åñëè ôàéë íå ñóùåñòâóåò è èìÿ ôàéëà óêàçàíî áåç ïóòè - èùåò åãî ïî PATH. Åñëè èìÿ ôàéëà íå çàäàíî - ïðîâåðÿåò ïåðåìåííóþ ñðåäû ORCA_DLL, åñëè îíà çàäàíà - çàãðóæàåò óêàçàíóþ â íåé dll. Åñëè ïåðåìåííàÿ ñðåäû íå çàäàíà - èùåò ïî PATH dll âåðñèè 9,8,7,6 èëè 5 è çàãðóæàåò ïåðâóþ íàéäåííóþ. Åñëè íè÷åãî íå ïîìîãëî - óìèðàåò.
Èìÿ çàãðóæåííîé dll ñîõðàíÿåòñÿ â ïåðåìåííîé $PowerBuilder::ORCA::ORCA_Dll.
Óïðàâëåíèå ñåññèåé
- $ses=new PowerBuilder::ORCA;
- $ses=new PowerBuilder::ORCA(\@lib_list);
- $ses=new PowerBuilder::ORCA(\@lib_list, $app_pbl, $app_name);
-
Ñîçäàåò íîâûé îáúåêò, îòêðûâàåò ORCA ñåññèþ, âîçâðàùàåò óêàçàòåëü íà îáúåêò. Âòîðîé âàðèàíò âûçîâà óñòàíàâëèâàåò òàêæå library list, ïîñëåäíèé âàðèàíò óñòàíàâëèâàåò library list è òåêóùåå ïðèëîæåíèå. ×àñòü ôóíêöèé ORCA òðåáóþò óñòàíîâëåííîãî library list è òåêóùåãî ïðèëîæåíèÿ (ñì. SetLibList è SetAppl).
- $rc=$ses->SetLibList($pbl1,$pbl2,...)
-
Óñòàíàâëèâàåò library list äëÿ ñåññèè. Library list èñïîëüçóåòñÿ äëÿ ïîèñêà ïðè ðàçðåøåíèè ññûëîê ì-äó îáúåêòàìè. Ïðè ïîèñêå áèáëèîòåêè ïðîñìàòðèâàþòñÿ â çàäàííîì ïîðÿäêå. Ïî âîçìîæíîñòè, ñëåäóåò óêàçûâàòü ïîëíûé ïóòü ê ôàéëàì. Ô-ÿ ìîæåò áûòü âûçâàíà äëÿ ñåññèè òîëüêî îäèí ðàç, åäèíñòâåííûé ñïîñîá èçìåíèòü ñïèñîê, ïîñëå òîãî êàê îí áûë óñòàíîâëåí, - çàêðûòü òåêóùóþ ñåññèþ è ñîçäàòü íîâóþ.
Ñëåäóþùèå ôóíêöèè ìîãóò èñïîëüçîâàòüñÿ áåç óñòàíîâêè library list:
CommentModify LibCreate LibDel LibInfo,LibDir,LibDirList Copy Del Export EntryInfo Move CheckOut CheckIn
Ôóíêöèè âûïîëíÿþùèå êîìïèëÿöèþ è âîçâðàùàþùèå èíôîðìàöèþ î ñâÿçÿõ ì-äó îáúåêòàìè òðåáóþò çàäàíèÿ library list.
- $rc=$ses->SetAppl($pbl,$obj)
-
Óñòàíàâëèâàåò òåêóùåå ïðèëîæåíèå. Ïåðåä âûçîâîì ýòîé ô-èè íåîáõîäèìî óñòàíîâèòü library list ô-åé SetLibList(). Ôóíêöèè âûïîëíÿþùèå êîìïèëÿöèþ è âîçâðàùàþùèå èíôîðìàöèþ î ñâÿçÿõ ì-äó îáúåêòàìè òðåáóþò âûçîâà ýòîé ô-èè. Ô-ÿ ìîæåò áûòü âûçâàíà äëÿ ñåññèè òîëüêî îäèí ðàç. Äëÿ ïåðåêëþ÷åíèÿ íà äðóãîå ïðèëîæåíèå íåîáõîäèìî çàêðûòü òåêóùóþ ñåññèþ è ñîçäàòü íîâóþ. Áèáëèîòåêè, ïî âîçìîæíîñòè, ñëåäóåò óêàçûâàòü ñ ïîëíûì ïóòåì. Áèáëèîòåêà $pbl äîëæíà âõîäèòü â Libarary list è åå èìÿ äîëæíî áûòü óêàçàíî â òî÷íîñòè òàêæå, êàê ïðè óñòàíîâêå Library list.
- $ses->Close()
-
Çàêðûâàåò ñåññèþ, îñâîáîæäàåò ðåñóðñû.
- $errmsg=$ses->GetError()
-
Âîçâðàùàåò îïèñàíèå ïîñëåäíåé îøèáêè ORCA ñåññèè. Ìîæåò áûòü âûçâàíà â ëþáîé ìîìåíò ïîñëå òîãî êàê êàêàÿ-ëèáî èç ô-èé ORCA çàâåðøèëàñü ñ ïðèçíàêîì îøèáêè. Âñå ôóíêöèè âîçâðàùàþò íåíóëåâîé êîä âîçâðàòà â ñëó÷àå îøèáêè. GetError âîçâðàùàåò ïîëíûé òåêñò ñîîáùåíèÿ îá îøèáêå. Åñëè îøèáîê íå áûëî, âîçâðàùàåòñÿ ïóñòàÿ ñòðîêà.
Ìàíèïóëÿöèè îáúåêòàìè
- $rc=$ses->EntryInfo($pbl,$obj,$type,\%hbuf)
-
Âîçâðàùàåò èíôîðìàöèþ îá îáúåêòå $obj òèïà $type èç áèáëèîòåêè $pbl. Èíôîðìàöèÿ âêëþ÷àåò â ñåáÿ êîììåíòàðèé, ðàçìåð èñõîäíîãî òåêñòà, ðàçìåð îáúåêòà è âðåìÿ ïîñëåäíåãî èçìåíåíèÿ. Èíôîðìàöèÿ âîçâðàùàåòñÿ â õýøå %hbuf. Êëþ÷è õýøà ñîîòâåòñòâóþò ïàðàìåòðàì ñòðóêòóðû PBORCA_ENTRYINFO:
Comments Êîììåíòàðèé CreateTime Âðåìÿ ñîçäàíèÿ ObjectSize Ðàçìåð SourceSize Ðàçìåð èñõîäíîãî òåêñòà
Íàáëþäåíèÿ: SourceSize ORCA âîçâðàùàåò íåêîððåêòíî.
- $rc=$ses->Export($pbl,$obj,$type,$buf)
-
Ïîìåùàåò èñõîäíûé òåêñò îáúåêòà $obj òèïà $type èç áèáëèîòåêè pbl â áóôåð $buf.
Ïðè ýêñïîðòå èñõîäíîãî òåêñòà ñðåäñòâàìè PowerBuilder IDE â ôàéë ïîìèìî ñîáñòâåííî èñõîäíîãî òåêñòà äîïèñûâàþòñÿ äâå ñòðîêè çàãîëîâêà. Ôóíêöèÿ Export ýòîãî íå äåëàåò, $buf ñîäåðæèò òîëüêî èñõîäíûé òåêñò îáúåêòà.
- $rc=$ses->Import($pbl,$obj,$type,$comment,$syntax,\$errbuf)
-
Èìïîðòèðóåò èñõîäíûé òåêñò $syntax îáúåêòà $obj òèïà $type â áèáëèîòåêó $pbl, êîìïèëèðóåò îáúåêò. $comment - êîììåíòàðèé ê îáúåêòó (òîò, ÷òî ïîêàçûâàåò library painter). Åñëè áûëè îøèáêè êîìïèëÿöèè $rc==-11, â $errbuf - ñîîáùåíèÿ îá îøèáêàõ. Áèáëèîòåêà $pbl äîëæíà âõîäèòü â Libarary list è åå èìÿ äîëæíî áûòü óêàçàíî â òî÷íîñòè òàêæå, êàê ïðè óñòàíîâêå Library list.
- $rc=$ses->ImportList(\$errbuf, { Library=>'lib1.pbl', Name=>'f_func1', Type=>PBORCA_FUNCTION, Comment=>'comment 1', Syntax=>'source_code_of_f_func1' }, { Library=>'lib2.pbl', Name=>'another_object_name', Type=>PBORCA_type_of_object, Comment=>'comment 2', Syntax=>'source_code_for_object' } ... );
-
Àíàëîã Import, íî çà îäèí âûçîâ îáðàáàòûâàåòñÿ íåñêîëüêî îáúåêòîâ. Ïðåäíàçíà÷åíà äëÿ èìïîðòà íåñêîëüêèõ âçàèìîñâÿçàííûõ îáúåêòîâ, íàïðèìåð îêíà, åãî ìåíþ è user_object-à, êîòîðûé îíè èñïîëüçóþò. Âàæíî ñîáëþäàòü ïðàâèëà ïîñëåäîâàòåëüíîñòè ðàçìåùåíèå èíôîðìàöèè îá îáúåêòàõ â ìàññèâàõ. Ïðåäêè äîëæíû ðàçìåùàòüñÿ ïåðåä ïîòîìêàìè, user_object-û, íà êîòîðûå ññûëàþòñÿ äðóãèå îáúåêòû, äîëæíû ðàçìåùàòüñÿ ïåðåä ýòèìè îáúåêòàìè. $errbuf - áóôåð äëÿ âîçâðàòà èíôîðìàöèè îá îøèáêàõ, ìîæåò áûòü ñêàëÿðîì èëè ìàññèâîì (ñì. îïèñàíèå Regenerate). Áèáëèîòåêà $pbl äîëæíà âõîäèòü â Libarary list è åå èìÿ äîëæíî áûòü óêàçàíî â òî÷íîñòè òàêæå, êàê ïðè óñòàíîâêå Library list.
- $rc=$ses->Regenerate($pbl,$obj,$type,\$errbuf)
-
Êîìïèëèðóåò îáúåêò $obj òèïà $type â áèáëèîòåêå $pbl. Åñëè áûëè îøèáêè êîìïèëÿöèè $rc==-11, â $errbuf - ñîîáùåíèÿ îá îøèáêàõ. $errbuf ìîæåò áûòü ññûëêîé íà ñêàëÿð èëè ññûëêîé íà ìàññèâ.  ïåðâîì ñëó÷àå ñêàëÿð ñîäåðæèò âñå ñîîáùåíèÿ îá îøèáêàõ, îáúåäèíåííûå â ñòðîêó. Âî âòîðîì ñëó÷àå âîçâðàùàåòñÿ ìàññèâ ñîîáùåíèé, ïîëó÷åííûõ îò PB â õýøàõ, ïîâòîðÿþùèõ ñòðóêòóðó pborca_comperr:
Level MessageNumber MessageText ColumnNumber LineNumber
- $rc=$ses->Copy($src_pbl,$dst_pbl,$obj,$type)
-
Êîïèðóåò îáúåêò $obj òèïà $type èç áèáëèîòåêå $src_pbl â áèáëèîòåêó $dst_pbl.
- $rc=$ses->Move($src_pbl,$dst_pbl,$obj,$type)
-
Ïåðåíîñèò îáúåêò $obj òèïà $type èç áèáëèîòåêå $src_pbl â áèáëèîòåêó $dst_pbl.
- $rc=$ses->Del($pbl,$obj,$type)
-
Óäàëÿåò îáúåêò $obj òèïà $type èç áèáëèîòåêè $pbl.
Ìàíèïóëÿöèè áèáëèîòåêàìè
- $rc=LibInfo($pbl,$comment,$n_obj)
-
Âîçâðàùàåò èíôîðìàöèþ î áèáëèîòåêå $pbl. $comment - êîììåíòàðèé, $n_obj - ÷èñëî îáúåêòîâ â áèáëèîòåêå.
- $rc=$ses->LibDir($pbl,\@objects);
-
Ìàññèâ @objects çàïîëíÿåòñÿ èíôîðìàöèåé îá îáúåêòàõ â áèáëèîòåêå $pbl. Êàæäûé ýëåìåíò @objects - ññûëêà íà õýø ñî ñëåäóþùèìè êëþ÷àìè:
Name èìÿ îáúåêòà Type òèï îáúåêòà Size ðàçìåð îáúåêòà CreateTime âðåìÿ ñîçäàíèÿ îáúåêòà Comment êîììåíòàðèé
- =$ses->LibDirList($pbl[,$type])
-
Âîçâðàùàåò ññûëêó íà ìàññèâ ñ èìåíàìè îáúåêòîâ çàäàííîãî òèïà â áèáëèîòåêå $pbl. Åñëè òèï íå çàäàí - âîçâðàùàþòñÿ èìåíà âñåõ îáúåêòîâ. Ìîæíî íåïîñðåäñòâåííî èñïîëüçîâàòü â öèêëàõ: for my $obj_name ( LibDirList('lib1.pbl') ) { ... }
- $rc=$ses->LibCreate($pbl,$comment)
-
Ñîçäàåò áèáëèîòåêó ñ èìåíåì $pbl. Íå òðåáóåò óñòàíîâêè library list.
- $rc=$ses->LibDel($pbl)
-
Óäàëÿåò áèáëèîòåêó ñ èìåíåì $pbl. Íå òðåáóåò óñòàíîâêè library list.
- $rc=$ses->LibCommentModify($pbl,$new_comment);
-
Óñòàíàâëèâàåò êîììåíòàðèé äëÿ áèáëèîòåêè $pbl. Íå òðåáóåò óñòàíîâêè library list.
VCS èíòåðôåéñ
- $rc=$ses->CheckOut($obj,$type,$master_pbl,$work_pbl,$user_id,$copy)
-
Âûïîëíÿåò check out äëÿ îáúåêòà $obj òèïà $type èç îñíîâíîé áèáëèîòåêè $master_pbl â ðàáî÷óþ áèáëèîòåêó $work_pbl. Çíà÷åíèå $copy: 0 - óñòàíîâèòü ñòàòóñ "check out" äëÿ îáúåêòà â master è work áèáëèîòåêàõ, îñòàâèâ îáúåêò â work áèáëèîòåêå áåç èçìåíåíèé; 1 - óñòàíîâèòü ñòàòóñ è ñêîïèðîâàòü îáúåêò èç master â work áèáëèîòåêó. $user_id - id ïîëüçîâàòåëÿ.
- $rc=$ses->CheckIn($obj,$type,$master_pbl,$work_pbl,$user_id,$move)
-
Âûïîëíÿåò check in äëÿ îáúåêòà $obj òèïà $type èç ðàáî÷åé áèáëèîòåêè $work_pbl â îñíîâíóþ áèáëèîòåêó $master_pbl. $move: 0 - ñáðîñèòü check out ñòàòóñ îáúåêòîâ, íå îáíîâëÿòü îáúåêò â master áèáëèîòåêå è íå óäàëÿòü êîïèþ îáúåêòà èç work áèáëèîòåêè; 1 - ñáðîñèòü ñòàòóñ è ïåðåìåñòèòü êîïèþ îáúåêòà èç work áèáëèîòåêè â master. $user_id - id ïîëüçîâàòåëÿ, ñäåëàâøåãî check out.
- $rc=$ses->ListCheckOutEntries($pbl,\@storage);
-
Ïîìåùàåò check out èíôîðìàöèþ îá îáúåêòàõ â ìàññèâ @storage. Êàæäûé ýëåìåíò ìàññèâà - õýø ñî ñëåäóþùèìè êëþ÷àìè:
LibName èìÿ áèáëèîòåêè Name èìÿ îáúåêòà UserID èìÿ ïîëüçîâàòåëÿ Mode ñòàòóñ (s - source, r - registered, d - distanation)
Õýø ñîîòâåòñòâóåò ñòðóêòóðå PBORCA_CHECKOUT.
Ññûëêè è íàñëåäîâàíèå
- $rc=$ses->ObjectQueryHierarchy($pbl,$obj,$type,\@storage);
-
Ïîìåùàåò èíôîðìàöèþ îá èåðàðõèè ïðåäêîâ îáúåêòà $obj òèïà $type èç áèáëèîòåêè $pbl â ìàññèâ @storage. Îïåðàöèÿ ïðèìåíèìà òîëüêî ê îáúåêòàì òèïà window, menu è user_object. Äîëæåí áûòü óñòàíîâëåí library list, $pbl äîëæíà â íåãî âõîäèòü.
- $rc=$ses->ObjectQueryReference($pbl,$obj,$type,\@storage);
-
Ïîìåùàåò èíôîðìàöèþ îá îáúåêòàõ, íà êîòîðûå ññûëàåòñÿ îáúåêò $obj òèïà $type èç áèáëèîòåêè $pbl â ìàññèâ @storage. Äîëæåí áûòü óñòàíîâëåí library list, $pbl äîëæíà â íåãî âõîäèòü. Êàæäûé ýëåìåíò ìàññèâà - õýø ñî ñëåäóþùèìè êëþ÷àìè:
LibName èìÿ áèáëèîòåêè Name èìÿ îáúåêòà Type òèï îáúåêòà RefType òèï ññûëêè (o - open, s - simple) [íåäîêóìåíòèðîâàííî]
Õýø ñîîòâåòñòâóåò ñòðóêòóðå PBORCA_REFERENCE.
Ïîñòðîåíèå èñïîëíÿåìûõ ìîäóëåé
- $rc=$ses->DllCreate($pbl,$pbr,$options);
-
Ñîçäàåò PowerBuilder Dynamic Library (PBD) èëè PowerBuilder Dll èç áèáëèîòåêè $pbl. $pbr - èìÿ ôàéëà ðåñóðñîâ èëè undef, åñëè ôàéëà ðåñóðñîâ íåò. $options - êîìáèíàöèÿ èç ôëàãîâ çàäàííûõ â "Ïàðàìåòðû ãåíåðàöèè êîäà". Library list è current application äîëæíû áûòü óñòàíîâëåíû. Åñëè ïëàíèðóåòñÿ ïðèëîæåíèå ñ äèíàìè÷åñêèìè áèáëèîòåêàìè, èõ íåîáõîäèìî ïîñòðîèòü ïåðåä ïîñòðîåíèåì exe ôàéëà.
- $rc=$ses->ExeCreate($exe,$ico,$pbr,\@pbd_flags,$options,\$errors);
-
Ñîçäàåò exe ôàéë ïðèëîæåíèÿ â P-êîäå èëè â ìàøèííîì êîäå. Äëÿ ìàøèííîãî êîäà ìîæíî çàäàâàòü òèï îïòèìèçàöèè è âêëþ÷åíèå îòëàäî÷íîé èíôîðìàöèè. Ïðèëîæåíèå ñîçäàåòñÿ â ñîîòâåòñòâèè ñ library list.  ìàññèâå pbd_flags ìîæíî óêàçàòü, êàêèå áèáëèîòåêè áóäóò äèíàìè÷åñêèìè è óæå îòêîìïèëèðîâàíû â pbd/dll, à êàêèå ñëåäóåò âêëþ÷èòü â exe ôàéë. Library list è current application äîëæíû áûòü óñòàíîâëåíû.
Ïàðàìåòðû: $exe - èìÿ èñïîëíÿåìîãî ôàéëà (íå äîëæíî áûòü íà äèñêå, èíà÷å - îøèáêà) $ico - èêîíêà $pbr - ôàéë ðåñóðñîâ @pbd_flags - äëÿ êàæäîé pbl â library list 0 - âêëþ÷èòü îáúåêòû â .exe ôàéë; 1 - èñïîëüçîâàòü óæå ïîñòðîåííóþ pbd/dll ÷èñëî ýëåìåíòîâ â ìàññèâå äîëæíî ñîîòâåòñòâîâàòü ÷èñëó áèáëèîòåê â library list $options - ïàðàìåòðû ãåíåðàöèè êîäà (ñì. "Ïàðàìåòðû ãåíåðàöèè êîäà") $errors - áóôåð îøèáîê.
Exported constants
Êîñòàíòû ýêñïîðòèðóþòñÿ, åñëè óêàçàí òýã const:
use use PowerBuilder::ORCA qw/:const/;
Òèïû îáúåêòîâ
PBORCA_APPLICATION
PBORCA_DATAWINDOW
PBORCA_FUNCTION
PBORCA_MENU
PBORCA_PIPELINE
PBORCA_PROJECT
PBORCA_PROXYOBJECT
PBORCA_QUERY
PBORCA_STRUCTURE
PBORCA_USEROBJECT
PBORCA_WINDOW
Ïàðàìåòðû ãåíåðàöèè êîäà
PBORCA_P_CODE
PBORCA_MACHINE_CODE
PBORCA_MACHINE_CODE_NATIVE
PBORCA_MACHINE_CODE_16
PBORCA_P_CODE_16
PBORCA_OPEN_SERVER
PBORCA_TRACE_INFO
PBORCA_ERROR_CONTEXT
PBORCA_MACHINE_CODE_OPT
PBORCA_MACHINE_CODE_OPT_SPEED
PBORCA_MACHINE_CODE_OPT_SPACE
PBORCA_MACHINE_CODE_OPT_NONE
HISTORY
- V0.03 10/11/2002
-
- ïîëíîöåííûé òåñòîâûé ïðèìåð, ïðîâåðåí íà PB5, PB6 è PB8 - äîðàáîòêè è èñïðàâëåíèÿ îøèáîê â EntryInfo,Import,ImportList - íå áûëà îïèñàíà ôóíêöèÿ Del â äîêóìåíòàöèè - òåïåðü ìîäóëü ìîæåò ðàáîòàòü ñ ëþáîé âåðñèåé PB - dll ORCA ëèíêóåòñÿ äèíàìè÷åñêè
BUGS
Ãäå-òî âíóòðè ORCA åñòü memory leak.  ÷àñòíîñòè, ýòèì ãðåøíà PBORCA_LibraryDirectory, âûçûâàåìàÿ ñ callback-îì. Ñîîòâåòñòâåííî, ïàìÿòü óòåêàåò ïðè âûçîâå LibDir, õîòÿ åå XS êîä êîððåêòåí, ñ òî÷êè çðåíèÿ ðàáîòû ñ ïàìÿòüþ. Íå äóìàþ, ÷òî ýòî ñîçäàñò ïðîáëåìû â ðåàëüíîé æèçíè.
Âñå ôóíöèè áûëè îòòåñòèðîâàíû íî îøèáêè âîçìîæíû, òåì áîëåå, ÷òî ýòî ïåðâûé ðåëèç. Ñîîáùàéòå ïî e-mail.
AUTHOR
Ilya Chelpanov, ilya@macro.ru, chelpanov@mail.ru http://i72.narod.ru/
Ýòîò ìîäóëü - ñâîáîäíîå ÏÎ. Âû ìîæåòå èñïîëüçîâàòü, ðàñïðîñòðàíÿòü è ìîäèôèöèðîâàòü åå íà òåõ æå óñëîâèÿõ, ÷òî è ñàì Perl.
SEE ALSO
PowerBuilder online books, "ORCA Guide" http://manuals.sybase.com/onlinebooks/group-pb/adt/orca/
5 POD Errors
The following errors were encountered while parsing the POD:
- Around line 3:
Non-ASCII character seen before =encoding in 'äëÿ'. Assuming CP1252
- Around line 104:
You forgot a '=back' before '=head2'
- Around line 109:
'=item' outside of any '=over'
- Around line 122:
You forgot a '=back' before '=head2'
- Around line 124:
'=item' outside of any '=over'