SQL Builder versus UserSQL

View: New views
20 Messages — Rating Filter:   Alert me  
< Prev | 1 - 2 | Next >

SQL Builder versus UserSQL

by daryl warder :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


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 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 UserSQL

by Ed Leafe :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 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 UserSQL

by daryl warder :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ed 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.
>
With the modifications, the debugging output is:

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 UserSQL

by John-681 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 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 UserSQL

by Ed Leafe :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 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 UserSQL

by Ed Leafe :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 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 UserSQL

by daryl warder :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ed 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 UserSQL

by Ed Leafe :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 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 UserSQL

by daryl warder :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ed 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 UserSQL

by Ed Leafe :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 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 UserSQL

by daryl warder :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ed 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 UserSQL

by Ed Leafe :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 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 UserSQL

by daryl warder :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ed 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 UserSQL

by Ed Leafe :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 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 UserSQL

by daryl warder :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ed 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 UserSQL

by Ed Leafe :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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):
[snip]
>     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 UserSQL

by daryl warder :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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

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):
[snip]
>     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 UserSQL

by Ed Leafe :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 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 UserSQL

by daryl warder :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

the 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 UserSQL

by Ed Leafe :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 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 >