SourceForge.net Logo

Open-Commerce Logo

Database.Database.Database Class Reference

Inheritance diagram for Database.Database.Database:

Database.MysqlDatabase.MysqlDatabase

List of all members.

Public Member Functions

def __init__
def getCorrespondingType
def addClass
def getClass
def getPythonTypeOf
def createDatabaseStructure
def getHost
def setHost
def getUsername
def setUsername
def getDatabase
def setDatabase
def getPort
def setPort
def getPassword
def setPassword
def setConnectionParameter
def connect
def disconnect
def getObject
def search
def getObjectList
def getLastError
def getErrorList
def lockObject
def isLockedObject
def unlockObject
def deleteObject
def deleteObjectList
def getRelationForObject
def getRelatedRelationForObject
def storeObject
def getAvailableTypeList
def __str__
def storeNewObject
def replaceObject
def commitTransaction
def startTransaction
def log
def rollbackTransaction

Public Attributes

 logfilename
 min_log_level_to_display
 is_transaction_running
 database_structure
 host
 username
 password
 database
 port

Static Public Attributes

dictionary database_available_type_list_correspondence
tuple host = property(getHost, setHost)
tuple username = property(getUsername, setUsername)
tuple database = property(getDatabase, setDatabase)
tuple port
tuple password = property(fset=setPassword)


Detailed Description

Base class of database engine

Database could not be instancied, it should be inherited from a specilized database engine

Version:
0.01
Author:
Brice LEROY

Member Function Documentation

def Database.Database.Database.__init__ (   self  ) 

def Database.Database.Database.getCorrespondingType (   self,
  corresponding_type 
)

return this type for a given type in the database_available_type_list_correspondence

Parameters:
corresponding_type string like "int", "float", "string"
Exceptions:
KeyError Type does not exist in corresponding_type_list
TypeError You do not submit a string for corresponding_type parameter
Since:
0.01

def Database.Database.Database.addClass (   self,
  class_object 
)

Add a new class to the list of database engine

Too create a new instance we have to know the class each class intended to be store should be registered here

Parameters:
an instance of DatabaseObject
Exceptions:
TypeError You do not submit a DatabaseObject instance
Since:
0.01

def Database.Database.Database.getClass (   self,
  type_name 
)

Return an instance of class knew by database engine

Return class object ready to be instanciate or None if the object is not found. You could use this method like my_object = getClass("Organisation")()

Parameters:
type_name Name of class
Returns:
None object type_name was not found

class

Exceptions:
TypeError You do not submit a string for type_name parameter
Since:
0.01

def Database.Database.Database.getPythonTypeOf (   self,
  database_type 
)

Return an new instance of a python corresponding object 

def Database.Database.Database.createDatabaseStructure (   self  ) 

def Database.Database.Database.getHost (   self  ) 

def Database.Database.Database.setHost (   self,
  host 
)

def Database.Database.Database.getUsername (   self  ) 

def Database.Database.Database.setUsername (   self,
  username 
)

def Database.Database.Database.getDatabase (   self  ) 

def Database.Database.Database.setDatabase (   self,
  database 
)

def Database.Database.Database.getPort (   self  ) 

def Database.Database.Database.setPort (   self,
  port 
)

def Database.Database.Database.getPassword (   self  ) 

def Database.Database.Database.setPassword (   self,
  password 
)

def Database.Database.Database.setConnectionParameter (   self,
  host = "localhost",
  username = None,
  password = None,
  database = None,
  port = None 
)

def Database.Database.Database.connect (   self  ) 

Connect is there just in case of a connection is necessary to init 
the Database.

Reimplemented in Database.MysqlDatabase.MysqlDatabase.

def Database.Database.Database.disconnect (   self  ) 

Disconnect is there just in case of connection is need

Reimplemented in Database.MysqlDatabase.MysqlDatabase.

def Database.Database.Database.getObject (   self,
  type_name,
  object_id = None,
  restriction_list = None,
  kw 
)

return the first object can be found whith the restriction applied
on every property.
restriction_list is a dictionnary like :
restriction_list = { 'id' : 5, 'type_name' : 'sale order'} 
will return the sale_order with the id 5.

def Database.Database.Database.search (   self,
  type_name = None,
  kw 
)

Return search result list.

search will perform a research on database with condition indicated on keyword ie. : database.search(('Organisation','Person'), first_name = "John" )

