Thanks for your help!<div><br></div><div>Rémy<br><br><div class="gmail_quote">On Wed, Feb 18, 2009 at 3:53 AM, Charlie Clark <span dir="ltr">&lt;<a href="mailto:charlie@egenix.com">charlie@egenix.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Am 18.02.2009, 00:58 Uhr, schrieb &lt;<a href="mailto:JPenny@ykksnap-america.com">JPenny@ykksnap-america.com</a>&gt;:<br>

<div class="Ih2E3d"><br>
&gt; Using external methods will be more work for the zope writer.<br>
&gt; I don&#39;t know enough to comment seriously on security issues,<br>
&gt; but I think that using procedures, like using bind variables, will<br>
&gt; make &nbsp;SQL Injection much harder.<br>
<br>
</div>The mxODBC Zope DA makes the execute() method available to connection object instances which allows for parameter binding and the next release will make this available for PythonScripts. Rather than use ExternalMethods, however, I&#39;d suggest that you use Views instead which make tying everything together a lot easier.<br>

<br>
Regarding performance: the comparisons we did a few years ago suggested that parameter binding is around 40% faster for non-cached access from Zope as Zope does quite a lot of work to turn ZSQL methods into usable queries. If the caching works for you then you will have pretty good performance because Zope will only actually run the query for something that isn&#39;t in the cache. Stored procedures can offer a performance improvement if you plan to manipulate the data in any way, ie. if you want to get data out of several views and do something with it before you pass it to the browser. But most importantly - in the Zope world the RDBMS is unlikely ever to be your bottleneck.<br>

<br>
Charlie<br>
--<br>
Charlie Clark<br>
eGenix.com<br>
<br>
Professional Python Services directly from the Source<br>
&gt;&gt;&gt; Python/Zope Consulting and Support ... &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://www.egenix.com/" target="_blank">http://www.egenix.com/</a><br>
&gt;&gt;&gt; mxODBC.Zope.Database.Adapter ... &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://zope.egenix.com/" target="_blank">http://zope.egenix.com/</a><br>
&gt;&gt;&gt; mxODBC, mxDateTime, mxTextTools ... &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://python.egenix.com/" target="_blank">http://python.egenix.com/</a><br>
________________________________________________________________________<br>
<br>
::: Try our new mxODBC.Connect Python Database Interface for free ! ::::<br>
<br>
<br>
 &nbsp; eGenix.com Software, Skills and Services GmbH &nbsp;Pastor-Loeh-Str.48<br>
 &nbsp; &nbsp;D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Registered at Amtsgericht Duesseldorf: HRB 46611<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.egenix.com/company/contact/" target="_blank">http://www.egenix.com/company/contact/</a><br>
<br>
<br>
_______________________________________________<br>
Zope-DB mailing list<br>
<a href="mailto:Zope-DB@zope.org">Zope-DB@zope.org</a><br>
<a href="http://mail.zope.org/mailman/listinfo/zope-db" target="_blank">http://mail.zope.org/mailman/listinfo/zope-db</a><br>
</blockquote></div><br></div>