The users table in the OneDB, and the hots table in the TwoDB, they
are separated!

  I have changed the method that like this:
###
  # I specify the TwoDB for hots table.
  override def dbDefaultConnectionIdentifier = bootstrap.liftweb.TwoDB


  def getHots3(id : Long) = {
    DB.use(bootstrap.liftweb.OneDB) {
      firstConn =>
         DB.use(bootstrap.liftweb.TwoDB) {
            conn =>
                 DB.prepareStatement("SELECT * FROM hots WHERE id>?", conn) {
                         stmt =>
                         stmt.setLong(1, id)
                         stmt.executeUpdate()
                }
        }
    }
  }
###

  But it doesn't work.

  Thanks very much!  :)

Cheers,
  Neil


On Jan 22, 12:49 am, David Pollak <feeder.of.the.be...@gmail.com>
wrote:
> What is wrong with:
>
> DB.use(FirstDB) {
>   firstConnection =>
>   DB.use(SecondDB) {
>   secondConnection =>
>
>   // do transactional query between two DBs here
>
> }
> }
>
> Note that DB.use nests such that the transaction will only be committed when
> the last DB.use block for a given ConnectionIdentifier is exited.
>
>
>
> On Thu, Jan 21, 2010 at 3:17 AM, Neil.Lv <anim...@gmail.com> wrote:
>
> >  I have added the demo code on the Github now.
> >  ( Mabye it's a bug with DB.runQuery and DB.use in the two db
> > vender )
>
> >  Here is the address:
> >  http://github.com/anim510/two_db_demo
>
> >   Thanks very much!
>
> > Cheers,
> >  Neil
>
> > On Jan 21, 11:26 am, "Neil.Lv" <anim...@gmail.com> wrote:
> > >   My email is :   anim...@gmail.com
>
> > > On Jan 21, 11:17 am, "Neil.Lv" <anim...@gmail.com> wrote:
>
> > > > Mabye it's a bug with DB.runQuery and DB.use in the two db vender !!!!
>
> > > > Two question: (problem)
>
> > > > 1: I don't know why the HelloWorld snippet code will be execute 2
> > > > times in this code. (See the HelloWorld.scala file.)
> > > > 2: The dbDefaultConnectionIdentifier method in the Model that it works
> > > > fine when using Mapper's method such as ModelName.findAll(),
> > > > it doesn't work when using DB.runQuery and DB.use(...) --- (Maybe it
> > > > can't find the default db identifier)
>
> > > > The question 2 I test it many times that found this problem.
>
> > > > In the test app , the Hot.getHots2 and Hot.getHots3 method can't work.
>
> > > > I comment the code now in the HelloWorld.scala file, you can try it.
>
> > > > ########
>
> > > >   I can push the code on the github, and get this errors "fatal:
> > > > unable to fork"
>
> > > >   So If anyone know what's wrong with it and I can send the demo.tar
> > > > file through the email.
>
> > > >   Thanks very much!
>
> > > > ########
>
> > > > Cheers,
> > > >   Neil
>
> > > > On Jan 21, 1:56 am, "Neil.Lv" <anim...@gmail.com> wrote:
>
> > > > >   The DB.runQuery can works now, but the DB.prepareStatement also
> > > > > cant' work.
>
> > > > >   Here is the test app address:
> > > > >  http://github.com/anim510/two_db_demo
>
> > > > > Cheers,
> > > > >   Neil
>
> > > > > On Jan 21, 1:16 am, "Neil.Lv" <anim...@gmail.com> wrote:
>
> > > > > >    Thank you very much,
>
> > > > > >    But it doesn't work yet, maybe because of using two db
> > connections.
>
> > > > > >    I'll test it later again.
>
> > > > > > On Jan 21, 12:44 am, Jeppe Nejsum Madsen <je...@ingolfs.dk> wrote:
>
> > > > > > > "Neil.Lv" <anim...@gmail.com> writes:
> > > > > > > > Hi all,
>
> > > > > > > >   I use two db connections in my app, and I want to use
> > > > > > > > DB.prepareStatement to select
> > > > > > > > the records from the second db.
>
> > > > > > > >   It failed, Here is the code:
> > > > > > > > ###
> > > > > > > >   def getHotByTid(id : Long) =
> > > > > > > >     DB.use(bootstrap.liftweb.TwoDB) {
> > > > > > > >       conn =>
> > > > > > > >      DB.prepareStatement("SELECT * FROM hots WHERE id=? ",
> > conn) {
> > > > > > > >              stmt =>
> > > > > > > >                      stmt.setLong(1, id)
> > > > > > > > Log.info("stmt :" + stmt)   // The information is correctly
> > now, but
> > > > > > > > after call executeUpdate method
> > > > > > > >                      stmt.executeUpdate()
> > > > > > > >       }
> > > > > > > >    }
>
> > > > > > > Not sure what your problem is really, but I think you should use
> > > > > > > DB.runQuery to execute a select statement
>
> > > > > > > Ie
>
> > > > > > >   val (_,result) = DB.runQuery("SELECT COUNT(*), contract_length
> >  FROM "+
> > > > > > >                     "vehicles_current v "+
> > > > > > >                     "WHERE v.account_id=? "+
> > > > > > >                     "GROUP BY contract_length "+
> > > > > > >                     "ORDER BY contract_length",
> > > > > > >                     List(42))
>
> > > > > > > /Jeppe
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Lift" group.
> > To post to this group, send email to lift...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > liftweb+unsubscr...@googlegroups.com<liftweb%2bunsubscr...@googlegroups.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/liftweb?hl=en.
>
> --
> Lift, the simply functional web frameworkhttp://liftweb.net
> Beginning Scalahttp://www.apress.com/book/view/1430219890
> Follow me:http://twitter.com/dpp
> Surf the harmonics
-- 
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to lift...@googlegroups.com.
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en.


Reply via email to