Parameters:
type_name indicate on which type of object you want to do the search.
**kw any restriction you to apply to you current request
Exceptions:
TypeError You submit a bad value for type_name parameter
Returns:
list of SearchResult object

def Database.Database.Database.getObjectList (   self,
  kw 
)

return list of object can be found with the restriction applied
on every property.
restriction_list is a dictionnary like :
restriction_list = { 'type_name' : 'sale order'} 
will return a list with all sale_order.

You can also submit a dictionnary of type_name/id value like
object_dict={"organisation":(1,2),"person":(5,)}
when, each other information are ignored 
note : this is the form returned by get method like relation accessor

def Database.Database.Database.getLastError (   self  ) 

def Database.Database.Database.getErrorList (   self  ) 

def Database.Database.Database.lockObject (   self,
  database_object 
)

Lock object in database to be the temporary worker on.

def Database.Database.Database.isLockedObject (   self,
  database_object 
)

return if an object is locked or not.

def Database.Database.Database.unlockObject (   self,
  database_object 
)

Clear the lock set on database_object

def Database.Database.Database.deleteObject (   self,
  type_name,
  object_id = None,
  transactional = True 
)

Delete an object on the Database

def Database.Database.Database.deleteObjectList (   self,
  type_name,
  restriction_list,
  transactional = True 
)

Delete list of object on the Database

def Database.Database.Database.getRelationForObject (   self,
  type_name,
  object_id,
  relation_name 
)

Return dictionnary list of relation for a given object like :
{"person":(1,3),"organisation":(3,))

def Database.Database.Database.getRelatedRelationForObject (   self,
  type_name,
  object_id,
  relation_name 
)

Return dictionnary list of related relation for a given object like :
{"person":(1,3),"organisation":(3,))

def Database.Database.Database.storeObject (   self,
  database_object,
  ignore_lock = False,
  transactional = True 
)

save object. The method try to know if the object has been already
saved on database by checking it's id.

def Database.Database.Database.getAvailableTypeList (   self  ) 

Return list of available type object (like "sale order", "sale invoice"...)

Reimplemented in Database.MysqlDatabase.MysqlDatabase.

def Database.Database.Database.__str__ (   self  ) 

def Database.Database.Database.storeNewObject (   self,
  object,
  auto_create_table = 1,
  extend_if_necessary = 0,
  ignore_lock = False,
  transactional = True 
)

store new object will create a new object
The object.id property will be returned.
If something wrong append, it return None

def Database.Database.Database.replaceObject (   self,
  object,
  ignore_lock = False,
  transactional = True 
)

replaceObject will replace the object with the same ID in the Database.
If something Wrong append, it return None

def Database.Database.Database.commitTransaction (   self  ) 

Commit current Transaction

def Database.Database.Database.startTransaction (   self  ) 

Start a new Transaction

def Database.Database.Database.log (   self,
  message,
  log_level = 0 
)

def Database.Database.Database.rollbackTransaction (   self  ) 

Revert all modification done during current Transaction


Member Data Documentation

dictionary Database.Database.Database.database_available_type_list_correspondence [static]

Initial value:

{
      'int':'(int,long,float)',
      'uint':'(int,long,float)',
      'float':'(float,int, long)',
      'string':'(str,)',
      'text':'(str,)',
      'boolean':'(bool,)'}
It represent the link between database type and python type

the list given for each property are impotant The first item will be use to instanciate an object, other are accepted value. For exemple float could be float, int or long (on setValue) and getValue will always return a casted value (float(value)) because it's the first given correspondence.

tuple Database.Database.Database.host = property(getHost, setHost) [static]

tuple Database.Database.Database.username = property(getUsername, setUsername) [static]

tuple Database.Database.Database.database = property(getDatabase, setDatabase) [static]

tuple Database.Database.Database.port [static]

Initial value:

property(getPort, setPort, doc="port is use in case of network"\
    " database connection ")

tuple Database.Database.Database.password = property(fset=setPassword) [static]

Database.Database.Database.logfilename

Reimplemented in Database.MysqlDatabase.MysqlDatabase.

Database.Database.Database.min_log_level_to_display

Reimplemented in Database.MysqlDatabase.MysqlDatabase.

Database.Database.Database.is_transaction_running

Database.Database.Database.database_structure

Database.Database.Database.host

Database.Database.Database.username

Database.Database.Database.password

Database.Database.Database.database

Database.Database.Database.port


The documentation for this class was generated from the following file:
Generated on Sat Feb 16 09:03:02 2008 for OpenCommerce by  doxygen 1.5.3