From: Stefan K. <st...@ev...> - 2001-12-03 18:38:01
|
There seems to be a bug in how MK stores objects references. Look at this code: store =3D MySQLObjectStore(host=3D'localhost') store.readModelFileNamed('Middle/test') foo =3D Foo() bar =3D Bar() store.addObject(foo) store.addObject(bar) foo.setBar(bar) store.saveChanges() foo =3D store.fetchObjectsOfClass(Foo)[0] bar =3D foo.bar() # This row gives the "WARNING" print "foo:", foo, "bar:", bar Here's the output: WARNING: Zero serial number. Obj ref =3D 200000000. foo: <Middle.Foo.Foo instance at 0x814aae4> bar: None The problem is that when foo is saved to the SQL database, bar has no serial number yet, and so foo's reference to bar gets "zero" in the database (Bar doesn't get a serial number until it gets saved to the database). Calling saveChanges() before the attribute is set works, because after saveChanges() every new object have there serial numbers. But calling saveChanges() several times is not an elegant solution; I would rather call saveChanges() just once and have all data manipulation in one single database transaction if this is possible. How can this be solved more elegant? Why not let the store keep a list of all zero-reference-objects saved to the database during commitInserts(), that is, when the new objects get inserted to the database. After that, update= all the objects in the list to the database, now with the correct= references, because now we know the serial numbers of all= objects. /Stefan ___________________________________________________________ Stefan Karlsson (st...@ev...) +46 (0)90 77 10 30 Everynet Consulting AB, www.everynet.se (0)73 986 84 20 |
From: John H. <jho...@to...> - 2001-12-03 21:57:56
|
I upgraded from 0.6b1 to 0.6 - It seems that my .psp files which are in the Examples dir, can no longer override the things like Page.py in the WebKit dir. Any help would be appreciated. John H |
From: Geoffrey T. <gta...@na...> - 2001-12-03 22:44:27
|
At 04:57 PM 12/3/01 -0500, John Holland wrote: >I upgraded from 0.6b1 to 0.6 - It seems that my .psp files which are in the >Examples dir, can no longer override the things like Page.py in the WebKit >dir. > >Any help would be appreciated. > >John H Can you give an example PSP file that used to work, but doesn't any more? -- - Geoff Talvola gtalvola@NameConnector.com |
From: John H. <jho...@to...> - 2001-12-04 00:38:25
|
Here's my crazy page - located in Webware/WebKit/Examples Webware seems not to like the extends="Page" operation as it says: File "/home/jholland/Webware/WebKit/Cache/PSP/_home_jholland_Webware_WebKit_Examples_draw_psp.py", line 6, in ? import Page ImportError: No module named Page ----------------------------------------------------------------- <%@ page imports = "sys,os,time"%> <%@ page method="writeHTML" %> <%@ page extends="Page"%> <% import sys sys.path.append('/home/jholland/usecases') import Image,ImageDraw,cPickle,string from Diagram import * from Actor import * from UseCase import * from Connection import * try: recordSelect=self.request().fields()["recordSelect"] except: res.write('bad recordselect') recordSelect=1 %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>Use Case:</TITLE> <STYLE type=text/css> BODY { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif} TD { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 10pt} P { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 10pt} TH { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 10pt} A { COLOR: blue; TEXT-DECORATION: none} </STYLE> <SCRIPT Language="Javascript"> function myloader(){ window.document.picture.src='/images/test.gif?rand=' + (new Date()).getTime() } </SCRIPT> </HEAD> <BODY onLoad="myloader()" bgcolor=#FFFFCC> <%= "recordSelect:" + str(recordSelect) %> Select a Diagram: <%= recordSelect %> <FORM action="getvars.psp" method="POST"> <SELECT NAME="recordSelect"> <% for i in range(10): res.write('<OPTION VALUE="' + str(i) + '"') if str(i) == recordSelect: res.write(" SELECTED ") res.write('>' + str(i)) %> </SELECT> <INPUT type="submit"> </FORM> <IMG NAME="picture" SRC="/images/test.gif"> <TABLE><TR><TD> <FORM method="POST" action="getvars.psp"> new Actor: <INPUT type="text" name="newActor"> <BR> <INPUT TYPE="Submit" name="Add"> <INPUT TYPE="hidden" name="recordSelect" value="<%= recordSelect %>"> </FORM> </TD><TD> </TD><TD> <FORM method="POST" action="getvars.psp"> new UseCase: <INPUT type="text" name="newUseCase"> <BR> <INPUT TYPE="Submit" name="Add"> <INPUT TYPE="hidden" name="recordSelect" value="<%= recordSelect %>"> </FORM></TD> <TD> <FORM method="GET" action = "getvars.psp"> Select Actor and Use Case for Connection <SELECT NAME="ActorSelect"> <% myDia=Diagram() yyy=myDia.loadfromDB(recordSelect) for i in range(len(myDia.Actors)): res.write('<OPTION VALUE="' + str(i) + '">' + myDia.Actors[i].title) %> </SELECT> </TD><TD> <SELECT NAME="UseCaseSelect"> <% for i in range(len(myDia.UseCases)): res.write('<OPTION VALUE="' + str(i) + '">' + myDia.UseCases[i].title) %> </SELECT> <INPUT TYPE="hidden" name="recordSelect" value="<%= recordSelect %>"> <INPUT Type="submit"> </FORM> </TD> </TR></TABLE> </BODY></HTML> ---------------------------------------------------------------- On Mon, Dec 03, 2001 at 05:45:58PM -0500, Geoffrey Talvola wrote: > At 04:57 PM 12/3/01 -0500, John Holland wrote: > >I upgraded from 0.6b1 to 0.6 - It seems that my .psp files which are in the > >Examples dir, can no longer override the things like Page.py in the WebKit > >dir. > > > >Any help would be appreciated. > > > >John H > > Can you give an example PSP file that used to work, but doesn't any more? > > > -- > > - Geoff Talvola > gtalvola@NameConnector.com |
From: Geoffrey T. <gta...@na...> - 2001-12-04 14:56:55
|
Try using: <%@ page extends="WebKit.Page"%> instead. Unlike 0.5, in 0.6 you always have to refer to WebKit as a package. At 07:02 PM 12/3/01 -0500, John Holland wrote: >Here's my crazy page - >located in Webware/WebKit/Examples > > >Webware seems not to like the extends="Page" operation as it says: > File >"/home/jholland/Webware/WebKit/Cache/PSP/_home_jholland_Webware_WebKit_Examples_draw_psp.py", >line 6, in ? >import Page >ImportError: No module named Page -- - Geoff Talvola gtalvola@NameConnector.com |
From: Chuck E. <Chu...@ya...> - 2001-12-05 01:33:45
|
On Monday 03 December 2001 10:38 am, Stefan Karlsson wrote: > There seems to be a bug in how MK stores objects references. > > Look at this code: [snip] Thanks for the report. I'll take a look at this including your suggestion for fixing it. -Chuck |