Hi Kashyap,
> 1. Run the sample (attached) as follows -
> pil guest.l +
> : (setup) (go) (wait)
> 2. I hit localhost:3000 (since I have httpGate 3000 8080 running
> 3. I enter the details in the form and hit send followed by confirmation
> 4. I notice that I get -- addM -- Bad message
I see. The problem is the *Gbk global. It is NIL if the file is loaded
the first time and 'setup' has not been called yet.
"guest.l" first does
(pool "gb.db")
(setq
*Gbk (car (collect 'nm '+Gbk)) # decide which guestbook we'll serve
)
but the DB is still empty.
It works if you do
$ pil guest.l -setup -bye # Create the DB
$ pil guest.l -go +
or $ pil guest.l -go -wait
I would not do the 'pool' and the initialization of *Gbk on top of the file, but
in a separate 'main' function (or here in 'go'):
(de go ()
(pool "gb.db")
(unless (seq *DB)
(new! '(+Gbk) 'nm "Your guestbook name here") )
(setq *Gbk (car (collect 'nm '+Gbk) ) ) # decide which guestbook we'll
serve
(server 8080 "!work") )
Note that 'collect' is not wise here, as it collects the *whole* DB into a list
just to get the first element :)
BTW, there is another minor glitch: The
(commit 'upd)
at the end of 'addM>' is superfluous, as both 'new!' and 'put!>' already did an
implied commit.
☺/ A!ex
--
UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe