[Zope] ZSQL to Python ???

Tony McDonald tony.mcdonald@ncl.ac.uk
Sun, 10 Oct 1999 11:12:16 +0100


At 11:37 am -0500 8/10/99, Joshi, Sunit wrote:
>	Could someone please tell me, what would be the best way to pass in
>the query-	result of a ZSQL method	to a python method.
>
>thanks
>Sunit

Here's what I do;

def get_file(self, filenumber, RESPONSE):
     '''
     nothing yet
     '''
     # get the directory
     dir = self.savedir
     # get data from database
     res_data = 
self.Actors.SQL_Upload.res_data_from_filenumber(filenumber=filenumber)
     if len(res_data) != 1:
         return "Error: no data matched filenumber:%s" %filenumber

     resdata = res_data[0]
     # get the mimetype
     if resdata['mimetype'] == 'not known':
         # get some mimetypes
         atype = mimetypes.guess_type(resdata['filename'])
         if atype[0] != None:
             resdata['mimetype'] = atype[0]

etc etc etc (I'm importing mimetypes and other stuff). It's not 
optimal, because it doesn't loop over the returned records, but it 
works! :)

The SQL method is in res_data_from_filenumber (which is in a folder 
called SQL_Upload in a folder called Actors). It's passed the 
filenumber. The ZSQL method looks like this;
select * from res_data where filenumber = <dtml-sqlvar filenumber 
type=int>  (parameter filenumber:int)

The database schema looks like;
CREATE TABLE res_data (
   filename varchar(255),
   filenumber int(11) DEFAULT '0' NOT NULL auto_increment,
   identifier varchar(20),
   identifier_type varchar(40),
   keywords varchar(255),
   extra_info varchar(255),
   user varchar(40),
   mimetype varchar(40),
   uploaded timestamp(14),
   filesize int(11),
   display varchar(4) DEFAULT 'y',
   PRIMARY KEY (filenumber)
);

Hope this helps,
tone.

------
Dr Tony McDonald,  FMCC, Networked Learning Environments Project 
http://nle.ncl.ac.uk/
The Medical School, Newcastle University Tel: +44 191 222 5888
Fingerprint: 3450 876D FA41 B926 D3DD  F8C3 F2D0 C3B9 8B38 18A2