Re: force re-retrieve from database

[prev] [thread] [next] [Date index for 2005/06/14]

From: Hartmaier Alexander
Subject: Re: force re-retrieve from database
Date: 14:48 on 14 Jun 2005
This is a multi-part message in MIME format.

------=_NextPart_000_0008_01C57100.DA942DD0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Ok I like the idea.
I looked in Class/DBI.pm for the update method to figure out how to =
delete
attributes from an object but didn't find what I wanted.
These lines seem to do what I want but I don't want to use internals =
that
might change in a new version:


$self->call_trigger('after_update', discard_columns =3D> =
\@changed_cols);

        # delete columns that changed (in case adding to DB modifies =
them
again)
        $self->_attribute_delete(@changed_cols);
        delete $self->{__Changed};

What does the first line do?
Do I have to take care of '$self->{__Changed}' to not break something =
else?

I THINK that '$self->_attribute_delete(('mycolname'));' would be enough =
but
I want an official ACK from the cdbi developers/maintainers...

-Alex

> -----Urspr=FCngliche Nachricht-----
> Von: Charles Bailey [mailto:bailey@xxxxxx.xxxxx.xxx]
> Gesendet: Dienstag, 14. Juni 2005 15:48
> An: Hartmaier Alexander; cdbi-talk@xxxxxx.xxxxx.xxx
> Betreff: Re: force re-retrieve from database
>=20
> --On June 14, 2005 10:44:33 AM +0200 Hartmaier Alexander
> <Alexander.Hartmaier@xxxxxxxxx.xx> wrote:
>=20
> >> If you're trying to update the object in hand, you should be able =
to
> >> just
> >> undef it and then retrieve it again.  If there are other copies in
> scope
> >> elsewhere, you may need to disable the object index or explicitly
> remove
> >> the object.
> >>
> >> Alternately, you could write an after_set_foo trigger that =
explicitly
> >> refresh the columns in question.  I'm a little surprised that this
> >> didn't
> >> happen automagically, since CDBI clears out columns after writing =
to
> the
> >> DB
> >> to account for this case.  Are the columns part of the object's
> primary
> >> key?
> >>
> >> --
> >> Regards,
> >> Charles Bailey  < bailey _at_ newman _dot_ upenn _dot_ edu >
> >> Newman Center at the University of Pennsylvania
> >
> > I don't update the datetime fields and therefore they don't get
> > automagically dropped and fetched from the db. They get updated by
> oracle
> > triggers.
> > I would be ok for me to tell cdbi to drop those fields too.
> > Maybe a '$obj->reretrieve(@fields)' method would be useful. If to
> > fieldnames are given the whole object is fetched again from the db =
or
> > only the fields given.
>=20
> OK, I understand; I hadn't been thinking broadly enough.  I'd =
recomment
> an
> after_update trigger (perhaps in your base class), that deletes these
> attributes from the object.  In essence, your class knows about some
> behind-the-scenes activity in your database that vanilla CDBI doesn't,
> so
> it should give CDBI a behind-the-scenes hint that'll allow the user to
> see
> the correct values without any extra work.
>=20
> --
> Regards,
> Charles Bailey  < bailey _at_ newman _dot_ upenn _dot_ edu >
> Newman Center at the University of Pennsylvania

