[Zope] ZSQLMethodFile?

Peter Sabaini sabaini@inode.at
Thu, 12 Jun 2003 08:57:50 +0200


This is a cryptographically signed message in MIME format.

--------------ms010808090009090909000604
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit



Oliver Bleutgen wrote:
> Peter Bengtsson wrote:
> 
>>
>> You're right.
>> So, if I don't wrap them like that but do define them as attributes, 
>> they don't have to reparse them?
>> Then I can do this:
>>
>> class Mysqlstuff(Aq...):
>>
>>     _login = SQL('null','dummy title', dbconnection,
>>                  'name:string pass:string', sqlfile.read())
>>     def login(self, name, pass):
>>         ...do other things such as debug...
>>         return _login(name=name, pass=pass)
>>
>> What do you think about that?
> 
> 
> I'd guess that this has trouble finding the db connection.

No it finds the dbconnection all right, as long as the class is 
Acquisition capable

Look into Shared.DC.ZRDB.DA.DA.__call__, around line 392


> I have had your problem, too, and after a lot of looking around, I found 
> this (maybe it's the right thing for you).
> http://www.zope.org/Members/jccooper/extzsql
> 
> Since I didn't have a lot of SQL-connections, I didn't do it that way.
> My product looks like this:
> 
> from Products.ZSQLMethods.SQL import SQLConnectionIDs
> 
> class my_product(...)
> 
>    def __init__(self,container):
>         wrapped_self = self.__of__(container)
>         wrapped_self._addSQLMethods()
> 
>    def _addSQLMethods(self):
>         self.manage_addFolder('SQLFolder')
>         SQLFolder = getattr(self,'SQLFolder')
>         addSQL = 
> SQLFolder.manage_addProduct['ZSQLMethods'].manage_addZSQLMethod
>         SQLConnectionID = SQLConnectionIDs(SQLFolder)[0][0]
>         insertSQL = """INSERT INTO bla VALUES (<dtml-sqlvar ...  ) """
>         inserSQLArguments = """name:string ..."""
>         addSQL('insertSQL',...)
>         ...
> 
>    def refresh(self):
>         """ refresh all instance SQL_methods"""
>         self.manage_delObjects('SQLFolder')
>         self._addSQLMethods()
> 
> 
> 
> This is surely not the most elegant way to do it, but it works. And it 
> helps in development to be able to edit/test the sql methods directly.
>
> cheers,
> oliver
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
> http://mail.zope.org/mailman/listinfo/zope-dev )
> 
> 

--------------ms010808090009090909000604
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJcjCC
AxcwggKAoAMCAQICAwlZhTANBgkqhkiG9w0BAQQFADCBkjELMAkGA1UEBhMCWkExFTATBgNV
BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMQ8wDQYDVQQKEwZUaGF3dGUx
HTAbBgNVBAsTFENlcnRpZmljYXRlIFNlcnZpY2VzMSgwJgYDVQQDEx9QZXJzb25hbCBGcmVl
bWFpbCBSU0EgMjAwMC44LjMwMB4XDTAzMDIyMTEzMTY0NloXDTA0MDIyMTEzMTY0NlowWzEQ
MA4GA1UEBBMHU2FiYWluaTEOMAwGA1UEKhMFUGV0ZXIxFjAUBgNVBAMTDVBldGVyIFNhYmFp
bmkxHzAdBgkqhkiG9w0BCQEWEHNhYmFpbmlAaW5vZGUuYXQwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQC1XhEfxugiGePyj2dxvgshFABfJw+Zcfar1FrGEdmCiMdEQO8kOpfZ
6NgSFe3nxMi4wsDR6LlnW1gEKYe0FVOf8T41naNlgAoz507xmm9X0QFo+lUiz00lZyiETHLS
pniVk2Ds9NnZeOwbkYLekXj1QXy2MChGfzavpXzI+Zl+XYojMtnEJEDYUiL/gwEDxMSE/KnA
yMx3R0vVeXCNKA3dM3il50QjNyE0XAVrCd1yayJ5Nto2wNb7HHS6lXMo75Mse9pblm2kkLUO
E+G3o1fuLJ6jWKAUcCwy7yfQTAGFT5Rt8f7/Qn3fBAFUAY8ScA7OXuHupkC0QqCxohLTuewD
AgMBAAGjLTArMBsGA1UdEQQUMBKBEHNhYmFpbmlAaW5vZGUuYXQwDAYDVR0TAQH/BAIwADAN
BgkqhkiG9w0BAQQFAAOBgQCOSrsA13Mj2nKj8xDp+gVRnz2wGPlXwgSUCDib6rk/gSL/go1C
Xq0X2+H1TSzg5cd6Iad39PzNxUQqBxD3k4X5tqgnikwcNOjaufFO6gxG42kEiEentqFCm8yw
8k6BFa+WFaGSRgAyJ/HXn0SvIEb5lf850aScgo/GsmDMPvPuBjCCAxcwggKAoAMCAQICAwlZ
hTANBgkqhkiG9w0BAQQFADCBkjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2Fw
ZTESMBAGA1UEBxMJQ2FwZSBUb3duMQ8wDQYDVQQKEwZUaGF3dGUxHTAbBgNVBAsTFENlcnRp
ZmljYXRlIFNlcnZpY2VzMSgwJgYDVQQDEx9QZXJzb25hbCBGcmVlbWFpbCBSU0EgMjAwMC44
LjMwMB4XDTAzMDIyMTEzMTY0NloXDTA0MDIyMTEzMTY0NlowWzEQMA4GA1UEBBMHU2FiYWlu
aTEOMAwGA1UEKhMFUGV0ZXIxFjAUBgNVBAMTDVBldGVyIFNhYmFpbmkxHzAdBgkqhkiG9w0B
CQEWEHNhYmFpbmlAaW5vZGUuYXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1
XhEfxugiGePyj2dxvgshFABfJw+Zcfar1FrGEdmCiMdEQO8kOpfZ6NgSFe3nxMi4wsDR6Lln
W1gEKYe0FVOf8T41naNlgAoz507xmm9X0QFo+lUiz00lZyiETHLSpniVk2Ds9NnZeOwbkYLe
kXj1QXy2MChGfzavpXzI+Zl+XYojMtnEJEDYUiL/gwEDxMSE/KnAyMx3R0vVeXCNKA3dM3il
50QjNyE0XAVrCd1yayJ5Nto2wNb7HHS6lXMo75Mse9pblm2kkLUOE+G3o1fuLJ6jWKAUcCwy
7yfQTAGFT5Rt8f7/Qn3fBAFUAY8ScA7OXuHupkC0QqCxohLTuewDAgMBAAGjLTArMBsGA1Ud
EQQUMBKBEHNhYmFpbmlAaW5vZGUuYXQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQQFAAOB
gQCOSrsA13Mj2nKj8xDp+gVRnz2wGPlXwgSUCDib6rk/gSL/go1CXq0X2+H1TSzg5cd6Iad3
9PzNxUQqBxD3k4X5tqgnikwcNOjaufFO6gxG42kEiEentqFCm8yw8k6BFa+WFaGSRgAyJ/HX
n0SvIEb5lf850aScgo/GsmDMPvPuBjCCAzgwggKhoAMCAQICEGZFcrfMdPXPY3ZFhNAukQEw
DQYJKoZIhvcNAQEEBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUx
EjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNV
BAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQ
ZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxA
dGhhd3RlLmNvbTAeFw0wMDA4MzAwMDAwMDBaFw0wNDA4MjcyMzU5NTlaMIGSMQswCQYDVQQG
EwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xDzANBgNV
BAoTBlRoYXd0ZTEdMBsGA1UECxMUQ2VydGlmaWNhdGUgU2VydmljZXMxKDAmBgNVBAMTH1Bl
cnNvbmFsIEZyZWVtYWlsIFJTQSAyMDAwLjguMzAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
AoGBAN4zMqZjxwklRT7SbngnZ4HF2ogZgpcO40QpimM1Km1wPPrcrvfudG8wvDOQf/k0caCj
bZjxw0+iZdsN+kvx1t1hpfmFzVWaNRqdknWoJ67Ycvm6AvbXsJHeHOmr4BgDqHxDQlBRh4M8
8Dm0m1SKE4f/s5udSWYALQmJ7JRr6aFpAgMBAAGjTjBMMCkGA1UdEQQiMCCkHjAcMRowGAYD
VQQDExFQcml2YXRlTGFiZWwxLTI5NzASBgNVHRMBAf8ECDAGAQH/AgEAMAsGA1UdDwQEAwIB
BjANBgkqhkiG9w0BAQQFAAOBgQAxsUtHXfkBceX1U2xdedY9mMAmE2KBIqcS+CKV6BtJtyd7
BDm6/ObyJOuR+r3sDSo491BVqGz3Da1MG7wD9LXrokefbKIMWI0xQgkRbLAaadErErJAXWr5
edDqLiXdiuT82w0fnQLzWtvKPPZE6iZph39Ins6ln+eE2MliYq0FxjGCA9UwggPRAgEBMIGa
MIGSMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBl
IFRvd24xDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUQ2VydGlmaWNhdGUgU2VydmljZXMx
KDAmBgNVBAMTH1BlcnNvbmFsIEZyZWVtYWlsIFJTQSAyMDAwLjguMzACAwlZhTAJBgUrDgMC
GgUAoIICDzAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wMzA2
MTIwNjU3NTBaMCMGCSqGSIb3DQEJBDEWBBQ7uQNXAA/avMhTlK7xtbaAXOGr9DBSBgkqhkiG
9w0BCQ8xRTBDMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAH
BgUrDgMCBzANBggqhkiG9w0DAgIBKDCBqwYJKwYBBAGCNxAEMYGdMIGaMIGSMQswCQYDVQQG
EwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xDzANBgNV
BAoTBlRoYXd0ZTEdMBsGA1UECxMUQ2VydGlmaWNhdGUgU2VydmljZXMxKDAmBgNVBAMTH1Bl
cnNvbmFsIEZyZWVtYWlsIFJTQSAyMDAwLjguMzACAwlZhTCBrQYLKoZIhvcNAQkQAgsxgZ2g
gZowgZIxCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNh
cGUgVG93bjEPMA0GA1UEChMGVGhhd3RlMR0wGwYDVQQLExRDZXJ0aWZpY2F0ZSBTZXJ2aWNl
czEoMCYGA1UEAxMfUGVyc29uYWwgRnJlZW1haWwgUlNBIDIwMDAuOC4zMAIDCVmFMA0GCSqG
SIb3DQEBAQUABIIBAGVQ1vcAOfAypLLE1n4JWW39xawn0/D7rEA1oQupPrJjQZE47EOfIg/B
LtN5iZGusagLYREvyYQV78NXm14rzfAZAx1rMc7AndtBqcEmYB95VfimzH0BWlKR0xJNMXGq
NnNYNKSUPP0uYZ2dYp0slBPoMjuFZOslT7lLkWy/OH8jPqIOGDnBztD39FyMNoK7KKHpHmVD
MnOkaKeMMPWOXYAPiA4wi4t3RQTTjmY3DKhRqj5rdhmVmHMs55XCcG7S6YIDNIIemY9c5/w5
sZRGNuFJDrjr+Ah+EQ1Scnlg/ASmf6cWnM8NhoWIDvbORzDR1JnBODY0sXo5wloS81MXkucA
AAAAAAA=
--------------ms010808090009090909000604--