remote db connection

Tim Golden tim.golden at viacom-outdoor.co.uk
Wed Dec 4 08:23:24 EST 2002


I've used this (using Pyro, in case it wasn't obvious). The sql module is a
lightweight wrapper round several databases I use here; I'm happy to send it
to you if it helps, but it's really just the same as your database fetchall
code. (I hope the code doesn't get too mangled in the process).

<code>
import os, sys
import socket

import Pyro
import Pyro.core
import Pyro.naming

import sql

class database_connector (Pyro.core.ObjBase):

  def __init__ (self):
    Pyro.core.ObjBase.__init__ (self)

  def connect (self, database_name):
    self.getLocalStorage ().database_name = database_name
    self.getLocalStorage ().db = sql.database (database_name)

  def fetch_query (self, query):
    print "Fetching from " + self.getLocalStorage ().database_name
    print query[:30] + "..."
    return sql.fetch_query (self.getLocalStorage ().db, query, ())


Pyro.core.initServer ()
ns = Pyro.naming.NameServerLocator ().getNS ()

server_name = "db_connector"
try: ns.unregister (server_name)
except Pyro.errors.NamingError: pass
  
daemon = Pyro.core.Daemon ()
try:
  daemon.useNameServer (ns)
  connector = database_connector ()
  print "Connecting %s via %s" % (server_name, str (ns))
  daemon.connect (connector, server_name)
  while 1:
    daemon.handleRequests (None)

finally:
  try:
    daemon.disconnect (connector)
  except:
    pass
</code>

-----Original Message-----
From: marcin andrzejewski [mailto:m.andrzejewski at dmz.com.pl]
Sent: 04 December 2002 11:09
To: python-list at python.org
Subject: remote db connection


is it possible to create a db connection object on server and use it by
client ?
which protocol (xml-rpc, soap, pyro) should i use ?

client:
px=protocol.proxy(remote_machine)
rdb=px.db(user,pass,database)
rcs=rdb.cursor()
data=rcs.fetchall("select * from")
rdb.close()
del px
--
marcin andrzejewski
m.andrzejewski at dmz.com.pl
keson at post.pl



________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________




More information about the Python-list mailing list