<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.6944.0">
<TITLE>Z-SQL crashes Zope -- mxODBC test works -- but Z-SQL test fails ... for data longer than ~140 characters ... (windows/interbase)</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<P><FONT SIZE=2 FACE="Arial">Hey,</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Using [eGenix mxODBC Database Connection at /db_bos] [Test]</FONT>
<BR><FONT SIZE=2 FACE="Arial"> select * from t20_user_experience</FONT>
<BR><FONT SIZE=2 FACE="Arial"> --> retrieves 2 rows -- 1 field has 200+ characters</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Z-SQL method using SAME db connection: /db_bos</FONT>
<BR><FONT SIZE=2 FACE="Arial"> select uid from t20_user_experience (ok)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> select * from t20_user_experience</FONT>
<BR><FONT SIZE=2 FACE="Arial"> --> python.exe - Application Error -- instruction at 0x... Ok to term, Cancel to Debug.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> Debug (Vis Studio): Runtime error -- abnormal program execution.</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Bottom Line:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> Z-SQL method crashes Zope when a field has 200+ characters in it!</FONT>
</P>
<P><FONT SIZE=2 FACE="Arial">Progress:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> This problem started when I was trying to update fields w/ ~200+ characters using Z-SQL methods.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> I bypassed Z-SQL updates completely by running updates like this:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> def run_sql (sql, dsn):</FONT>
<BR><FONT SIZE=2 FACE="Arial"> """ bypass z-sql ??? """</FONT>
<BR><FONT SIZE=2 FACE="Arial"> import mx.ODBC.Windows # Connect to the database (using iODBC)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> conn = mx.ODBC.Windows.DriverConnect('DSN=%s'%(dsn))</FONT>
<BR><FONT SIZE=2 FACE="Arial"> curs = conn.cursor() # Create a database cursor</FONT>
<BR><FONT SIZE=2 FACE="Arial"> curs.execute(sql) # Execute a statement on the cursor </FONT>
<BR><FONT SIZE=2 FACE="Arial"> conn.commit()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> curs.close()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> conn.close()</FONT>
<BR><FONT SIZE=2 FACE="Arial"> # return "run_sql output: dsn=%s sql=%s "%(dsn,sql)</FONT>
<BR><FONT SIZE=2 FACE="Arial"> return 1</FONT>
<BR><FONT SIZE=2 FACE="Arial"> Only to find the same data crashes zope upon reading the data into a resultset!</FONT>
</P>
<BR>
<P><FONT SIZE=2 FACE="Arial">I've been looking in: \python\Shared\DC\ZRDB at dbi_db.py and others to try and track down</FONT>
<BR><FONT SIZE=2 FACE="Arial">what code is running for Z-SQL.</FONT>
<BR><FONT SIZE=2 FACE="Arial"> in dby_db.py --> def query(self,query_string, max_rows=9999999):</FONT>
<BR><FONT SIZE=2 FACE="Arial"> return 'stop now!!' # This did NOT change anything!! what code is running???</FONT></P>
<P><FONT SIZE=2 FACE="Arial">Any help with:</FONT>
<BR><FONT SIZE=2 FACE="Arial"> finding the code that runs to execute Z-SQL</FONT>
<BR><FONT SIZE=2 FACE="Arial"> bypassing Z-SQL selects but still get the needed resultsets</FONT>
<BR> <FONT SIZE=2 FACE="Arial">General tips on what may be happening</FONT>
<BR>
<BR><FONT SIZE=2 FACE="Arial"> would be so greatly appreciated!! </FONT>
<BR><FONT SIZE=2 FACE="Arial"> </FONT>
<BR><FONT SIZE=2 FACE="Arial">-----------------------------------------------------------------------------</FONT>
<BR><FONT SIZE=2 FACE="Arial">Environment: Plone 1.0.5, Zope 2.6.1, W2K Server, Interbase 6</FONT>
<BR><FONT SIZE=2 FACE="Arial">-----------------------------------------------------------------------------</FONT>
</P>
<BR>
</BODY>
</HTML>