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):
        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")
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.

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 :

 
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()
se il vs DB ha bisogno di ulteriori dati come l'indirizzo di una porta, aggiungete la riga
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