------=_NextPart_000_0008_01C57100.DA942DD0
Content-Type: application/x-pkcs7-signature;
	name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="smime.p7s"

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIISkjCCApow
ggIDoAMCAQICASQwDQYJKoZIhvcNAQEEBQAwcTELMAkGA1UEBhMCREUxHDAaBgNVBAoTE0RldXRz
Y2hlIFRlbGVrb20gQUcxHzAdBgNVBAsTFlQtVGVsZVNlYyBUcnVzdCBDZW50ZXIxIzAhBgNVBAMT
GkRldXRzY2hlIFRlbGVrb20gUm9vdCBDQSAxMB4XDTk5MDcwOTExMzQwMFoXDTE5MDcwOTIzNTkw
MFowcTELMAkGA1UEBhMCREUxHDAaBgNVBAoTE0RldXRzY2hlIFRlbGVrb20gQUcxHzAdBgNVBAsT
FlQtVGVsZVNlYyBUcnVzdCBDZW50ZXIxIzAhBgNVBAMTGkRldXRzY2hlIFRlbGVrb20gUm9vdCBD
QSAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQ3ZsMoBdERA+vIUBzZ1bwPmloEbrZN/KB
rsMkrGmhzfymGFVW/4ufMsHb53gsOdtggUGl79PNgI0YPOJSDAuf92Se5aDwuGFi9L/go9pYK/0V
BGu9Op58nfI92OSVw+xOwvFlqwxL7EeCW+LhUHXY9mG0GFztM6BLHoP7T4S8eQIDAQABo0IwQDAd
BgNVHQ4EFgQUFDHif5zKEpX78XAg200oE3FCYcYwDwYDVR0TBAgwBgEB/wIBBTAOBgNVHQ8BAf8E
BAMCAQYwDQYJKoZIhvcNAQEEBQADgYEAnR0Q+pPIHWQgRV6cbwVto1J/p6iHZbNnmjaGeHIWFf/X
RXMoAYaInZHq3tYpCww+o5l0QAzM7BDgZPxwtro5EifyXgBQtQvWSt+pb/SzCSiA/NIexOxwRoVM
3kWwAZU4rBafRkruLcu9y2WxOuWmSwRLDjP/HHvIhIRH4VpkRkowggTdMIIERqADAgECAgIAnTAN
BgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBB
RzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVs
ZWtvbSBSb290IENBIDEwHhcNMDQwNjI0MDUzODAwWhcNMTAwNjI0MjM1OTAwWjB6MQswCQYDVQQG
EwJERTElMCMGA1UEChMcVC1TeXN0ZW1zIEludGVybmF0aW9uYWwgR21iSDElMCMGA1UECxMcVC1T
eXN0ZW1zIEludGVybmF0aW9uYWwgR21iSDEdMBsGA1UEAxMUVC1TeXN0ZW1zIENvbXBhbnkgQ0Ew
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+ooSiyo46KcYIAAJzfHHnXVHzuFUtMTiG
n5+TIKzga38S/sRAj6vPSn1AcoUEW1LZ+CFvdNJgmUouVyZ1siE1DJNH1N1URl5CunNTNMvAFDxj
Cc1GQ6QXpxi7W4cTkF3Cj95eUb8Ux4efTVpeaoV2/Zazw3hVLGRnkcBTVdkED6fjn/UDmDc8i9Mc
Sg4Yr+n4DkZ4mCz3jVZZeIScnI2YzDeNKDRajnygJlve5hY23mqaBLscDzFFntGe6yswp7D6pSDa
108/8a8HySUKGZ1weC3BDgaMLjPz4pcXjtkvleyxWH5BIQo1tlbtXwigqJN+zhxdbsi8b5IY6ko5
sp+jAgMBAAGjggH1MIIB8TB1BgNVHSAEbjBsMGoGCSsGAQQBvUcNEDBdMFsGCCsGAQUFBwIBFk9o
dHRwOi8va3J5cFRTSS50ZWxlc2VjLmRlL2NnaS1iaW4vY2FzZXJ2aWNlL2tyeXBUU0kvRG93bmxv
YWRQREYva3J5cFRTSS1DUFMucGRmMIIBEgYDVR0fBIIBCTCCAQUwXqBcoFqGWGh0dHA6Ly9rcnlw
VFNJLnRlbGVzZWMuZGUvY2dpLWJpbi9jYXNlcnZpY2Uva3J5cFRTSS9hZl9Eb3dubG9hZEFSTC5j
cmw/LWNybF9mb3JtYXQ9WF81MDkwgaKggZ+ggZyGgZlsZGFwOi8vbGRhcC1rcnlwVFNJLnRlbGVz
ZWMuZGUvY249RGV1dHNjaGUlMjBUZWxla29tJTIwUm9vdCUyMENBJTIwMSxvdT1ULVRlbGVTZWMl
MjBUcnVzdCUyMENlbnRlcixvPURldXRzY2hlJTIwVGVsZWtvbSUyMEFHLGM9REU/QXV0aG9yaXR5
UmV2b2NhdGlvbkxpc3QwHQYDVR0OBBYEFGKQKoiCJcPJVuPjvloUpjQ+jwYvMB8GA1UdIwQYMBaA
FBQx4n+cyhKV+/FwINtNKBNxQmHGMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgED
MA0GCSqGSIb3DQEBBQUAA4GBAK2TIG0uoRyvzq/3CUalvZOFSnUz6oDrX5fa6r1Fdh8ODa0zOCzr
qbLQRLZVErwH9qxuC6qxby57Ek1qpwI8TuuhFnMA9ISrkEUJjgxAIe6at2NdQ6bowZG9McwGmcsU
yiCwyipt70V3VHFW2cVHmMsEitGx5PsgfhUiGi+Ufst1MIIFhTCCBG2gAwIBAgICRxYwDQYJKoZI
hvcNAQEFBQAwejELMAkGA1UEBhMCREUxJTAjBgNVBAoTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFs
IEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgxHTAbBgNVBAMTFFQt
U3lzdGVtcyBDb21wYW55IENBMB4XDTA1MDQxMTA5MjgyNFoXDTA4MDQxMTIzNTkwMFowgdgxCzAJ
BgNVBAYTAkFUMSUwIwYDVQQKExxULVN5c3RlbXMgSW50ZXJuYXRpb25hbCBHbWJIMRAwDgYDVQQL
EwdhdXN0cmlhMSEwHwYDVQQLExhDRUUtQVQtVklFLUVNLTAxLmF1c3RyaWExGjAYBgNVBAsTEVQt
U3lzdGVtcyBBdXN0cmlhMR8wHQYDVQQDExZIYXJ0bWFpZXIgQWxleGFuZGVyIDAxMTAwLgYJKoZI
hvcNAQkBFiFBbGV4YW5kZXIuSGFydG1haWVyQHQtc3lzdGVtcy5jb20wgZ8wDQYJKoZIhvcNAQEB
BQADgY0AMIGJAoGBANo+1hFHTw2SivsA2RxpYFAwSULIFXhagYoguyrIefoxYL/SYfIUoKFejDMg
bX/J4ZSkfdta2rH4TapDDpnFJhkRTsJ4yi8i03PtfsqJmtzqFedRsQta0t0YWBMskNhlXveT1Wqh
jjDJsV8c+dxf1KZltYnPMvpJU46Gu0kKTa1tAgMBAAGjggI4MIICNDAfBgNVHSMEGDAWgBRikCqI
giXDyVbj475aFKY0Po8GLzAOBgNVHQ8BAf8EBAMCBSAwHQYDVR0OBBYEFDWHeGOuGCPJFrZOxI+l
io66rv6wMHUGA1UdIARuMGwwagYJKwYBBAG9Rw0QMF0wWwYIKwYBBQUHAgEWT2h0dHA6Ly9rcnlw
dHNpLnRlbGVzZWMuZGUvY2dpLWJpbi9jYXNlcnZpY2Uva3J5cFRTSS9Eb3dubG9hZFBERi9rcnlw
VFNJLUNQUy5wZGYwTgYDVR0RBEcwRYEgQWxleGFuZGVyLkhhcnRtYWllckB0LXN5c3RlbXMuYXSB
IUFsZXhhbmRlci5IYXJ0bWFpZXJAdC1zeXN0ZW1zLmNvbTCCARkGA1UdHwSCARAwggEMMF6gXKBa
hlhodHRwOi8va3J5cHRzaS50ZWxlc2VjLmRlL2NnaS1iaW4vY2FzZXJ2aWNlL2tyeXBUU0kvYWZf
RG93bmxvYWRDUkwuY3JsPy1jcmxfZm9ybWF0PVhfNTA5MIGpoIGmoIGjhoGgbGRhcDovL2xkYXAt
a3J5cFRTSS50ZWxlc2VjLmRlL2NuPVQtU3lzdGVtcyUyMENvbXBhbnklMjBDQSxvdT1ULVN5c3Rl
bXMlMjBJbnRlcm5hdGlvbmFsJTIwR21iSCxvPVQtU3lzdGVtcyUyMEludGVybmF0aW9uYWwlMjBH
bWJILGM9REU/Q2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDANBgkqhkiG9w0BAQUFAAOCAQEAFZCu
YmsdsJQWyEK8286QMCcYytKL6eKzZnm7isDcYmWKr3F1MqV/CsyfQQ0pGC0ACdjw/uWGgtrLsN9X
hYDiO4maoicRgMO7cPR4b5YGHfwC7VYxn0DLCBqx34oBRB90LCGK3Es4cZ5Wo+c5mLAcvJ+IzFnB
BgwDWU3+tXcZe5qzLUb2KSNT4WM4ysaVAwBYtGHgU+5wbPrOD0yYFoyi3rgEU2K63SIymvewOD14
wGX7KaWnJLBrSlbkPYoQxDfKPOxb3sTmVjK5eql8zDoiFc7hETorlQprijNVDmsYPYnFVECUXASQ
HnlQZ1IlT0iXQiZdNmeGUKkOQHl/BeqXxTCCBYYwggRuoAMCAQICAkcVMA0GCSqGSIb3DQEBBQUA
MHoxCzAJBgNVBAYTAkRFMSUwIwYDVQQKExxULVN5c3RlbXMgSW50ZXJuYXRpb25hbCBHbWJIMSUw
IwYDVQQLExxULVN5c3RlbXMgSW50ZXJuYXRpb25hbCBHbWJIMR0wGwYDVQQDExRULVN5c3RlbXMg
Q29tcGFueSBDQTAeFw0wNTA0MTEwOTI4MTJaFw0wODA0MTEyMzU5MDBaMIHYMQswCQYDVQQGEwJB
VDElMCMGA1UEChMcVC1TeXN0ZW1zIEludGVybmF0aW9uYWwgR21iSDEQMA4GA1UECxMHYXVzdHJp
YTEhMB8GA1UECxMYQ0VFLUFULVZJRS1FTS0wMS5hdXN0cmlhMRowGAYDVQQLExFULVN5c3RlbXMg
QXVzdHJpYTEfMB0GA1UEAxMWSGFydG1haWVyIEFsZXhhbmRlciAwMTEwMC4GCSqGSIb3DQEJARYh
QWxleGFuZGVyLkhhcnRtYWllckB0LXN5c3RlbXMuY29tMIGgMA0GCSqGSIb3DQEBAQUAA4GOADCB
igKBgQCBzuPPhyIz16V/u41Cg8eOEyzCnjTQ2/+XUX76CzSLryHuJHGhjtea14ycDshjC41ZCkLH
avKr909LrQgaPS1BeF3tja9XwJ7u+I8bIFiS+J0AKP2oyp76SpuBzS0ubrOckZgzSiTQHscRnkvb
2SYfyI2d3gD85xo8DQqGSigrVQIEQAAAgaOCAjgwggI0MB8GA1UdIwQYMBaAFGKQKoiCJcPJVuPj
vloUpjQ+jwYvMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUsiPXp43D6udRc2hzEc18bO7I4pYw
dQYDVR0gBG4wbDBqBgkrBgEEAb1HDRAwXTBbBggrBgEFBQcCARZPaHR0cDovL2tyeXB0c2kudGVs
ZXNlYy5kZS9jZ2ktYmluL2Nhc2VydmljZS9rcnlwVFNJL0Rvd25sb2FkUERGL2tyeXBUU0ktQ1BT
LnBkZjBOBgNVHREERzBFgSBBbGV4YW5kZXIuSGFydG1haWVyQHQtc3lzdGVtcy5hdIEhQWxleGFu
ZGVyLkhhcnRtYWllckB0LXN5c3RlbXMuY29tMIIBGQYDVR0fBIIBEDCCAQwwXqBcoFqGWGh0dHA6
Ly9rcnlwdHNpLnRlbGVzZWMuZGUvY2dpLWJpbi9jYXNlcnZpY2Uva3J5cFRTSS9hZl9Eb3dubG9h
ZENSTC5jcmw/LWNybF9mb3JtYXQ9WF81MDkwgamggaaggaOGgaBsZGFwOi8vbGRhcC1rcnlwVFNJ
LnRlbGVzZWMuZGUvY249VC1TeXN0ZW1zJTIwQ29tcGFueSUyMENBLG91PVQtU3lzdGVtcyUyMElu
dGVybmF0aW9uYWwlMjBHbWJILG89VC1TeXN0ZW1zJTIwSW50ZXJuYXRpb25hbCUyMEdtYkgsYz1E
RT9DZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0MA0GCSqGSIb3DQEBBQUAA4IBAQAouXnAG7+LMP/3
urannW0DO4j1n6Hvqt8G+MkxisUkSr41aLK10uen0S/+iyLIhhgUC1mag5vVS/Gkzevsi9K3qcSf
wIIBWwdrJKJ+WifbcNuS2YexMKLuBtVe/l6ydHMGtcZ3SQykxAoWYEmhPSpNxgfMUYATDJOZs7bH
l7WNy/43ZgKbsl9BhCNVCro0dC9berFgc1gAZ2O42D3M7TQB3Hqx68iLoYpvmPgMWiQJ6H6C0h/3
fzamxuB+L1DfMSnnOmJvdftpJjZmnORigvfCuMLxkjPbDESLEJtmw3oROemRMFR1oAIYf9qrexiT
a6TVsQzMVnsuQgoZ+dqaFCLbMYIC2DCCAtQCAQEwgYAwejELMAkGA1UEBhMCREUxJTAjBgNVBAoT
HFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVtcyBJbnRlcm5h
dGlvbmFsIEdtYkgxHTAbBgNVBAMTFFQtU3lzdGVtcyBDb21wYW55IENBAgJHFTAJBgUrDgMCGgUA
oIIBrTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wNTA2MTQxNDQ4
MTNaMCMGCSqGSIb3DQEJBDEWBBT6MlJEw1xbc+9S6Isks8WEyomPjzAkBgkqhkiG9w0BCQ8xFzAV
MAoGCCqGSIb3DQMHMAcGBSsOAwIaMIGRBgkrBgEEAYI3EAQxgYMwgYAwejELMAkGA1UEBhMCREUx
JTAjBgNVBAoTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVt
cyBJbnRlcm5hdGlvbmFsIEdtYkgxHTAbBgNVBAMTFFQtU3lzdGVtcyBDb21wYW55IENBAgJHFjCB
kwYLKoZIhvcNAQkQAgsxgYOggYAwejELMAkGA1UEBhMCREUxJTAjBgNVBAoTHFQtU3lzdGVtcyBJ
bnRlcm5hdGlvbmFsIEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgx
HTAbBgNVBAMTFFQtU3lzdGVtcyBDb21wYW55IENBAgJHFjANBgkqhkiG9w0BAQEFAASBgFt5ULRF
1JPoVVmD/f17aLb+oRmX8qntpFcM84F1kXjyVFMVnAnd6Iqclpn4fxl3qCxoz1eu0i0ms1xm+bBA
xbxryP2Wk20G5kgJC6+SoJcL8qE7sTR3meJ7OBgGXslZa5WpzFeMXGAAKpvkGtesOsWO/jcGTyb4
nMZJv97NMuFoAAAAAAAA

------=_NextPart_000_0008_01C57100.DA942DD0--

force re-retrieve from database
Hartmaier Alexander 14:35 on 13 Jun 2005

Re: force re-retrieve from database
Charles Bailey 18:55 on 13 Jun 2005

Re: force re-retrieve from database
Hartmaier Alexander 08:44 on 14 Jun 2005

Re: force re-retrieve from database
Charles Bailey 13:47 on 14 Jun 2005

Re: force re-retrieve from database
Hartmaier Alexander 14:48 on 14 Jun 2005

Re: force re-retrieve from database
Charles Bailey 15:03 on 14 Jun 2005

RE: force re-retrieve from database
Zhuang Li 17:28 on 14 Jun 2005

Re: force re-retrieve from database
Hartmaier Alexander 08:44 on 15 Jun 2005

Generated at 16:37 on 28 Jul 2005 by mariachi v0.52