|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 | Next > |
|
|
SQL Builder versus UserSQLHello: I have used the Class Designer with a sqlite3 database to create a grid that displays the look up value that corresponds to foreign key value, as described in archived posts and the Wiki. When I use the SQL Builder to create the query which contains a field alias, things display properly. When I create the identical SQL statement manually and utilize UserSQL, I generate an error. The manual SQL statement works when I run it directly against sqlite3 and the database. I am interested in using UserSQL and manual SQL statements rather than SQL Builder, in order to create SQL statements that contain Table aliases. SQL Builder does not seem to allow Table aliases although it does permit field aliases. I am running Windows XP Pro SP2, Python Version: 2.4.4 on win32, Dabo Version: Version 0.9a; Revision 3335, UI Version: 2.8.1.1 on wxMSW and SQLite version 3.3.12. The generated error is: Traceback (most recent call last): File "C:\projects\dabo\lib\eventMixin.py", line 97, in raiseEvent bindingFunction(event) File "C:\projects\dabo\ui\uiwx\dPemMixin.py", line 1155, in __onUpdate self.update() File "C:\projects\dabo\ui\dDataControlMixinBase.py", line 109, in update self.Value = method() The functioning code is: /**********works****************/ class FotoinfBizobj(dabo.biz.dBizobj): def afterInit(self): self.DataSource = "FotoInf" self.KeyField = "count0" self.LinkField = "recordID_fk" self.addFrom("FotoInf") self.addField("recordID_fk") self.addField("FInfoID_fk") self.addField("count0") self.addJoin("InfoPT", "FotoInf.FInfoID_fk= InfoPT.InfoID") self.addField("InfoPT.photoType as phType") def validateRecord(self): """Returning anything other than an empty string from this method will prevent the data from being saved. """ ret = "" # Add your business rules here. return ret fotoinfBizobj = FotoinfBizobj(self.Connection) self.addBizobj(fotoinfBizobj) fotoinfBizobj.setLimitClause(None) recnameBizobj.addChild(fotoinfBizobj) The code that generates the error is: /******************does not work***********************************/ class FotoinfBizobj(dabo.biz.dBizobj): def afterInit(self): self.DataSource = "FotoInf" self.KeyField = "count0" self.LinkField = "recordID_fk" def validateRecord(self): """Returning anything other than an empty string from this method will prevent the data from being saved. """ ret = "" # Add your business rules here. return ret fotoinfBizobj = FotoinfBizobj(self.Connection) self.addBizobj(fotoinfBizobj) testsql = """Select FotoInf.count0, FotoInf.recordID_fk, FotoInf.FInfoID_fk, InfoPT.photoType as phType From FotoInf inner join InfoPT on FotoInf.FInfoID_fk = InfoPT.InfoID""" fotoinfBizobj.UserSQL= testsql fotoinfBizobj.setLimitClause(None) recnameBizobj.addChild(fotoinfBizobj) thank you, dwarder _______________________________________________ Post Messages to: Dabo-users@... 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/loom.20070831T232356-297@... |
|
|
Re: SQL Builder versus UserSQLOn Aug 31, 2007, at 5:26 PM, dw wrote:
> The generated error is: > > Traceback (most recent call last): > File "C:\projects\dabo\lib\eventMixin.py", line 97, in raiseEvent > bindingFunction(event) > File "C:\projects\dabo\ui\uiwx\dPemMixin.py", line 1155, in > __onUpdate > self.update() > File "C:\projects\dabo\ui\dDataControlMixinBase.py", line 109, in > update > self.Value = method() I have an idea what's going on here, but if you would be willing to help me out a little more... If you could modify C:\projects\dabo\ui\dDataControlMixinBase.py so that the following two unnumbered debugging lines are added between the current lines 108-109 107 if self.Source and self._srcIsBizobj: 108 # First see if DataField refers to a method of the bizobj: print "SOURCE", self.Source print "DATAFIELD", self.DataField 109 method = getattr(self.Source, self.DataField, None) 110 if method is not None: 111 self.Value = method() Run the code that uses the UserSQL version, and then post the debugging output here. -- Ed Leafe -- http://leafe.com -- http://dabodev.com _______________________________________________ Post Messages to: Dabo-users@... 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/F2A3A365-E99B-4417-876F-8AF149143CB2@... |
|
|
Re: SQL Builder versus UserSQLEd Leafe <ed@...> writes:
> > On Aug 31, 2007, at 5:26 PM, dw wrote: > > > I have an idea what's going on here, but if you would be willing to > help me out a little more... > > If you could modify C:\projects\dabo\ui\dDataControlMixinBase.py so > that the following two unnumbered debugging lines are added between > the current lines 108-109 > > 107 if self.Source and self._srcIsBizobj: > 108 # First see if DataField refers to a method of the bizobj: > print "SOURCE", self.Source > print "DATAFIELD", self.DataField > 109 method = getattr(self.Source, self.DataField, None) > 110 if method is not None: > 111 self.Value = method() > > Run the code that uses the UserSQL version, and then post the > debugging output here. > Dabo Info Log: Fri Aug 31 19:19:37 2007: 1 database connection definition(s) loaded. Dabo Info Log: Fri Aug 31 19:19:38 2007: User interface set to 'wx' by dApp. Dabo Info Log: Fri Aug 31 19:19:38 2007: wxPython Version: 2.8.1.1 wxMSW (unicode) Dabo Info Log: Fri Aug 31 19:19:38 2007: WARNING: No BasePrefKey has been set for this application. SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD RecID SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD Name0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD location0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD Date0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD InfSource0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD RecSource0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD StorageBox0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD Type0_fk SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD HideOnline SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD Descript0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD RecID SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD Name0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD location0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD Date0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD InfSource0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD RecSource0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD StorageBox0 SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD Type0_fk SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD HideOnline SOURCE <__builtin__.RecnameBizobj (baseclass dabo.biz.dBizobj, id:34985392)> DATAFIELD Descript0 Dabo Info Log: Fri Aug 31 19:19:50 2007: Application finished. Traceback (most recent call last): File "C:\projects\dabo\dabo\ui\uiwx\dGrid.py", line 297, in IsEmptyCell return not bizobj.getFieldVal(field, row) File "C:\projects\dabo\dabo\biz\dBizobj.py", line 1285, in getFieldVal return cursor.getFieldVal(fld, row) File "C:\projects\dabo\dabo\db\dCursorMixin.py", line 781, in getFieldVal raise dException.FieldNotFoundException, "%s '%s' %s" % ( dabo.dException.FieldNotFoundException: Field 'phType' does not exist in the data set dwarder _______________________________________________ Post Messages to: Dabo-users@... 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/loom.20070901T012402-725@... |
|
|
Re: SQL Builder versus UserSQLOn Friday 31 August 2007 14:26, dw wrote:
> Hello: > I have used the Class Designer with a sqlite3 database to create a grid > that displays the look up value > that corresponds to foreign key value, as described in archived posts and > the Wiki. When I use the > SQL Builder to create the query which contains a field alias, things > display properly. When I create the identical > SQL statement manually and utilize UserSQL, I generate an error. The manual > SQL statement works when I run it > directly against sqlite3 and the database. I am interested in using UserSQL > and manual SQL statements rather > than SQL Builder, in order to create SQL statements that contain Table > aliases. SQL Builder does not seem to > allow Table aliases although it does permit field aliases. > I am running Windows XP Pro SP2, Python Version: 2.4.4 on win32, Dabo > Version: Version 0.9a; Revision 3335, > UI Version: 2.8.1.1 on wxMSW and SQLite version 3.3.12. > > > > The functioning code is: > /**********works****************/ > class FotoinfBizobj(dabo.biz.dBizobj): > def afterInit(self): > self.DataSource = "FotoInf" > self.KeyField = "count0" > self.LinkField = "recordID_fk" > > self.addFrom("FotoInf") > self.addField("recordID_fk") > self.addField("FInfoID_fk") > self.addField("count0") > self.addJoin("InfoPT", "FotoInf.FInfoID_fk= InfoPT.InfoID") > self.addField("InfoPT.photoType as phType") > > def validateRecord(self): > """Returning anything other than an empty string from > this method will prevent the data from being saved. > """ > ret = "" > # Add your business rules here. > return ret > > > fotoinfBizobj = FotoinfBizobj(self.Connection) > self.addBizobj(fotoinfBizobj) > > fotoinfBizobj.setLimitClause(None) > recnameBizobj.addChild(fotoinfBizobj) > > > The code that generates the error is: > /******************does not work***********************************/ > > class FotoinfBizobj(dabo.biz.dBizobj): > def afterInit(self): > self.DataSource = "FotoInf" > self.KeyField = "count0" > self.LinkField = "recordID_fk" > > > > def validateRecord(self): > """Returning anything other than an empty string from > this method will prevent the data from being saved. > """ > ret = "" > # Add your business rules here. > return ret > > > fotoinfBizobj = FotoinfBizobj(self.Connection) > self.addBizobj(fotoinfBizobj) > > testsql = """Select FotoInf.count0, FotoInf.recordID_fk, > FotoInf.FInfoID_fk, InfoPT.photoType as phType > From FotoInf inner join InfoPT on FotoInf.FInfoID_fk = InfoPT.InfoID""" > fotoinfBizobj.UserSQL= testsql > > fotoinfBizobj.setLimitClause(None) > recnameBizobj.addChild(fotoinfBizobj) I don't use SQLite so take what I'm saying with a grain of salt. When I need to add a field from a join table I also insure that the field is in my NonUpdate statement as in; self.NonUpdateFields=["luspecies"] self.addField("agspecies.species as luspecies") self.addJoin('public.agvarieties','agvarieties.pkid=agpoptrs.fk_variety',joinType='left outer') It's my understanding a bizobj can only update one table. -- John Fabiani _______________________________________________ Post Messages to: Dabo-users@... 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/200708311652.28603.jfabiani@... |
|
|
Re: SQL Builder versus UserSQLOn Aug 31, 2007, at 7:52 PM, johnf wrote:
> I don't use SQLite so take what I'm saying with a grain of salt. > When I need > to add a field from a join table I also insure that the field is in my > NonUpdate statement as in; Any field that is not in the DataSource's field list is automatically marked as non-updatable. -- Ed Leafe -- http://leafe.com -- http://dabodev.com _______________________________________________ Post Messages to: Dabo-users@... 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/11F176CD-61CA-47D2-9924-67807E58CC54@... |
|
|
Re: SQL Builder versus UserSQLOn Aug 31, 2007, at 7:28 PM, dw wrote:
> File "C:\projects\dabo\dabo\db\dCursorMixin.py", line 781, in > getFieldVal > raise dException.FieldNotFoundException, "%s '%s' %s" % ( > dabo.dException.FieldNotFoundException: Field 'phType' does not > exist in the > data set That's odd - adding a couple of print statements shouldn't change the error. Are you sure that the UserSQL is set to a statement that has a field alias of 'phType'? Your original example did. -- Ed Leafe -- http://leafe.com -- http://dabodev.com _______________________________________________ Post Messages to: Dabo-users@... 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/6D35BEC3-2911-41F7-9299-9A458599FE1B@... |
|
|
Re: SQL Builder versus UserSQLEd Leafe <ed@...> writes:
> > That's odd - adding a couple of print statements shouldn't change > the error. > > Are you sure that the UserSQL is set to a statement that has a field > alias of 'phType'? Your original example did. > I apologize. The originally posted debug output was from a different error. The actual error is the same as is generated with the altered dDataControlMixinBase.py file. When SQL Builder constructs the query and the field alias 'phType' is added, field 'phType' is found in the dataset. When the same SQL is constructed manually and UserSQL is invoked, the field alias 'phType' is not found in the dataset, although it is created in the query : testsql = """Select FotoInf.count0, FotoInf.recordID_fk, FotoInf.FInfoID_fk, InfoPT.photoType as phType From FotoInf inner join InfoPT on FotoInf.FInfoID_fk = InfoPT.InfoID""" /***debug output that should have accompanied the original post********/ Dabo Info Log: Thu Aug 30 22:51:57 2007: 1 database connection definition(s) loaded. Dabo Info Log: Thu Aug 30 22:51:58 2007: User interface set to 'wx' by dApp. Dabo Info Log: Thu Aug 30 22:51:58 2007: wxPython Version: 2.8.1.1 wxMSW (unicode) Dabo Info Log: Thu Aug 30 22:51:59 2007: WARNING: No BasePrefKey has been set for this application. Traceback (most recent call last): File "C:\projects\dabo\dabo\ui\uiwx\dGrid.py", line 297, in IsEmptyCell return not bizobj.getFieldVal(field, row) File "C:\projects\dabo\dabo\biz\dBizobj.py", line 1285, in getFieldVal return cursor.getFieldVal(fld, row) File "C:\projects\dabo\dabo\db\dCursorMixin.py", line 781, in getFieldVal raise dException.FieldNotFoundException, "%s '%s' %s" % ( dabo.dException.FieldNotFoundException: Field 'phType' does not exist in the data set /*****debug output after the dDataControlMixinBase.py was altered******/ Dabo Info Log: Fri Aug 31 19:19:37 2007: 1 database connection definition(s) loaded. Dabo Info Log: Fri Aug 31 19:19:38 2007: User interface set to 'wx' by dApp. Dabo Info Log: Fri Aug 31 19:19:38 2007: wxPython Version: 2.8.1.1 wxMSW (unicode) Dabo Info Log: Fri Aug 31 19:19:38 2007: WARNING: No BasePrefKey has been set for this application. Dabo Info Log: Fri Aug 31 19:19:50 2007: Application finished. Traceback (most recent call last): File "C:\projects\dabo\dabo\ui\uiwx\dGrid.py", line 297, in IsEmptyCell return not bizobj.getFieldVal(field, row) File "C:\projects\dabo\dabo\biz\dBizobj.py", line 1285, in getFieldVal return cursor.getFieldVal(fld, row) File "C:\projects\dabo\dabo\db\dCursorMixin.py", line 781, in getFieldVal raise dException.FieldNotFoundException, "%s '%s' %s" % ( dabo.dException.FieldNotFoundException: Field 'phType' does not exist in the data set dwarder _______________________________________________ Post Messages to: Dabo-users@... 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/loom.20070901T051229-461@... |
|
|
Re: SQL Builder versus UserSQLOn Aug 31, 2007, at 11:18 PM, dw wrote:
> I apologize. The originally posted debug output was from a > different error. The > actual error is the same as is generated with the altered > dDataControlMixinBase.py file. When SQL Builder constructs the > query and the field alias 'phType' is added, > field 'phType' is found in the dataset. When the same SQL is > constructed > manually and UserSQL is invoked, the field alias 'phType' is not > found in the > dataset, although it is created in the query : > > testsql = """Select FotoInf.count0, FotoInf.recordID_fk, > FotoInf.FInfoID_fk, > InfoPT.photoType as phType From FotoInf inner join InfoPT on > FotoInf.FInfoID_fk = InfoPT.InfoID""" I'm stumped. I just used the Class Designer to create a form, and create a grid on it using the Data Environment wizard as you did. I used a connection file to an SQLite database that I use for tracking suspicious IP addresses that hit my server. I changed the DataField for a column to an alias that didn't exist in the table, and then changed the generated bizobj code to delete the SQL Builder stuff, and define the UserSQL to include the aliased field. Here's the bizobj code: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - def createBizobjs(self): class IphitsBizobj(dabo.biz.dBizobj): def afterInit(self): self.DataSource = "iphits" self.KeyField = "pkid" self.UserSQL = """select pkid, hittime, ipaddress as crappo from iphits order by hittime desc""" def validateRecord(self): """Returning anything other than an empty string from this method will prevent the data from being saved. """ ret = "" # Add your business rules here. return ret iphitsBizobj = IphitsBizobj(self.Connection) self.addBizobj(iphitsBizobj) def afterInitAll(self): self.requery() - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The grid column that was originally created with a DataField of 'ipaddress' was changed so that it now had DataField = "crappo". I ran the design, and everything appeared as expected. From the running design, I pressed Cmd-D to bring up a command window, and typed 'print self.PrimaryBizobj.getDataSet()', and the output showed a series of rows, each of which had a key named 'crappo'. Is it possible that SQLite is changing the case of the alias name? Try this: right after your self.requery(), add the line: print self.PrimaryBizobj.getDataSet()[0].keys() ...in order to see what the fields in your data set are actually named. -- Ed Leafe -- http://leafe.com -- http://dabodev.com _______________________________________________ Post Messages to: Dabo-users@... 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/0C008DF7-DEC3-4A31-8BD1-DD07DCC8DAAA@... |
|
|
Re: SQL Builder versus UserSQLEd Leafe <ed@...> writes:
> > > I'm stumped. I just used the Class Designer to create a form, and > create a grid on it using the Data Environment wizard as you did. I > used a connection file to an SQLite database that I use for tracking > suspicious IP addresses that hit my server. I changed the DataField > for a column to an alias that didn't exist in the table, and then > changed the generated bizobj code to delete the SQL Builder stuff, > and define the UserSQL to include the aliased field. Here's the > bizobj code: > > The grid column that was originally created with a DataField of > 'ipaddress' was changed so that it now had DataField = "crappo". I > ran the design, and everything appeared as expected. From the running > design, I pressed Cmd-D to bring up a command window, and typed > 'print self.PrimaryBizobj.getDataSet()', and the output showed a > series of rows, each of which had a key named 'crappo'. > > Is it possible that SQLite is changing the case of the alias name? > Try this: right after your self.requery(), add the line: > > print self.PrimaryBizobj.getDataSet()[0].keys() > > ...in order to see what the fields in your data set are actually named. > the output with print self.PrimaryBizobj.getDataSet()[0].keys() is: ['Date0', 'StorageBox0', 'Type0_fk', 'location0', 'InfSource0', 'Descript0', 'Name0', 'RecSource0', 'RecID', 'HideOnline'] Dabo Info Log: Sat Sep 01 12:56:48 2007: Application finished. Traceback (most recent call last): File "C:\projects\dabo\dabo\ui\uiwx\dGrid.py", line 297, in IsEmptyCell return not bizobj.getFieldVal(field, row) File "C:\projects\dabo\dabo\biz\dBizobj.py", line 1285, in getFieldVal return cursor.getFieldVal(fld, row) File "C:\projects\dabo\dabo\db\dCursorMixin.py", line 781, in getFieldVal raise dException.FieldNotFoundException, "%s '%s' %s" % ( dabo.dException.FieldNotFoundException: Field 'phType' does not exist in the data set However, my grid is filled with a dataset that is a child of the PrimaryBizobj, so the field alias and other grid fields are not listed with print self.PrimaryBizobj.getDataSet()[0].keys() dwarder _______________________________________________ Post Messages to: Dabo-users@... 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/loom.20070901T185931-279@... |
|
|
Re: SQL Builder versus UserSQLOn Sep 1, 2007, at 1:05 PM, dw wrote:
> However, my grid is filled with a dataset that is a child of the > PrimaryBizobj, > so the field alias and other grid fields are not listed with > print self.PrimaryBizobj.getDataSet()[0].keys() OK, then we need something other than PrimaryBizobj. biz = self.getBizobj("your_bizobj_name") print biz.getDataSet()[0].keys() Change "your_bizobj_name" to the DataSource of the bizobj in question. -- Ed Leafe -- http://leafe.com -- http://dabodev.com _______________________________________________ Post Messages to: Dabo-users@... 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/378F960E-EFF7-4202-8EFE-F967187FD901@... |
|
|
Re: SQL Builder versus UserSQLEd Leafe <ed@...> writes:
> > > > biz = self.getBizobj("your_bizobj_name") > print biz.getDataSet()[0].keys() > > Change "your_bizobj_name" to the DataSource of the bizobj in question. > It appears that the problem is that the fields defined by the join in UserSQL are not added to the dataset. Using SQL Builder, they are added to the dataset. Fields from the joined table, InfoPT ,with or without an alias, are not added to the dataset by UserSQL. for UserSQL: testsql = """Select FotoInf.count0, FotoInf.recordID_fk, FotoInf.FInfoID_fk, InfoPT.photoType as phType From FotoInf inner join InfoPT on FotoInf.FInfoID_fk = InfoPT.InfoID""" fotoinfBizobj.UserSQL= testsql output from: biz = self.getBizobj("FotoInf") print biz.getDataSet() [0].keys() is: ['count0', 'FInfoID_fk', 'recordID_fk'] for UserSQL(with the alias reference removed): testsql = """Select FotoInf.count0, FotoInf.recordID_fk, FotoInf.FInfoID_fk, InfoPT.photoType From FotoInf inner join InfoPT on FotoInf.FInfoID_fk = InfoPT.InfoID""" self.UserSQL= testsql output from: biz = self.getBizobj("FotoInf") print biz.getDataSet() [0].keys() is: ['count0', 'FInfoID_fk', 'recordID_fk'] for SQL Builder: self.DataSource = "FotoInf" self.KeyField = "count0" self.LinkField = "recordID_fk" self.addFrom("FotoInf") self.addField("recordID_fk") self.addField("FInfoID_fk") self.addField("count0") self.addJoin("InfoPT", "FotoInf.FInfoID_fk= InfoPT.InfoID") self.addField("InfoPT.photoType as phType") output from: biz = self.getBizobj("FotoInf") print biz.getDataSet() [0].keys() is: ['recordID_fk', 'FInfoID_fk', 'phType', 'count0'] dwarder _______________________________________________ Post Messages to: Dabo-users@... 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/loom.20070901T202829-294@... |
|
|
Re: SQL Builder versus UserSQLOn Sep 1, 2007, at 3:04 PM, dw wrote:
> It appears that the problem is that the fields defined by the join > in UserSQL > are not added to the dataset. Using SQL Builder, they are added to > the dataset. > Fields from the joined table, InfoPT ,with or without an alias, are > not added > to the dataset by UserSQL. Are you absolutely certain that the bizobj in question has had its requery() called at least once? After all, until the SQL is actually executed, there is no way that it could possibly know about aliases you defined in it, and this looks like it is simply running an empty query on the DataSource to get its field listings. -- Ed Leafe -- http://leafe.com -- http://dabodev.com _______________________________________________ Post Messages to: Dabo-users@... 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/03C5E1D6-1B8E-400E-A452-47904201CC34@... |
|
|
Re: SQL Builder versus UserSQLEd Leafe <ed@...> writes:
> > On Sep 1, 2007, at 3:04 PM, dw wrote: > > Are you absolutely certain that the bizobj in question has had its > requery() called at least once? After all, until the SQL is actually > executed, there is no way that it could possibly know about aliases > you defined in it, and this looks like it is simply running an empty > query on the DataSource to get its field listings. There is a self.requery() in the afterInitAll(self) method. I still get the error even if I add a fotoinfBizobj.requery() at the end of the class FotoinfBizobj(dabo.biz.dBizobj) definition. Unless the SQL Builder generates its own self.requery(), the UserSQL and SQL Builder methods in my code are using the same requery() . dwarder _______________________________________________ Post Messages to: Dabo-users@... 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/loom.20070901T232237-20@... |
|
|
Re: SQL Builder versus UserSQLOn Sep 1, 2007, at 5:30 PM, dw wrote:
> There is a self.requery() in the afterInitAll(self) method. I still > get the error > even if I add a fotoinfBizobj.requery() at the end of the class > FotoinfBizobj(dabo.biz.dBizobj) definition. Unless the SQL Builder > generates > its own self.requery(), the UserSQL and SQL Builder methods in my > code are > using the same requery() . What I meant was that if the requery for the UserSQL-defined bizobj must happen *before* anything tries to reference the aliased fields. If an attempt is made to reference the fields before they exist, you will get the error you reported. Try this: add a debugging line to dBizobj.requery(): 788 # run the requery 789 uiException = None 790 cursor = self._CurrentCursor 791 try: 792 cursor.requery(params) print "REQUERY", self.DataSource 793 794 except dException.ConnectionLostException, e: Run your code again, and verify that the requery is actually being run. -- Ed Leafe -- http://leafe.com -- http://dabodev.com _______________________________________________ Post Messages to: Dabo-users@... 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/95314F70-42E1-433E-B143-3E7D72DB99E6@... |
|
|
Re: SQL Builder versus UserSQLEd Leafe <ed@...> writes:
> > > Try this: add a debugging line to dBizobj.requery(): > > 788 # run the requery > 789 uiException = None > 790 cursor = self._CurrentCursor > 791 try: > 792 cursor.requery(params) > print "REQUERY", self.DataSource > 793 > 794 except dException.ConnectionLostException, e: > > Run your code again, and verify that the requery is actually being run. > adding : # run the requery uiException = None cursor = self._CurrentCursor try: cursor.requery(params) print "REQUERY", self.DataSource except dException.ConnectionLostException, e: generated the following error: Traceback (most recent call last): File "fmrecs05.py", line 22, in ? main() File "fmrecs05.py", line 15, in main app.start() File "C:\projects\dabo\dabo\dApp.py", line 284, in start self.setup() File "C:\projects\dabo\dabo\dApp.py", line 249, in setup self.initUIApp() File "C:\projects\dabo\dabo\dApp.py", line 276, in initUIApp self.uiApp.setup() File "C:\projects\dabo\dabo\ui\uiwx\uiApp.py", line 232, in setup frm = self.dApp.MainForm = dabo.ui.createForm(mfc) File "C:\projects\dabo\dabo\ui\uiwx\__init__.py", line 1019, in createForm frm = cls(*args, **kwargs) File "c:\docume~1\dew\locals~1\temp\tmp55u9fk.py", line 9, in __init__ super(dForm_9332035386, self).__init__(parent=parent, attProperties=attProperties, *args, **kwargs) File "C:\projects\dabo\dabo\ui\uiwx\dForm.py", line 870, in __init__ BaseForm.__init__(self, preClass, parent, properties, attProperties, *args, **kwargs) File "C:\projects\dabo\dabo\ui\uiwx\dForm.py", line 43, in __init__ fm.dFormMixin.__init__(self, preClass, parent, properties, attProperties, *args, **kwargs) File "C:\projects\dabo\dabo\ui\uiwx\dFormMixin.py", line 66, in __init__ attProperties, *args, **kwargs) File "C:\projects\dabo\dabo\ui\uiwx\dPemMixin.py", line 185, in __init__ self._afterInit() File "C:\projects\dabo\dabo\ui\uiwx\dForm.py", line 69, in _afterInit super(BaseForm, self)._afterInit() File "C:\projects\dabo\dabo\ui\uiwx\dFormMixin.py", line 111, in _afterInit self.createBizobjs() File "c:\docume~1\dew\locals~1\temp\tmp55u9fk.py", line 417, in createBizobjs fotoinfBizobj = FotoinfBizobj(self.Connection) File "C:\projects\dabo\dabo\biz\dBizobj.py", line 42, in __init__ self._afterInit() File "C:\projects\dabo\dabo\dObject.py", line 159, in _afterInit self.afterInit() File "c:\docume~1\dew\locals~1\temp\tmp55u9fk.py", line 394, in afterInit except dException.ConnectionLostException, e: NameError: global name 'dException' is not defined so I added : # run the requery uiException = None cursor = self._CurrentCursor try: cursor.requery(params) print "REQUERY", self.DataSource except: print "exception raised" The debug output demonstrates the requery() fails: Dabo Info Log: Sat Sep 01 19:25:07 2007: 1 database connection definition(s) loaded. Dabo Info Log: Sat Sep 01 19:25:08 2007: User interface set to 'wx' by dApp. Dabo Info Log: Sat Sep 01 19:25:08 2007: wxPython Version: 2.8.1.1 wxMSW (unicode) exception raised Dabo Info Log: Sat Sep 01 19:25:08 2007: WARNING: No BasePrefKey has been set for this application. Dabo Info Log: Sat Sep 01 19:25:16 2007: Application finished. Traceback (most recent call last): File "C:\projects\dabo\dabo\ui\uiwx\dGrid.py", line 297, in IsEmptyCell return not bizobj.getFieldVal(field, row) File "C:\projects\dabo\dabo\biz\dBizobj.py", line 1285, in getFieldVal return cursor.getFieldVal(fld, row) File "C:\projects\dabo\dabo\db\dCursorMixin.py", line 781, in getFieldVal raise dException.FieldNotFoundException, "%s '%s' %s" % ( dabo.dException.FieldNotFoundException: Field 'phType' does not exist in the data set the Bizobj code is: class FotoinfBizobj(dabo.biz.dBizobj): def afterInit(self): self.DataSource = "FotoInf" self.KeyField = "count0" self.LinkField = "recordID_fk" testsql = """Select FotoInf.count0, FotoInf.recordID_fk, FotoInf.FInfoID_fk, InfoPT.photoType From FotoInf inner join InfoPT on FotoInf.FInfoID_fk = InfoPT.InfoID""" self.UserSQL= testsql #self.requery() # run the requery uiException = None cursor = self._CurrentCursor try: cursor.requery(params) print "REQUERY", self.DataSource except: print " exception raised" def validateRecord(self): """Returning anything other than an empty string from this method will prevent the data from being saved. """ ret = "" # Add your business rules here. return ret dwarder _______________________________________________ Post Messages to: Dabo-users@... 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/loom.20070902T014311-479@... |
|
|
Re: SQL Builder versus UserSQLOn Sep 1, 2007, at 7:52 PM, dw wrote:
> adding : # run the requery > uiException = None > cursor = self._CurrentCursor > try: > cursor.requery(params) > print "REQUERY", self.DataSource > > except dException.ConnectionLostException, e: > > generated the following error: > > Traceback (most recent call last): > self.afterInit() > File "c:\docume~1\dew\locals~1\temp\tmp55u9fk.py", line 394, in > afterInit > except dException.ConnectionLostException, e: > NameError: global name 'dException' is not defined It looks to me like you added that code to your bizobj, and not dabo.biz.dBizobj, as I had suggested. Either that, or your indentation didn't match (make sure only tabs are used; tabs are standard in all Dabo framework code. What I'm hoping to find out is whether the bizobj with DataSource="FotoInf" has actually had its requery run at the framework level before anything tries to reference the aliased field. So please change your bizobj code back to: class FotoinfBizobj(dabo.biz.dBizobj): def afterInit(self): self.DataSource = "FotoInf" self.KeyField = "count0" self.LinkField = "recordID_fk" testsql = """Select FotoInf.count0, FotoInf.recordID_fk, FotoInf.FInfoID_fk, InfoPT.photoType From FotoInf inner join InfoPT on FotoInf.FInfoID_fk = InfoPT.InfoID""" self.UserSQL= testsql ...and make the suggested debugging change to dBizobj.py. -- Ed Leafe -- http://leafe.com -- http://dabodev.com _______________________________________________ Post Messages to: Dabo-users@... 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/E7284A3A-E0E1-470C-A70C-84BA37E9B13C@... |
|
|
Re: SQL Builder versus UserSQLthe output with the modified dBizobj.py is:
REQUERY RecName REQUERY FotoInf REQUERY tbAssoc Dabo Info Log: Sat Sep 01 21:58:29 2007: Application finished. Traceback (most recent call last): File "C:\projects\dabo\dabo\ui\uiwx\dGrid.py", line 297, in IsEmptyCell return not bizobj.getFieldVal(field, row) File "C:\projects\dabo\dabo\biz\dBizobj.py", line 1286, in getFieldVal return cursor.getFieldVal(fld, row) File "C:\projects\dabo\dabo\db\dCursorMixin.py", line 781, in getFieldVal raise dException.FieldNotFoundException, "%s '%s' %s" % ( dabo.dException.FieldNotFoundException: Field 'phType' does not exist in the data set Ed Leafe <ed@...> wrote: On Sep 1, 2007, at 7:52 PM, dw wrote: > adding : # run the requery > uiException = None > cursor = self._CurrentCursor > try: > cursor.requery(params) > print "REQUERY", self.DataSource > > except dException.ConnectionLostException, e: > > generated the following error: > > Traceback (most recent call last): > self.afterInit() > File "c:\docume~1\dew\locals~1\temp\tmp55u9fk.py", line 394, in > afterInit > except dException.ConnectionLostException, e: > NameError: global name 'dException' is not defined It looks to me like you added that code to your bizobj, and not dabo.biz.dBizobj, as I had suggested. Either that, or your indentation didn't match (make sure only tabs are used; tabs are standard in all Dabo framework code. What I'm hoping to find out is whether the bizobj with DataSource="FotoInf" has actually had its requery run at the framework level before anything tries to reference the aliased field. So please change your bizobj code back to: class FotoinfBizobj(dabo.biz.dBizobj): def afterInit(self): self.DataSource = "FotoInf" self.KeyField = "count0" self.LinkField = "recordID_fk" testsql = """Select FotoInf.count0, FotoInf.recordID_fk, FotoInf.FInfoID_fk, InfoPT.photoType From FotoInf inner join InfoPT on FotoInf.FInfoID_fk = InfoPT.InfoID""" self.UserSQL= testsql ...and make the suggested debugging change to dBizobj.py. -- Ed Leafe -- http://leafe.com -- http://dabodev.com [excessive quoting removed by server] _______________________________________________ Post Messages to: Dabo-users@... 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/534762.96492.qm@... |
|
|
Re: SQL Builder versus UserSQLOn Sep 1, 2007, at 10:14 PM, daryl warder wrote:
> the output with the modified dBizobj.py is: > > > REQUERY RecName > REQUERY FotoInf > REQUERY tbAssoc > Dabo Info Log: Sat Sep 01 21:58:29 2007: Application finished. > > Traceback (most recent call last): > File "C:\projects\dabo\dabo\ui\uiwx\dGrid.py", line 297, in > IsEmptyCell > return not bizobj.getFieldVal(field, row) > File "C:\projects\dabo\dabo\biz\dBizobj.py", line 1286, in > getFieldVal > return cursor.getFieldVal(fld, row) > File "C:\projects\dabo\dabo\db\dCursorMixin.py", line 781, in > getFieldVal > raise dException.FieldNotFoundException, "%s '%s' %s" % ( > dabo.dException.FieldNotFoundException: Field 'phType' does not > exist in the data set That's still puzzling. I am unable to reproduce anything like this here. One thing that is curious: there is the line after the last 'REQUERY' output stating that the application terminated. Did you quit the app, or did the error cause the app to quit? If you're still willing to persevere, let's see what the cursor has in it. Modify dabo.db.dCursorMixin.py to insert the following debug line: 755 def getFieldVal(self, fld, row=None): 756 """ Return the value of the specified field in the current or specified row.""" 757 if self.RowCount <= 0: 758 raise dException.NoRecordsException, _("No records in the data set.") 759 if row is None: 760 row = self.RowNumber 761 762 rec = self._records[row] print "ROW", row, "REC", rec 763 if isinstance(fld, (tuple, list)): Then post the output here. -- Ed Leafe -- http://leafe.com -- http://dabodev.com _______________________________________________ Post Messages to: Dabo-users@... 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/75362C90-610A-45C7-9471-323270CB0ECC@... |
|
|
Re: SQL Builder versus UserSQLthe application runs and does not terminate because of the error. the affected cell of the grid displays no data. the debugging output is as follows, the lines of interest contain REC {'count0': 2168, 'FInfoID_fk': 12, 'recordID_fk': 2}:
Dabo Info Log: Sun Sep 02 10:17:10 2007: 1 database connection definition(s) loaded. Dabo Info Log: Sun Sep 02 10:17:16 2007: User interface set to 'wx' by dApp. Dabo Info Log: Sun Sep 02 10:17:16 2007: wxPython Version: 2.8.1.1 wxMSW (unicode) Dabo Info Log: Sun Sep 02 10:17:17 2007: WARNING: No BasePrefKey has been set for this application. ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 FORD, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991A.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 1, 'HideOnline': 0} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 3 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 8176} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 1, 'FirstName_fk': 363, 'counter1': 39} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 1 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 7} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 1, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 6} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 0 REC {'count0': 651, 'FInfoID_fk': 12, 'recordID_fk': 1} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 0 REC {'count0': 2168, 'FInfoID_fk': 12, 'recordID_fk': 2} ROW 0 REC {'count0': 2168, 'FInfoID_fk': 12, 'recordID_fk': 2} ROW 0 REC {'count0': 2168, 'FInfoID_fk': 12, 'recordID_fk': 2} ROW 0 REC {'count0': 2168, 'FInfoID_fk': 12, 'recordID_fk': 2} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 12326} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 12326} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 12326} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 12326} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 12326} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 12326} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 12326} ROW 2 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 114, 'FirstName_fk': 363, 'counter1': 12326} ROW 1 REC {'MiddleName_fk': 39, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 9} ROW 1 REC {'MiddleName_fk': 39, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 9} ROW 1 REC {'MiddleName_fk': 39, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 9} ROW 1 REC {'MiddleName_fk': 39, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 9} ROW 1 REC {'MiddleName_fk': 39, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 9} ROW 1 REC {'MiddleName_fk': 39, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 9} ROW 1 REC {'MiddleName_fk': 39, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 9} ROW 1 REC {'MiddleName_fk': 39, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 3, 'LastName_fk': 2, 'FirstName_fk': 38, 'counter1': 9} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 8} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 8} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 8} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 8} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 8} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 8} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 8} ROW 0 REC {'MiddleName_fk': 363, 'alias1': u'', 'suffix_fk': 5, 'ARecID_fk': 2, 'MaidenName_fk': 133, 'LastName_fk': 3, 'FirstName_fk': 363, 'counter1': 8} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 1 REC {'Date0': u'1991', 'StorageBox0': u'temp', 'Type0_fk': 1, 'location0': u'CD1\\PHOTOSCN\\PHOTOS\\SCANNER\\SCAN2', 'InfSource0': u'Daryl Warder', 'Descript0': u'1991 Ford, Quarles, Taylor , McGinnis family reunion', 'Name0': u'1991B.TIF', 'RecSource0': u'Marietta Q. Warder', 'RecID': 2, 'HideOnline': 0} ROW 0 REC {'count0': 2168, 'FInfoID_fk': 12, 'recordID_fk': 2} ROW 0 REC {'count0': 2168, 'FInfoID_fk': 12, 'recordID_fk': 2} ROW 0 REC {'count0': 2168, 'FInfoID_fk': 12, 'recordID_fk': 2} Traceback (most recent call last): File "C:\projects\dabo\dabo\ui\uiwx\dGrid.py", line 297, in IsEmptyCell return not bizobj.getFieldVal(field, row) File "C:\projects\dabo\dabo\biz\dBizobj.py", line 1285, in getFieldVal return cursor.getFieldVal(fld, row) File "C:\projects\dabo\dabo\db\dCursorMixin.py", line 782, in getFieldVal raise dException.FieldNotFoundException, "%s '%s' %s" % ( dabo.dException.FieldNotFoundException: Field 'phType' does not exist in the data set Ed Leafe <ed@...> wrote: That's still puzzling. I am unable to reproduce anything like this here. One thing that is curious: there is the line after the last 'REQUERY' output stating that the application terminated. Did you quit the app, or did the error cause the app to quit? If you're still willing to persevere, let's see what the cursor has in it. Modify dabo.db.dCursorMixin.py to insert the following debug line: 755 def getFieldVal(self, fld, row=None): 756 """ Return the value of the specified field in the current or specified row.""" 757 if self.RowCount <= 0: 758 raise dException.NoRecordsException, _("No records in the data set.") 759 if row is None: 760 row = self.RowNumber 761 762 rec = self._records[row] print "ROW", row, "REC", rec 763 if isinstance(fld, (tuple, list)): Then post the output here. -- Ed Leafe -- http://leafe.com -- http://dabodev.com [excessive quoting removed by server] _______________________________________________ Post Messages to: Dabo-users@... 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/412070.65512.qm@... |
|
|
Re: SQL Builder versus UserSQLOn Sep 2, 2007, at 10:40 AM, daryl warder wrote:
> ROW 0 REC {'count0': 2168, 'FInfoID_fk': 12, 'recordID_fk': 2} > ROW 0 REC {'count0': 2168, 'FInfoID_fk': 12, 'recordID_fk': 2} > ROW 0 REC {'count0': 2168, 'FInfoID_fk': 12, 'recordID_fk': 2} > Traceback (most recent call last): > File "C:\projects\dabo\dabo\ui\uiwx\dGrid.py", line 297, in > IsEmptyCell > return not bizobj.getFieldVal(field, row) > File "C:\projects\dabo\dabo\biz\dBizobj.py", line 1285, in > getFieldVal > return cursor.getFieldVal(fld, row) > File "C:\projects\dabo\dabo\db\dCursorMixin.py", line 782, in > getFieldVal > raise dException.FieldNotFoundException, "%s '%s' %s" % ( > dabo.dException.FieldNotFoundException: Field 'phType' does not > exist in the data set OK, this clearly shows that the UserSQL you entered is not getting run. I think it has something to do with the pass-through of the bizobj UserSQL to the cursor's UserSQL. Let me look into this a bit more to see if I can reproduce and find a fix. -- Ed Leafe -- http://leafe.com -- http://dabodev.com _______________________________________________ Post Messages to: Dabo-users@... 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/BBD50027-F2E2-4B97-9604-ACEFF117E298@... |
| < Prev | 1 - 2 | Next > |
| Free embeddable forum powered by Nabble | Forum Help |