On 19.Feb.2003 -- 11:45 AM, Andre Taube wrote:
> Still the same:
>
> DEBUG (2003-02-19) 12:28.28:239 [sitemap.action.DatabaseUpdateAction]
> (/pcm/contract_admin.contract.html) Thread-9/DatabaseAction: Trying to set
> column pcm_contract.contract_status from request-param using getAttribute
> method
>
OK, let's look at the samples for the database actions. Let's add a
date column to user:
alter table add column since date;
(use org.hsqldb.util.DatabaseManager to connect to the server at port
9002 to do this or edit cocoondb.script accordingly)
Change database.xml: (Note: a typo prevented specifying parameter and
format like below. Update the Date*Module.java files from CVS -- don't
update everything yet, Stefano is tweaking the build system and you
might not be able to build a new CVS version right away.)
<table name="user" alias="user">
<keys>
<key name="uid" type="int" autoincrement="true">
<mode name="auto" type="autoincr"/>
</key>
</keys>
<values>
<value name="name" type="string"></value>
<value name="firstname" type="string"></value>
<value name="uname" type="string"></value>
<!-- this is new -->
<value name="since" type="date">
<mode name="datemeta" type="all">
<parameter>user.since</parameter>
<format>MM/dd/yy</format>
<input-module name="request-param"/>
</mode>
</value>
<!-- end new stuff -->
</values>
</table>
I have used the @type="all" here, since I alway want to convert dates
here.
Add the following to user-list.xsp:
<since>
<esql:get-date column="since" format="MM/dd/yy"/>
</since>
and
<since>
<input type="text" name="user.since" size="20" maxsize="20">
<xsp:attribute name="value"><!-- <xsp-request:get-parameter default=""
name="user.uname"/> --></xsp:attribute>
</input>
</since>
I trust you figure out where to add this ;-)
Please veryfy that this does indeed work for you.
Now, let's look at the other issue: using a different mode for an
operation. Look at the following table-set
<table-set name="user+groups">
<table name="user"/>
<table name="user_groups" others-mode="attrib"/>
</table-set>
and compare with the table definition below
<table name="user_groups">
<keys>
<key name="uid" type="int">
<mode name="request-param" type="request"/>
<mode name="request-attr" type="attrib">
<parameter>org.apache.cocoon.components.modules.output.OutputModule:user.uid[0]</parameter>
</mode>
</key>
<key name="gid" type="int" set="master">
<mode name="request-param" type="all"/>
</key>
</keys>
</table>
Now, look at sitemap.log (note: default recently switched to log level
ERROR, make sure you have set log level in web.xml and logkeit.xconf
to DEBUG)
DatabaseAction: modeTypes : {1=attrib, 2=request-attr, 0=autoincr}
this line shows that we are really using "attrib" for others-mode,
"request-attr" for output and "autoincr" for autoincrement columns
(when inserting)
DatabaseAction: i=0
DatabaseAction: requested mode was "attrib" returning "attrib"
this shows that we're indeed requesting "attrib" as mode for the first
column (-> user_groups.uid) and that it was found.
DatabaseAction: i=1
DatabaseAction: requested mode was "attrib" returning "all"
again, "attrib" was requested but "all" is found (first) thus the mode
with @type="all" is used for column 2 (-> user_groups.gid)
DatabaseAction: query: INSERT INTO user_groups (uid, gid) VALUES (?, ?)
DatabaseAction: Trying to set column user_groups.uid from request-attr using
getAttribute method
DatabaseAction: Setting column user_groups.uid [0] 6
DatabaseAction: Trying to set column user_groups.gid from request-param using
getAttributeValues method
DatabaseAction: Setting column user_groups.gid [0] 0
DatabaseAction: ====> row no. 0
DatabaseAction: Setting column user_groups.uid[0] to 6
DatabaseAction: Setting column user_groups.gid[0] to 0
DefaultComponentFactory: ComponentFactory decommissioning instance of
org.apache.cocoon.acting.modular.DatabaseAddAction.
HTH
Chris.
--
C h r i s t i a n H a u l
[EMAIL PROTECTED]
fingerprint: 99B0 1D9D 7919 644A 4837 7D73 FEF9 6856 335A 9E08
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]