El 09/08/13 12:08, Paul McNett escribió:
On 8/8/13 1:39 PM, Ricardo Aráoz wrote:
Hi, I have this business object connected to a sqlite database. On pressing a
button
I want to connect to a new user selected database and replace the contents of
the
original database with the selected one.
So I create a temporary connection, and temporary business object in order to
get
the data set (ds) of the selected database. Then deleteAll() the records of the
original business object and append the new data set to the original business
object.
Right now I was expecting to have a copy of the selected database in my original
database but all I get is an empty table.
Note: the database has only one table (Tarjetas) and both tables, the original
one
and the user selected one are equal (except the data). I use the same business
class
(TarjetasBizobj) to create both business objects, bizTjtas and bizCargar, just
with a
different connection).
Anyone knows what I'm doing wrong?
------------------------- Code
-----------------------------------------------------------
def onCargarArchivo(self, evt):
nombreDB = dabo.ui.getFile('db',
message='Elija una base de datos',
defaultPath='db',
multiple=False)
if nombreDB:
ci = dabo.db.dConnectInfo(DbType='SQLite')
ci.Database = os.path.join('db', nombreDB)
try:
conn = dabo.db.dConnection(ci)
except dException.DBFileDoesNotExistException:
dabo.ui.exclaim(title='Atención',
message=('No me pude conectar con la base\n'
'No he cargado ningún archivo'))
return
else:
bizCargar = self.Application.biz.TarjetasBizobj(conn)
ds = bizCargar.getDataSet()
bizTjtas = self.Form.getBizobj(dataSource='Tarjetas')
bizTjtas.deleteAll()
bizTjtas.appendDataSet(ds)
self.Form.save(dataSource='Tarjetas')
self.Form.requery(dataSource='Tarjetas')
self.Form.GridTarjetas.refresh()
Did you intend for the else block to be part of the try block or part of the if
block?
Some new info. Got the app running and opened the command window.
Created a ci, a connection and then a business object using
self.Application.biz.TarjetasBizobj(conn). But the getDataSet() method
gets me an empty data set. That would explain everything except why do I
get an empty data set.
My guess is that I'm using self.Application.biz.TarjetasBizobj which has
already been used to set up the form's bizobj and that is interfering.
Might that be the problem? Should I create a new bizobj and use that one
to open my new temporary connection?
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/[email protected]