Questo è un modo standars per accedere al database. Ecco il link http://www.python.org/dev/peps/pep-0249/ se volete controllare. Se avete letto qui c'e' una sezione sulla "connessione" e vi potete rendere conto di cio' che viene passato alla connessione la quale ha parametri non definiti. (Questi parametri) dipendono da cio' che richiede il motore del DB. Così Dabo ha bisogno di voi affinche' gli forniate questi parametri prima che avvenga la connessione al vs DB
Il modo piu semplice e facile per avviare una connessione e' usare l'applicazione "CxnEditor.py". Lavora benissimo ed è il migliore esempio di come Dabo fa mangiare il proprio cane (CxnEditor e' stato creato usando Dabo). Io lo uso per i miei progetti e se ci fosse stato un modo migliore l'avrei adottato. Ma, purtroppo, non e' cosi' (ogni reale lavoro e' fatto nella struttura). CxnEditor crea un file XML che contiene i parameters necessari per l'interfaccia di connessione Python da applicare al vs DB. Come: user name, password, host,database name o qualunque altra cosa che consenta la connessione. (L'applicazione) si rende conto che avete bisogno della connessione prima che iniziate a chiedere dati al database. Ma quando lo fa voi gli passate il codice, e che cosa fa il codice, guardate come [lavora]?.
Quando scrivete il codice per un form create qualcosa di simile a quanto segue:
class MainForm(dabo.ui.dForm):
def afterInit(self):
#metto il codice UI qui
self.layout()
if __name__ == "__main__":
app = dabo.dApp()
app.BasePrefKey = "fileTutor"
app.setAppInfo("appName", "File Tutorial ")
app.MainFormClass = MainForm
app.start()
In una "class MainForm?" (il nostro punto di ingresso) dovete aggiungere un metodo "createBizobjs". Questo e' il punto dove dovrete aggiungere le istruzioni per la vs. connessione e aggiungerete la descrizione di bizObjects. Per cominciare aggiungiamo le informazioni di connessione come segue:
#questo metodo use il cnxml file creato da CxnEditor
def createBizobjs(self):Non permette la confusione dei due nomi "FileName?.cnxml" e "connectionName". La "connectionName" e' il nome della connessione all'interno del file "FileName?.cnxml". E' possibile che ci sia piu' di un nome di "connection name" all'interno dello stesso file ma cio' e' al di fuori di questo tutorial. Cosi' "self.connection" e' l'attuale connessione e noi provvederemo al nostro bizObjects.
self.Application.addConnectFile("FileName.cnxml")
# FileName = il nome creato con il CxnEditor.py
# Questa chiamata attualmente creera' la connessione if non ancora fatta.
# Se è avvenuta, restituisce l' esistente connessione, in questo modo
# si evita la connessione multipla
self.connection = self.Application.getConnectionByName("connectionName")
Ricordate che realmente noi consentiamo al nostro programma di parlare con il DB. Allorquando Dabo necessita di comunicare con il database usa l'oggeto "self.connection".
Per tanto se avete bisogno di conoscere come creare un "self.connection" senza usare il CxnEditor, ecco come fare :
se il vs DB ha bisogno di ulteriori dati come l'indirizzo di una porta, aggiungete la riga
from dConnectInfo import dConnectInfo
connInterface = dConnectInfo(DbType="Postgres")
connInterface.Host = "192.168.1.201"
connInterface.Database = "DatabaseName"
connInterface.User = "john"
connInterface.PlainTextPassword = "passWord"
self.connection = dConnection(connInterface).getConnection()
connInterface.Port = "5432".Ma se volete seguire un mio consiglio usate il CxnEditor. E' facile e lavora bene. Ci sono alcuni speciali casi dove il file cnxml non si adatta alle vs necessità.
Il nostro codice assomiglia:
class MainForm(dabo.ui.dForm):
def afterInit(self):
#place some UI code here
self.layout()
def createBizobjs(self):
self.Application.addConnectFile("FileName.cnxml")
# FileName = the name created with the CxnEditor.py
# This call will actually create the connection if it hasn't already
# been made. If it has, it returns the existing connection, so that
# multiple connections aren't used up.
self.connection = self.Application.getConnectionByName("connectionName")
if __name__ == "__main__":
app = dabo.dApp()
app.BasePrefKey = "bizObjTutor"
app.setAppInfo("appName", "bizObject Tutorial ")
app.MainFormClass = MainForm
app.start()
Fin ora non abbiamo detto molto. Solamente che noi abbiamo bisogno di una connessione al DB e bizObject la usa per comunicare con il DB. Ma senza questa informazione non accade nulla e la più potente caratteristica di Dabo resta inutilizzata.
La volta seguente sarà fornito un piccolo form con una UI e noi costruiremo il primo bizObject. Questo lavoro vi permetterà di poter utilizzare il vs favorito DB che funziona perfettamente sotto Python
John Fabiani
_______________________________________________
Post Messages to: Dabo-users leafe.com
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/dabo-users/200712101034.27347.
jfabiani@ yolo.com ©2007 johnf