Operation Manual

Naar boven
gemaakt, had u dit voorbeeld in twee deelnemers moeten verdelen: een hoofdtag CFSTOREDPROC en een CFPROCPARAM-tag met een
meervoudig deelnemerstype.
Met de lusinstructie kunt u dezelfde procedure als volgt schrijven:
Opmerking: Nieuwe regels na '@>' worden genegeerd.
Als de gebruiker de volgende parameterwaarden in het dialoogvenster Servergedrag heeft ingevoerd:
voegt het servergedrag de volgende runtimecode op de pagina in:
Opmerking: Parameterarrays kunnen niet buiten een lus worden gebruikt, behalve als onderdeel van een voorwaardelijke instructie-expressie.
De variabelen _length en _index van de lusinstructie gebruiken
De lusinstructie bevat twee ingebouwde variabelen die u kunt gebruiken voor ingesloten if-voorwaarden. De variabelen zijn: _lengte en _index. De
variabele _length evalueert de lengte van de arrays die door de lusinstructie zijn verwerkt, terwijl de variabele _index de huidige index van de
lusinstructie evalueert. Als u ervoor wilt zorgen dat de variabelen alleen als instructies worden herkend en niet als echte parameters die aan een
lus worden doorgegeven, plaatst u de variabelen niet tussen @@.
Een voorbeeld van het gebruik van ingebouwde variabelen is de toepassing ervan op het import-kenmerk van de page-instructie. Het kenmerk
import vereist een met komma's gescheiden lijst met pakketten. Als de lusinstructie zich rond het hele import-kenmerk uitstrekt, moet u bij de
eerste uitvoering van de lus alleen de naam van het kenmerk import= opgeven, inclusief de afsluitende dubbele aanhalingstekens, en mag u bij de
laatste uitvoering van de lus geen komma meer opgeven. Met de ingebouwde variabele kunt u dit als volgt uitdrukken:
Een parameter voor het servergedrag aanvragen
Voor servergedrag moet de paginaontwerper dikwijls een parameterwaarde opgeven. Deze waarde moet worden ingevoegd voordat de code van
het servergedrag op de pagina wordt ingevoegd.
U maakt het dialoogvenster door de door de ontwerper opgegeven parameters in de code te definiƫren. Vervolgens genereert u een
1
2
3
4
5
6
7
8
9
10
11
<CFSTOREDPROC procedure="@@procedure@@"
datasource=#MM_@@conn@@_DSN#
username=#MM_@@conn@@_USERNAME#
password=#MM_@@conn@@_PASSWORD#>
<@ loop (@@paramName@@,@@value@@,@@type@@) @>
<CFPROCPARAM type="IN"
dbvarname="@@paramName@@"
value="@@value@@"
cfsqltype="@@type@@">
<@ endloop @>
</CFSTOREDPROC>
1
2
3
4
5
procedure = "proc1"
conn = "connection1"
paramName = ["@CategoryId", "@Year", "@ISBN"]
value = ["#Form.CategoryId#", "#Form.Year#", "#Form.ISBN#"]
type = ["CF_SQL_INTEGER", "CF_SQL_INTEGER", "CF_SQL_VARCHAR"]
1
2
3
4
5
6
7
8
9
10
11
<CFSTOREDPROC procedure="proc1"
datasource=#MM_connection1_DSN#
username=#MM_connection1_USERNAME#
password=#MM_connection1_PASSWORD#>
<CFPROCPARAM type="IN" dbvarname="@CategoryId" value="#Form.CategoryId#"
cfsqltype="CF_SQL_INTEGER">
<CFPROCPARAM type="IN" dbvarname="@Year" value="#Form.Year#"
cfsqltype="CF_SQL_INTEGER">
<CFPROCPARAM type="IN" dbvarname="@ISBN" value="#Form.ISBN#"
cfsqltype="CF_SQL_VARCHAR">
</CFSTOREDPROC>
1
2
3
4
5
<@loop (@@Import@@)@>
<@ if(_index == 0)@>import="
<@endif@>@@Import@@<@if (_index == _length-1)@>"<@else@>,
<@ endif @>
<@endloop@>
723