Re: Question Concerning Z SQL Method and Class Bindings
Peter Sabaini <[email protected]> Tue, 25 May 2010 21:55:52 +0200
| Newsgroups | gmane.comp.web.zope.database |
|---|---|
| Message-ID | <[email protected]> |
--===============5578443646887587638== Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-VaNhUKiuNvVHNtITpB/N" --=-VaNhUKiuNvVHNtITpB/N Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2010-05-25 at 12:21 -0700, Mark Phillips wrote: > Peter, >=20 > I don't think I phrased my question very well. Also, I am coming from > a Java background, so I am thinking about result sets, which may not > be applicable to Python. >=20 > If I have a Z SQL Method query that returns multiple rows to a brains > class, how do I=20 >=20 > (1) reference the returned object that has all the rows > (2) reference a particular row in the returned object > (3) reference a particular piece of data in the returned object.=20 "Brain" objects are bound to individual record objects; each brain object has access to the columns of the record it is bound to.=20 There is no way to access the whole result object this way. This is not something Python-specific but rather the way brains are designed -- they are used to enhance individual records, not the result set. > What is the returned object - list, dictionary, some special object > with associated APIs? The whole result set is an object of type Shared.DC.ZRDB.Results.Results. Individual records are instances of an "inner class" r which inherits from Record.Record and the brain class you specify (Python supports multiple inheritance).=20 Result objects can roughly be treated like lists (eg. iterable, allow individual record access, have a length). > Where is this documented? I can't seem to find it in the Zope 2 book. Unfortunately this is largely undocumented.=20 peter. >=20 > Thanks! >=20 > Mark >=20 > On Tue, May 25, 2010 at 12:03 PM, Peter Sabaini <[email protected]> > wrote: > =20 > On Mon, 2010-05-24 at 21:33 -0700, Mark Phillips wrote: > > I am reading the zope 2 book (relational database section) > and it > > talks about binding classes by putting them in the > Extensions > > directory and then associating them with a Z SQL Method. > That seems to > > be rather straight forward, but where can I find some > examples of > > accessing the values returned from the Z SQL Method in > Python. For > > example, > > > > Z SQL Method > > select * from offense where gameID=3D<some input value from a > form> > > > > This returns ~10 rows. Each row has columns playerID, PB, > BB, SacBunt, > > HBP as well as other columns, all containing integer values. > > > > class GameStats > > """Reads the database for the stats for every player in a > game and > > calculates the stats""" > > > > def AtBat(self, player_id): > > """Calculate the AB for a player. AB =3D PA - (BB + > SacBunt + > > HBP - SF)""" > > How do I get the columns PA, BB, etc for a > particular playerID > > to calculate the BA from the result returned by the Z SQL > method? Is > > there some documentation for how to access the results of > the query > > within this class? > =20 > =20 > Individual columns should be accessible as attributes of the > Brain > object, eg. self.playerID etc. If there's a column PA, it > should be > named self.PA. > =20 > Btw., usually when I'm in doubt which attributes or methods > are > available for a given object, I just put a breakpoint at the > location in > question and poke at it with pdb, the Python debugger. See eg. > http://wiki.zope.org/zope2/DebuggingWithPdb , under > "breakpoint in the > code" how to invoke the debugger. See > http://docs.python.org/library/pdb.html for pdb docs. > =20 > hth, > peter. > =20 > > > > Thanks! > > > > Mark > > _______________________________________________ > > Zope-DB mailing list > > [email protected] > > https://mail.zope.org/mailman/listinfo/zope-db > =20 >=20 --=-VaNhUKiuNvVHNtITpB/N Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEABECAAYFAkv8K0gACgkQafAcTZYKVBw1LQCfWXbu7AyDrgeGTrTWG2waU7Qy kP8An2/IaBTilRq/NFJXTqC//3+1sUOS =eWy7 -----END PGP SIGNATURE----- --=-VaNhUKiuNvVHNtITpB/N-- --===============5578443646887587638== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Zope-DB mailing list [email protected] https://mail.zope.org/mailman/listinfo/zope-db --===============5578443646887587638==--