Professional Documents
Culture Documents
Oe 0112 Pythia 002
Oe 0112 Pythia 002
dk
Bemærk: Dette tidsskrift må kun distribueres i
virksomheder med OracleEkspert medlemskab
#9
OUGDK 23 RELATIONSDATABASENS BEGRÆNSNINGER 4
Rune Mørk
OUGDK Stormøde
Jeg har gennem mange år virket som Oracle konsulent, og ved gentagne lej-
Møde: 12. december 2001 kl. 13:30
ligheder prist relationsdatabasens principper som værende logiske,
DBA SIG forståelige og letanvendelige. På et projekt, jeg gennemførte for nylig, hvor
Næste møde er endnu ikke fastlagt. jeg skulle fremstille skærmbilleder i forms, fandt jeg en af de relationelle prin-
cippers ofre, nemlig brugervenligheden. I denne artikel vil jeg beskrive den
Designer SIG
del af datamodellen det drejer sig om, forklare om andre situationer hvor
Møde: 9. januar 2002 kl. 13:30 samme model vil frembringe de samme problemer, tilbyde en løsningsmodel
Developer SIG og i forbindelse med denne gennemgå lidt teori om tilstandsmaskiner, da de
Næste møde er endnu ikke fastlagt.
viste sig at være meget anvendelige til dette problem.
og
Oracle vinder undervisningspris
in the generated code. Some page
Oracle gør MS Outlook ‘Unbreakable’ layout customization has also been
K l i p u d
op
Oracle ”Help Us Help” Foundation possible by adding code to the User
Small Business Suite på top 100 Text areas of WSG module pages.
Many people are familiar with these h æ n g
two types of WSG module cus-
tomization. This paper explores a
method to extend standard WSG
s i d e 11
module page layout through cus-
tomizing the WebServer Generator
Se
Library (WSGL) package. It is divid-
ed into the following sections.
ORACLEEKSPERT-PRISEN 2001
Leder Marc de Oliveira, ansvarshavende redaktør.
Julen er en tid for hensyn, omsorg og gaver. Om det er baggrunden for
at Oracle (ud over sine eBay-auktioner og Help Us Help Foundation) har
besluttet at udvikle en ny generator til Designer, er nok ikke sandsynligt,
men ikke desto mindre sender det et signal om, at Oracle ikke helt har
afskrevet Designer endnu. Oplag: . . . . . . . . . . . . . . . .250 kopier
Jeg refererer her til Product Manager Sue Harpers offentliggørrelse på
ODTUGs mailliste af en ny BC4J generator, som er på tegnebrættet til Udgives af:
Oracle9i Developer Suite release 2 (sidst i 2002). . . . . . . . . . . . . . .PYTHIA Information
Den danske Designer SIG arrangerede straks en telekonference med . . . . . . . . . . . . . . . . . . .Kongensvej 3
hendes chef, Simon Day, den 28. november (hvor der alligevel var . . . . . . . . . . . . . .2000 Frederiksberg
Designer SIG møde), hvor han fortalte om, hvad vi kan vente os af BC4J
. . . . . . . . . . . . . . . . . . . . . . .Danmark
generatoren. Han bekræftede det, som Sue Harper havde sagt, og
uddybede at der i første omgang kun er tale om at generere BC4J kom-
ponenter (dvs ikke nogen brugergrænseflade). Ledelsesgruppen er dog Telefon: . . . . . . . . . . . . . . . .26279991
opmærksom på at der vil være et stort ønske om dette, hvorfor man reg- Fax: . . . . . . . . . . . . . . . . . . .26199991
ner med, på et senere tidspunkt, måske at kunne generere en bruger- Email: . . . . . .Info@OracleEkspert.dk
grænseflade i det nye JRAD-produkt, som man arbejder på Web: . . . . . . .www.OracleEkspert.dk
(JDevelopers svar på Forms). JRAD er først planlagt til at være færdigt
om 18 måneder, så en Designer-generator til JRAD er ikke på tegne-
Ansvarshavende redaktør:
brættet endnu. Næste Designer SIG-møde vil have et indlæg om JRAD.
. . . . . . . . . . . . . . . . .Marc de Oliveira
Simon Day svarede også på de udvidelsesønsker til Designer, han mod- . . . . . . . . . . .Marc@OracleEkspert.dk
tog ved OUGDKs Designer SIG møde den 19. september. Den 19.
september var hans budskab at Designer hovedsageligt vil blive udvidet
ift datamodellering, mens applikationsgenerering ikke ville få megen pri- Rettigheder:
oritet. Ved telekonferencen den 28. november var forbedringer til både PYTHIA Information ejer alle rettigheder
Forms-generatoren og Web Server generatoren også kommet med. til indholdet af OracleEkspert.
Kopiering af bladet i dele eller helhed
Også OUGDK er begyndt at røre på sig. De har inviteret til stormøde den må kun ske efter skriftligt samtykke fra
12. december (se programmet på side 23), og noget tyder på at PYTHIA Information.
hjemmesiden (www.oug.dk) når at komme op at køre inden mødet!
PYTHIA Information forbeholder sig ret-
Det er Miracle A/S, som har tilbudt at sørge for at hjemmesiden kommer tigheder til at offentliggøre og genudgive
til at virke igen. Det lader dog til, at planerne om at bruge WebDB til at de trykte artikler, tips mv, samt at tillade
lave en mere dynamisk hjemmeside er blevet udskudt. bladets læsere at anvende indholdet til
såvel personlige som kommercielle for-
Alt i alt tyder det på, at vi får et rigtig spændende 2002. mål.
Endelig skal vi også have uddelt dette års OracleEkspert-pris til forfat- PYTHIA Information kan ikke drages til
teren af årets bedste artikel. Endnu en gang er det ikke artiklens længde, ansvar for eventuelle fejl og mangler i
Indholdet af OracleEkspert. Artikler mv
der har gjort udslaget, men en klar, metodisk og systematisk tilgang til
stilles tilrådighed uden garanti af nogen
stoffet, samt emnets generelle relevans og anvendelsesmuligheder. art.
Disse elementer forenes på elegant vis af Rune Mørk i artiklen
Relationsdatabasens Begrænsninger, som beskriver implementeringen
af en relevant tilstandsmaskine i Forms. Artiklen kan læses i dette num- Pris:
mer af OracleEkspert. Prisen er som tidligere tre originaltegninger af Enkeltnummer . . . . . . . . . .DKK 125,00
årets tegneseriestrips Oraclerne tegnet af Jesper Dyjak, indrammet og 1 års abonnement . . . . . . .DKK 600,00
med indgraveret skilt.
Udover OracleEkspert-prisen har vi i år introduceret en ny pris til den per- Ved samtidig køb af minimum 5 kopier til
son, organisation eller virksomhed, som har været mest entusiastisk og samme adresse (enkeltnummer eller
succesfuld i arbejdet med at støtte bladet, hvadenten det er udadrettet abonnement) gives 40% rabat på den
samlede pris.
ved at udbrede kendskabet til bladet blandt læsere, skribenter og annon-
cører, eller indadrettet ved at forbedre bladets indhold, struktur eller pro- Priserne er excl moms.
duktion. Vi kalder prisen for OracleEkspert-støtten.
Selv om der i år har været en del enkeltpersoner og virksomheder, som Annoncer:
har ydet uvurderlig støtte til bladet, så kunne prisen ikke gå til andre end Annoncer til OracleEkspert nr 10 skal
Mogens Nørgaard og Miracle A/S for deres ihærdige leverancer af artik- være PYTHIA Information i hænde sen-
est den 11. januar 2001.
ler, indrykning af annoncer i bladet, og endelig direkte, farverig og sober
kritik af redaktørens holdninger (som blev publiceret i OracleEkspert nr Annoncepriser kan findes på:
6). Uanset om man er enig i Mogens’ tilbedelse af Wait-interface’et eller www.OracleEkspert.dk
ej, så er der ingen tvivl om, at hans artikler har gjort bladet mere under-
holdende.
OracleEkspert-støtten er ligesom OracleEkspert-prisen et sæt på tre
Oraclerne originaltegninger i glas og ramme.
Og med dette vil vi ønske alle vore læsere en rigtig glædelig jul og et godt
nytår. Password: bdamsg
Vandt d u ikke
Ora cleEkspert-
prisen 2001?
Men for at kunne tolke og forstå denne syntaks Den grafiske fremstilling af en sådan maskine kan
skulle der udvikles en syntax fortolker (en såkaldt overføres til en tabelstruktur som kan ses i figur 4.
parser), et stykke software der kunne modtage en Kasserne med de grå markeringer markerer
streng og fortælle tilbage hvilke kombinationer af hvornår vi har opnået tilstrækkelig med information
sider og skæringer det drejede sig om, således at til at kunne gemme vores data. Hvis vi for eksempel
formen kunne registrere angivelserne korrekt. En har en tekststreng med indholdet ”1/1-4,7-10”, ved
sådan parser laves udfra de pricipper der omhand- vi når kommaet forekommer at vi skal gemme infor-
ler en tilstandsmaskine. mationerne om side på 1/ 1 ; 1/ 2; 1/ 3 ; 1/ 4.
Af tabeller i figur 4 kan vi se at i tilstandene a, 1a og
Tilstandsmaskiner 2a, kun eksisterer for at sikre at tallene består af
Tilstandsmaskiner kan beskrives på forskellig vis, mindst et ciffer. Der er også nemt at se, enten udfra
og kendetegner en indretning vi forestiller os mod- grafen eller tabellen at tilstandsmaskinen er korrekt
tager et tegn ad gangen og på baggrund af dette i en matematisk forstand, idet ingen kasser i tegnin-
beslutter hvilken aktion der skal tages. Egentlig kan gen må have ens pile ind og ud fra tilstanden, mens
det udefra betegnes som en ”black box”, som på i tabellen må ingen af rækkerne være ens, hvis de
baggrund af en modtaget sekvens af data udfører er det, er vores maskine ikke konstrueret korrekt.
en handling.
Tilstandsmaskiner dannede grundlaget for de første
Implementeringen
computere, og blev udviklet af Alan Turing. Med denne maskine på plads er det nu ”relativt”
Maskinen i vores eksempel kan illustreres grafisk enkelt at konstruere kode der validerer at vores
som det ses på figur 3 og det opfylder de krav som tekst streng er korrekt. Konstruktionen gøres ved at
visuelt orienterede personer har. På figuren starter lade en procedure repræsentere hver tilstand mask-
vi i øverste venstre hjørne, og forestiller os at vi har inen kan indtage. Herefter er det enkelt at kode hver
modtaget et tegn, på baggrund af dette tegn kan vi enkelt tilstand idet hver tilstand kun har et muligt
Med stored outlines kan man roligt opgradere og så Endelig deletede jeg rækkerne i OL$HINTS for den
stille og roligt afprøve om der er performance for- oprindelige stored outline (OL1) og opdaterede
ringelser. Hvis der er, anvender man blot de stored rækkerne i OL$HINTS for den "modificerede" stored
outlines man lavede inden opgraderingen og har så outline (OL2) så de i stedet for at referere til OL2 ref-
ererede til OL1. kender noget til dette problem, så er jeg da meget
Nu virkede det! Min oprindelige SQL-sætning brugte interesseret i at høre om det
et full table scan i stedet for det index opslag den
brugte oprindeligt. Alternativ anvendelse
Egentligt burde jeg have gjort en ting til: Jeg skulle En helt anden måde at bruge stored outlines på, er til
have opdateret rækken i OL$ for den oprindelige at finde hints. Jeg arbejdede på et tidspunkt med et
stored outline, så HINTCOUNT kolonnen indeholdt problem hvor en bestemt gruppe af SQL-sætninger
det rigtige antal. Der var nemlig en række mindre i brugte voldsom lang tid i parse-fasen. Her anvendte
OL$HINTS for den modificerede stored outline. jeg, som workaround, stored outlines til at finde de
hints der skulle til for at få optimizeren til at vælge den
Jeg har samlet det hele i figur 1.
ønskede execution plan, blot meget hurtigere end
hvis den selv skulle finde ud af det.
Den autoriserede metode (i 9i)
Rent praktisk lavede jeg en stored outline for en af de
For at kunne editere (”line mode”) i en stored outline i problematiske SQL-sætninger (som i SQL*Plus
Oracle 9i skal man først oprette en privat kopi (vha. eksemplet ovenfor) og hentede hint_text fra hver
CREATE PRIVATE OUTLINE private_outline FROM række i outln.ol$hints eller USER_OUTLINE_HINTS.
outline;). Derefter kan man opdatere direkte i den Alle disse hints blev så skrevet ind i de problematiske
lokale OL$HINTS tabel. Efter at have modificeret en SQL-sætninger.
stored outline manuelt skal den gen-synkroniseres
(f.eks. vha. DBMS_OUTLN_EDIT.REFRESH_PRI- Ulemper
VATE_OUTLINE) og for at den modificerede stored
outline kan træde i kraft (for andre brugere) skal den De største ulemper ved at anvende stored outlines er
publiceres (vha. CREATE OR REPLACE OUTLINE at kan være svært at se at der anvendes stored out-
outline FROM PRIVATE private_outline;). lines, og det kan være meget frustrende at man ikke
kan få optimizeren til at bruge f.eks. et nyt index man
Alternativet er at man bruger Outline Editor (se figur 2)
har lavet. Det er også muligt at den execution plan der
som man finder i Oracle Enterprise Manager under
var optimal da man oprettede sin stored outline, ikke
Tools – Tuning Pack – Outline Management (bemærk
længere er bare tilnærmelsesvis optimal - og det
dog at Tuning Pack er en option til Enterprise Edition).
hjælper jo hverken at oprette nye index eller at analy-
Her kan man vælge Edit under Outlines menuen og sere data.
man får så forskellige muligheder for at modificere
Man skal huske på at en stored outline kun vedrører
den stored outline, afhængigt af hvilke join og access
den specifikke SQL-sætning – Oracle udregner først
methods der anvendes. Man kan f.eks. vælge access
en hash værdi og laver så en nøjagtig karakter for
method og ændre den tilbage fra ”Full” til ”Index”: Jeg
karakter sammenligning inden den anvender en
valgte først den stored outline JVD_OLT1, Edit…
stored outline. Hvis blot der er eet bogstav der er stort
hvorefter Outline Editor kom frem. Her valgte jeg så
i stedet for småt eller een blank mere eller mindre, så
OLT1 ikonet og Step Properties... (se figur 3)
er det ikke den samme sætning og en stored outline
Når man har lavet en ændring skal den valideres og vil ikke blive anvendt.
hvis ikke Oracle kan validere ændringen bliver den
Den sikreste metode til at undersøge om der anven-
annulleret.
des en stored outline ved afvikling af en SQL-sætning
I skrivende stund kunne det ikke lykkes for mig at lave er at slå sætningen op i V$SQL og se på kolonnen
den samme modifikation som jeg lavede på den usup- OUTLINE_CATEGORY – hvis den er null anvendes
porterede måde i SQL*Plus (at ændre access method der ikke nogen stored outline, ellers gør der.
fra ”Index” til ”Full”), men det virkede fint at ændre det
den anden vej. Hvis der er nogen blandt læserne, der
For at anvende stored outlines skal man enten udføre: Vidste du at ventetid for 'log file sync' IKKE er inklu-
deret i "OVERALL TOTALS FOR ..." i tkprof output, og
alter session set use_stored_outlines = true; heller ikke indgår i elapsed tid i parse/execute/fetch.
Hvorefter der anvendes stored outlines I den aktuelle Det skyldes at 'log file sync' er en del af commit, som
session, eller: ikke redegøres for i tkprof.
alter system set use_stored_outlines = true;
P.P.S.
Hvorefter alle sessioner anvender stored outlines.
En hilsen fra Mogens Nørgaard og Peter Gram:
Det er ikke muligt at slå anvendelse af stored outlines
til ved hjælp af init.ora parametre, kun med alter ses- Nu har vi i årevis forsøgt at lære alle, at Oracle bruger
sion/system. en hash funktion på (file nr, block nr, block class) til at
adressere buffer cache.
Sikkerhed(shul) Dette er forkert ! Hash funktion bruger kun (file nr,
block nr) !
Så er der jo lige en lille detalje som Jonathan Lewis
gjorde mig opmærksom på: Når man har installeret UNDSKYLD!
(eller opgraderet til) en Oracle 8i eller 9i, så skal man Dette vil blive uddybet til vores arrangement 23. - 25.
huske at ændre password for outln brugeren! Ellers januar 2002 med Jonathan Lewis: Optimising Oracle
har man et kæmpe sikkerhedshul idet outln har det - The Seminar.
Helsidesannoncer i
OracleEkspert
fra DKK 6.000 (excl moms)
Læs mere på:
www.OracleEkspert.dk
Artikelindeks 2000-2001
via vores hjemmeside: TFR: Trace File Repository - OE nr 8 At finde de 20 rækker fra en tabel med de
største eller mindste værdier i en given
Torben Holm & Mogens Nørgaard
www.OracleEkspert.dk Det er egentlig Cary Millsaps ide: Tracefiler
kolonne har i mange år ikke været helt lige til.
Denne artikel belyser hvorledes det alligevel
(uanset om de er normale level 1 eller mere kan klares med relativt enkle midler.
Relationsdatabasens begræn-
barske level 4, 8 og 12 typer) hører til i en Martin Jensen
sninger - OE nr 9 database – i et repository, som man ynder at
Rune Mørk kalde en samling tabeller nu om dage. Emne: PL/SQL
Jeg har gennem mange år virket som Oracle Emne: DBA Simulating OPS$ users through a
konsulent, og ved gentagne lejligheder prist Browser - OE nr 6
relationsdatabasens principper som værende ODTUG-konferencen 2001 - OE nr 7
If your business is running an intranet on an
logiske, forståelige og letanvendelige. På et Marc de Oliveira
MS network, it is possible to authenticate MS
projekt, jeg gennemførte for nylig, hvor jeg
Den 24-28 juni 2001 var San Diego stedet at users as Oracle users without prompting
skulle fremstille skærmbilleder i forms, fandt
være for de garvede Oracle-værktøjsfolk. them for a second login name and password.
jeg en af de relationelle princippers ofre, nem-
ODTUG-konferencen er efter min mening Unfortunately, Oracle only supports this for
lig brugervenligheden. I denne artikel vil jeg
klart den mest interessante konference for en client/server applications like Forms and
beskrive den del af datamodellen det drejer
Oracle-udvikler, så derfor vil jeg i det følgende Reports. This presentation will show you how
sig om, forklare om andre situationer hvor
forklare lidt om hvad ODTUG er, og specifikt to authenticate MS users running Web appli-
samme model vil frembringe de samme prob-
hvad man kunne opleve ved dette års cations through a browser as well.
lemer, tilbyde en løsningsmodel og i
ODTUG-konference.
forbindelse med denne gennemgå lidt teori Marc de Oliveira
om tilstandsmaskiner, da de viste sig at være Emne: Tools
Emne: Web
meget anvendelige til dette problem.
Ratio Gaga - OE nr 7 Cutting Code With Style – Part II - OE
Emne: Tools, Metode
Mogens Nørgaard nr 6
Stored Outlines - OE nr 9 Det er opfyldelsen af enhver mands drøm at This article is part II of a two part series that
Johannes V. Djernæs & Mogens Nørgaard kunne sidde i en garage med små bondevin- explains a recommended coding style that is
duer der vender ud mod et smukt, nykon- easy to write, read and maintain. This issue
Vi har i Miracle A/S haft en del fornøjelse ud
strueret kaninanlæg (company rabbits og will focus on various structures of SQL and
af Stored Outlines. Én af sagerne var affødt af
company chickens er en del af standard-kon- PL/SQL including SELECT, INSERT, IF and
en opgradering fra 7.3 til 8.1.6, hvor et
trakten når man ansættes i Miracle A/S) og LOOPS.
bestemt (og meget brugt) statement startede
skrive en artikel om waits, YAPP2, 9i-doku-
med at have parsetider på nogle få sekunder Scott Hollows
mentationen, 10046-eksempler, osv. Så und-
og derefter gav sig til at vokse. Når en one- Emne: Metode
skyld, at denne artikel bliver lidt causeri-agtig.
liner SQL har en parsetid på 800 sekunder
Stemningen er til det.
bør man kigge på det – det har nu altid været Oracle Portal - OE nr 5
mit motto! Emne: DBA
I efteråret 2000 sendte Oracle 2. generation
Emne: DBA Generating XML Applications from af WebDB - Portal 3.0 - på gaden. Dette
Designer - OE nr 7 indlæg gennemgår Portal 3.0, hvor der er
Playing the Library Card - OE nr 9 forskelle i forhold til WebDB 2.% og der
John Caputo James F. Hudson
opbygges en Portal.
Since release 2.1 of Designer, you have been Currently, Designer and XML do not get along
Torben Holm
able to customize WebServer Generator well. But wouldn’t it be nice to be able to
select a module in the Design Editor, go to the Emner: Tools
(WSG) modules by adding your own code for
routines and events that is included in the “Copy With New Language” Utility, and create
a basic XML application?
Tuning Database Reorganizations
generated code. Some page layout cus- for Maximum Speed - OE nr 5
tomization has also been possible by adding Emne: Tools
code to the User Text areas of WSG module Oracle provides a number of options and
pages. Many people are familiar with these Guardian Security and Business parameters to achieve optimal reorganization
two types of WSG module customization. Rules Engine Under The Covers - OE speed in any environment. This paper
This paper explores a method to extend stan- nr 7 reviews these settings and discusses how to
dard WSG module page layout through cus- take advantage of them.
Scott Hollows
tomizing the WebServer Generator Library Heather Compher and Gil Asherie
(WSGL) package. It is divided into the follow- This article will provide a technical look at
Seeristic’s Guardian “Security and Business Emner: DBA
ing sections.
Rules Engine” software to show you how you
Emne: Designer Systemdokumentation uden smerte
can configure it and alter its functionality
using its PL/SQL API.
- OE nr 5
Nyskabende teknikker til mere effek-
Emne: Tools Artiklen giver dels en beskrivelse af, hvad der
tiv Opfyldelse af Datalovgivningens efter forfatterens mening er god system-
bestemmelse om logning af adgang Beregning af Danske helligdage - OE dokumentation, samt et forslag til, hvordan
til personfølsomme informationer - nr 6 man på en overkommelig måde kan imple-
OE nr 8 mentere en brugbar systemdokumentation,
Danske helligdage er ikke noget man bereg- som arbejder direkte på et systems kilde-
Martin Jensen ner. Dem slå man op i en tabel. Eller gør tekst, og derfor er uafhængig af design- og
For første gang er det nu muligt, som en del man? Ta’ årskalenderen fra sekretæren! Her udviklingsværktøjer, og samtidig altid er
af selve databasesystemet, at indbygge får du en PL/SQL løsning, som beregner opdateret.
mekanismer til automatisk logning af access dem. Til og med væsentligt hurtigere end de
til forudbestemte informationer, uden at skulle kan SELECT’es fra en tabel. Jan Ahlberg
ændre i de rapporter og skærmbilleder, der Anders Frandsen Emner: Metode
betjener brugerne af systemet.
Emne: Tools Spatial og PL/SQL - OE nr 5
Emne: DBA
Oracle8 GIS (Geeky Internal Stuff): I dokumentationen for Oracle Spatial er der
Kicking the ASP out of Designer - OE Physical Data Storage Internals - OE masser af eksempler på hvorledes man kan
nr 8 hælde data ind i spatial-objekter, og hvordan
nr 6 man efterfølgende manipulerer dem vha. de
David Schleis This month, Dan will focus on some internals indbyggede funktioner. Men hvad nu, hvis
The Oracle Designer WebServer Generator of the Oracle RDBMS, primarily physical stor- man får lyst til at rode med sine objekter på
(WSG) generates web-based applications age of data. This article will concentrate on egen hånd? – Det er der absolut intet til hin-
designed to run on an Oracle Web data blocks: how they’re created, how space der for…
Application Server. These applications are is really managed inside a tablespace, and Peter Sørensen
generated based on module and database some other geeky internal stuff of interest in
design specifications recorded in the the physical storage of data. Emner: Tools
Repository, and allow users to interact with Dan Hotka
an Oracle database over the internet. This is
Udnyt din redolog information - OE
extremely useful if you are running an Oracle Emne: DBA nr 5
Web Application Server, but what if you are Med Oracle 8i fik Oracologerne mulighed for
restricted to an existing web ASP server? at analysere information i redolog med
Figure 1. Typical WSG View Form - One Item Per Line (Table Layout Style)
fields. 3. LayoutRowStart
4. Cannot include extended descriptive text 4. LayoutRowEnd
between input fields (instructions or explana- 5. LayoutHeader
tion). 6. LayoutData
These were the driving issues when I first looked into Descriptions of the routines from the source code
customizing layout, but what I really wanted was a comments appear below.
complete custom layout capability using my own
PL/SQL. This meant being able to specify custom lay- WSGL Layout Routines
out at generation time with available Designer module LAYOUTOPEN.
properties. An added bonus would be the ability to
designate a named style, allowing many different cus- See figure 3.
tom layout options. I concluded that modifying the The LayoutOpen procedure initializes variables that
WSGL library layout routines might work. I studied the are used by some of the other routines (see figure 4).
code and found I could make minor modifications to LayoutOpen also sets the opening HTML tags based
the existing code to call custom layout routines.
Furthermore, I could base the calls and layout on the -- Initialise the layout parameters
contents of two Designer preference settings.
LayStyle := p_layout_style;
Page layout procedures and func- LayCustomBullet := p_custom_bullet;
LayBorderTable := p_border;
tions in the WSGL package LayVertBorderChars := ' ';
LayHoriBorderChars := NULL;
Let’s look at the WSGL routines that are used to lay-
LayNumOfCols := 0;
out forms. The following procedures in the WSGL LayCurrentCol := 0;
package are the layout routines.
Figure 4. Layout Parameters – as initialized
1. LayoutOpen
in LayoutOpen procedure
2. LayoutClose
-- Name: LayoutOpen
--
-- Description: This procedure is used to set up information which will
-- control how data/fields are layed out in the generated
-- pages. A number of layout styles are supported, defined
-- by the constants LAYOUT_TABLE, LAYOUT_BULLET etc
--
-- Parameters: p_layout_style IN The layout style
-- p_border IN If layout style is TABLE, should the
-- table have a border
-- p_custom_bullet IN If the layout style is CUSTOM, the
-- expression to use as the custom bullet
Figure 3. LayoutOpen.
-- Name: LayoutRowStart
--
-- Description: Starts a 'row' in the current layout style. This may be
-- a real row if it is a table, or a new list item for lists
-- etc.
--
-- Initialises the variable LayOutputLine which is used to
-- build the entire 'row' until it is printed using
-- LayoutRowEnd().
--
-- Parameters: p_valign IN The verical alignment of the row if TABLE
--
Figure 7. LayoutRowStart
LAYOUTROWEND.
-- Name: LayoutRowEnd
--
-- Description: If anything in the current row, it is output using htp.p()
-- procedure, and then LayOutputLine is cleared.
--
-- Parameters: None
--
Figure 8. LayoutRowEnd
LAYOUTHEADER.
-- Name: LayoutHeader
--
-- Description: This is used when layout style is TABLE or PREFORMAT and
-- defines the 'Columns' of the table. Each has a width
-- (not used for TABLE), an alignment and a title. The pl/sql
-- tables LayColumnWidths and LayColumnAlign are initilaised in
-- order that later calls to LayoutData will be correctly
-- position data/fields.
--
-- This procedure has no effect when layout style is not
-- TABLE or PREFORMAT,
Figure 9. LayoutHeader
WSGL.LayoutOpen(WSGL.LAYOUT_TABLE);
WSGL.LayoutRowStart;
for i in 1..VF_NUMBER_OF_COLUMNS loop
WSGL.LayoutHeader(7, 'LEFT', NULL);
WSGL.LayoutHeader(14, 'LEFT', NULL);
end loop;
WSGL.LayoutRowEnd;
WSGL.LayoutRowStart('TOP');
WSGL.LayoutData(htf.bold('Deptno:'));
WSGL.LayoutData(FORM_VAL.DEPTNO);
WSGL.LayoutRowEnd;
WSGL.LayoutRowStart('TOP');
WSGL.LayoutData(htf.bold('Dname:'));
WSGL.LayoutData(WSGL.BuildTextControl('DNAME', '14', '1', '14', FORM_VAL.DNAME));
WSGL.LayoutRowEnd;
WSGL.LayoutRowStart('TOP');
WSGL.LayoutData(htf.bold('Loc:'));
WSGL.LayoutData(WSGL.BuildTextControl('LOC', '13', '1', '13', FORM_VAL.LOC));
WSGL.LayoutRowEnd;
WSGL.LayoutClose;
Figure 11. Typical set of calls to the WSGL layout routines in a View Form.
Pythia Information
Kongensvej 3
2000 Frederiksberg
Fax: 26199991
- 40% ved samtidig køb af minimum 5 ens blade eller abonnementer..........................................................DKK __________
- 45% ved samtidig køb af minimum 10 ens blade eller abonnementer........................................................DKK __________
- 50% ved samtidig køb af minimum 20 ens blade eller abonnementer........................................................DKK __________
- 60% ved samtidig køb af minimum 50 ens blade eller abonnementer........................................................DKK __________
Nyheder
Borland og Oracle samarbejder Oracle9i og HP Superdrome slår ikke er interesseret i at få nogen til
rekord at holde op med at bruge Outlook,
Den nye version af Borlands men han mener, at man ikke bør
JBuilder 6 vil indeholde værktøjer til En ny TPC-C (Transaction gemme sine mails på hundredvis
direkte integration med Oracle9i Processing Council) benchmark af Exchange servere, men hellere
Application Server. Der vil oven i test af Oracle9i på HPs PA-8700 skulle have dem liggende på en
købet være inkluderet en licens til Superdrome server med 64 eller to Oracle databaser.
Oracle9iAS. CPU’er målte 389434 transaktioner
per minut.
6. november 2001
21. november 2001 IBMs beste resultat med DB2 er
på 163776 tpmC, mens Microsoft Oracle ”Help Us Help”
OpenWorld på eBay Foundation
for nyligt offentliggjorde en måling
For dem, som gerne vil støtte af Sql Server 2000 på en Unisys I dag annoncerede Oracle opret-
ofrene fra 11. september, kan man ES7000 på 165219 tpmC. telsen af Oracle ”Help Us Help”
byde på billetter til OpenWorld, et Foundation, som skal forære inter-
Oracles opstilling gav desuden den
sæt af bøger fra Oracle Press og net udstyr til skoler og ungdomsor-
billigste performanceløsning på
tøj fra Henry Lloyd hos eBay. ganisationer i USA og internation-
USD 21.24 /tpmC.
Alle pengene går ubeskåret til det alt, der ikke selv har råd il det.
amerikanske Røde Kors. Udstyret vil være Oracle-software,
15. november 2001
men også net-computere, hubs,
SAP er 65% hurtigere på Oracle laserprinere, kabler mv.
20. november 2001
end på DB2
Oracle OLAP 3-1 over IBM Bestyrrelsen består af fire under-
Begge målinger er overvåget og visere fra Standford University og
I en undersøgelse lavet af certificeret af SAP. tre Oracle-chefer der iblandt Larry
Survey.com vandt Oracle gangne Ellison.
så mange stemmer som IBM i
spørgsmålet om det bedste 13. november 2001 Oracle har afsat USD 6 mill til det
”OnLine Analytical Processing” Oracle vinder undervisningspris første års gaver.
system. Oracle vandt prisen ”2001
Oracle fik over 50% af stemmerne Corporate University of the Year 30. oktober 2001
som den databaseleverandør af Distinguished Performance Award” Small Business Suite på top 100
Datawarehouse og Business uddelt af National Alliance of
Intelligence løsninger. Business. PC Magazine placerede Oracles
Small Business Suite blandt de 100
BC4J-generator i Designer Oracle gør MS Outlook bedste web sites.
Sue Harper, som er Product ‘Unbreakable’
Oracle Small Business Suite vandt
Manager hos Oracle annoncerede Oracle annoncerer Oracle Email også Editor’s Choice Award i begy-
på ODTUGs mailliste at Designer Migration Service. ndelsen af året.
team’et nu arbejder på at lave en Landis ICT er ifærd med at
BC4J-generator til Designer. OSBS er sæt host’et web-applika-
omlægge 44 Microsoft Exchange tioner, der tilbyder små virk-
servere til et Oracle9i Real somheder finansstyring, CRM, ind-
Application Cluster, hvilket vil ned- køb og e-handel.
bringe mængden af software, hard-
ware og administration, mens
sikkerhed og stabilitet styrkes.
Oracle User Group Denmark er en selvstyrende gruppe for Oracle-brugere. Det er for tiden gratis at være medlem,
dog skal man have en Oracle-databaselicens for at kunne blive medlem.
OUGDK
Gruppen består af en bestyrelse og et antal Special Interest Groups, som afholder møder i Oracle Danmarks lokaler i
Ballerup. Indkaldelse til møderne sker via brugergruppens mailliste og via brugergruppens web-side (www.oug.dk).
OUGDK Stormøde
Koordinator: Lone Aalekjær, loaal@wmdata.com
Møde: 12. december 2001 kl. 13:30
Sted: Oracle Danmark, Lautrupbjerg 2-6, 2750 Ballerup
Emne: Select max(udbytte) from Support - Frank Torreck fortæller om iTar, Metalink og hvordan vi bedst udnytter support-
værktøjerne.
DBA SIG
Koordinator: Jean-Marc Pedersen
Næste møde er endnu ikke fastlagt.
Designer SIG
Koordinator: Marc de Oliveira, Marc@deOliveira.dk. Forslag til mødeemner modtages meget gerne.
Møde: 9. januar 2002 kl. 13:00
Sted: Oracle Danmark, Lautrupbjerg 2-6, 2750 Ballerup
Emner for næste møde (den endelige angenda er ikke helt besluttet. Følg med på www.deoliveira.dk/ougdk):
- JRAD: JDevelopers svar på Oracle Forms
Developer SIG
Koordinator: Lone Aalekjær, loaal@wmdata.com
Næste møde er endnu ikke fastlagt.
Data warehouse SIG
Koordinator: Erik Haar, erh@lundbeck.com
Næste møde er endnu ikke fastlagt.
Web SIG
Koordinator: Måske Benjamin Lund, blf@bellcom.dk (dette er ikke bekræftet endnu)
Næste møde er endnu ikke fastlagt.
Husk at tilmelde dig til møderne hos Christian.Graversen@Oracle.com (ellers får vi for få kager/vand!!)
til
Designer 6i
&
Forms Builder