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:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to