Re: [Zope-DB] Zope/Plone, interbase, and blob fields

2005-08-11 Thread Ashley Lloyd
Thanks again for your post, and my sincere apologies for the delay in
writing (I've been off and then had to sort out some other stuff which
required all of my limited attention!).

Thanks also to the off-list help from David Rushby.

His advice which sort of worked was basically:
Using a database interface that allows you to take
advantage of prepared statements and bound parameters,
as in:
cur.execute(update table_1 set blob_field_1 = ?
where other_field_1 = ?, ('blob string value', 'other
field value'))

This was a slightly different python syntax to that which I was using, and
seems to work - but only when using it straight from Python. I can run this
absolutely fine (even using gvib!) from the python instance in the Plone
installation (Plone\Python\python.exe). There are absolutely no errors, and
it updates the field.
However, copying the function almost exactly (just inserting a self
parameter before the two notes/key parameters .. or even trying it without)
does not work. When I call this function, Plone freezes - no errors,
nothing, just everything freezes up (there's nothing I can see in the log
files apart from it calling the page).
I don't know if this is of any significance, but when this happens, for any
calls to a page served by Plone, the browser tries to open the page, but
nothing happens, no page not found errors, etc, it just keeps trying. Once
Plone has been stopped, then the page not found appears. I doubt its of any
use, but you can't have too much info!!

Anyway, the function in the external method is:
def updateEntityNotes(self,notes,entKey):
  try:
dbCon = gvib.connect(theDB, userName, userPass)
cur=dbCon.cursor()
cur.execute(UPDATE ENTITY SET EN_NOTES=? WHERE
EN_KEY=?,(notes,int(entKey)))
dbCon.commit()
return 'ok'
  except:
return 'bError:/b Sorry, your request could not be processed
correctly.br '+str(traceback.format_exception(sys.exc_type, sys.exc_value,
sys.exc_traceback))

And it is called with a dtml-let call (so the result can be used):
 dtml-let err=updateEntityNotes(theNotes,theKey)
(theNotes and theKey have already been subject to calls to be str() and
int() respectively).
I just tested the interface to this from Plone, removing any database access
at all, and just returning a random statement, and it works fine. So Plone
is accessing the external method, there are no imported functions used that
aren't used in other external methods, so it just seems to be executing the
cur.execute() statement. Without the dbCon.commit(), Plone still crashes.

Can anyone tell me why the actual python instance that came with Plone can
do this fine, but Plone itself can't?

Kind regards, and thanks once again to everyone who has helped me.

Ashley


- Original Message - 
From: bobb [EMAIL PROTECTED]
To: Ashley Lloyd [EMAIL PROTECTED]; zope-db@zope.org
Sent: Friday, August 05, 2005 6:39 PM
Subject: Re: [Zope-DB] Zope/Plone, interbase, and blob fields



 - Original Message -
 From: Ashley Lloyd [EMAIL PROTECTED]
 To: zope-db@zope.org
 Sent: Friday, August 05, 2005 6:55 AM
 Subject: [Zope-DB] Zope/Plone, interbase, and blob fields


  Apologies if this appears twice - I initially sent from the wrong
 address!!
 
  Hi, I've been having trouble updating BLOB (subtype text) fields from
 Zope.
 
  I've a table with several fields, one of which is a blob. Creating a
 record
  works fine, but when I attempt to update a record, I get an error.
 Initially
  I used gvib, but recently (thanks to a lot of help from another list) I
  changed to kinterbasdbDA, and I still get errors.
  The errors I get are as follows:
  Error Type ProgrammingError
  Error Value (-413, 'execute.isc_dsql_execute: conversion error from
string
  BLOB. ')
  Error Trace Traceback (most recent call last):
  File C:\Program
  Files\ESOPPlone\Zope\lib\python\DocumentTemplate\DT_Try.py, line 149,
in
  render_try_except
  result = render_blocks(self.section, md)
  File C:\Program
  Files\ESOPPlone\Zope\lib\python\DocumentTemplate\DT_Util.py, line 201,
in
  eval
  return eval(code, d)
  File , line 2, in f
  File C:\Program Files\ESOPPlone\Zope\lib\python\Shared\DC\ZRDB\DA.py,
 line
  428, in __call__
  else: result=DB__.query(query, self.max_rows_)
  File C:\Program
  Files\ESOPPlone\Zope\lib\python\Products\kinterbasdbDA\db.py, line 198,
 in
  query
  self.cursor.execute(src)
  File C:\Program
 

Files\ESOPPlone\Zope\lib\python\Products\kinterbasdbDA\kinterbasdb\__init__.
  py, line 585, in execute
  res = _kinterbasdb.execute(self._C_cursor, sql, params)
  ProgrammingError: (-413, 'execute.isc_dsql_execute: conversion error
from
  string BLOB. ')
  I also get a similar error (same value  type) when just testing the SQL
  method in the ZMI, even when the SQL that the method generates is just:
  UPDATE ENTITY
  SET EN_NOTES = 'Hello world'
  WHERE EN_KEY = 12
  The metatata of the table has the notes field definition as:
  EN_NOTES BLOB SUB_TYPE 1 SEGMENT SIZE 80,

 Maybe you

Re: [Zope] RE: Blobs in Interbase

2005-08-03 Thread Ashley Lloyd



Bob, you're a star!

I unpacked it, restarted Zope, and there it 
was!

Marvellous, I've now got a kinterbase installed 
that works.

Thats the good news.

The bad news is I still can't update the blob field 
- I still get errors. I think, unless anyone here has any more ideas, I'll have 
to go and bother people in another mailing list.

I've tried absolutely everything I can think of - 
sqlvar tags of type string and nb, trying cast(... as blob) in the sql (doesn't 
seem to work), I've even just tried setting it to 'Hello world', without using 
any dtml variables at all, and it won't accept it. 
From what I've read elsewhere, there are tools in 
some software (mostly for Delphi I believe), that will allow updates of text 
blob fields, so I was hoping that kinterbasdb had something in it as well, but 
if it does, it isn't working on mine!!

The interbase version is 6.0-6.1, if that jogs any 
memories for anyone.

Thanks once again to everyone who has tried to help 
me.

Kind regards

Ashley
Ashley Lloyd wrote: 
  Hi Bob,

If you don't mind doing that, I'd really appreciate it.
Nothing I seem to be trying to install at the moment seems to be working.

As with Phil, mine is from a Plone install, but I have got other versions of
Python elsewhere, (I think there's even an old Zope standalone instance
still lurking somewhere, altho I don't think it can run) just to confuse
matters.
Anyway, my Zope is even older - 2.6.1, so hopefully it'll be compatible.

Thanks very much again for your help.

Ashley

- Original Message - 
From: "Bob Corriher" [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: "Ashley Lloyd" [EMAIL PROTECTED]; zope@zope.org
Sent: Tuesday, August 02, 2005 4:01 PM
Subject: Re: [Zope] RE: Blobs in Interbase


  
Hi Phil  Ashley,

I also have kinterbasedbDA working on Windows. It is with an older
version of Zope (2.6.4). The DA version is 1.1.1.1. The kinterbasdb
version is 3.0.1. It uses a dll called _kinterbasedb.dll, instead of a
pyd. I don't remember the exact installation process anymore, but I
think I just grabbed it from another working site. If you like, I could
zip it up and send it to you.

The site uses blobs (all sub_type text) in many places, so maybe
older/other versions don't support this as well.

Bob Corriher
CTO
P-Wave Inc.

Philip Kilner wrote:


  Hi Ashley,

Can't help you on the blob front...

Ashley Lloyd wrote:


  
I've had trouble installing kinterbase (it complains about LDAP..?), so
at the moment I use gvib. I've pencilled in quite a bit of time today to
try to get kinterbase installed.
Unfortunately I'm on Windows, which I'm guessing contributes to the
installation problems!



...but I can confirm that KIinterbaseDA works nicely on Windows - I've
been happily using it for some time, and haven't had any issues at all
(BTW, I don't use LDAP and KInterbaseDA has never mentioned it!). The
only problem I had at install time was getting my head around the
distinction between the Python part and the Zope DA part.

HTH




  
-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.9.8/61 - Release Date: 8/1/2005



  
  

  No virus found in this outgoing message.Checked by AVG 
  Anti-Virus.Version: 7.0.338 / Virus Database: 267.9.8/61 - Release Date: 
  8/1/2005
___
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 )


[Zope] RE: Blobs in Interbase

2005-08-02 Thread Ashley Lloyd

Hi Bob,

Thanks again for your reply.

I've tried this approach before, so I'm thinking perhaps its my db adaptor. 
Which one are you using, if you don't mind me asking?


I've had trouble installing kinterbase (it complains about LDAP..?), so at 
the moment I use gvib. I've pencilled in quite a bit of time today to try to 
get kinterbase installed.
Unfortunately I'm on Windows, which I'm guessing contributes to the 
installation problems!


Thanks once again for your help and your time. If this doesn't work, I'll 
look for the Zope-DB list, and basically go and bother someone else.


Cheers

Ashley


From: Bob Corriher [EMAIL PROTECTED]
To: CC: [EMAIL PROTECTED]
Subject: Blobs in Interbase
Date: Mon, 01 Aug 2005 12:23:55 -0400

Hi Ashely,

I use Interbase (and Firebird) in Zope regularly and I just use the regular 
ZSQL Method syntax for blob fields:


dtml-sqlvar name=blob_fld type=nb

to update the field.If the field may be left null, I usually use something 
like this in the ZSQL Method:


dtml-if blob_fld
dtml-sqlvar name=blob_fld type=nb
dtml-else
null
/dtml-if

Apply commas at the end (or beginning) of the dtml-sqlvar and null  if 
necessary.


This should work for Interbase from version 4.x thru Interbase 6.x and for 
all versions of Firebird.


If you need further help, just email me (and the list). Also, there is a 
Zope-DB list for discussing Zope and RDBMS issues and the real gurus hang 
out there.


HTH

Bob Corriher
CTO
P-Wave Inc.

Ashley wrote:

Hi bobb, thanks for your reply.

If I found the right post (reading an image from blob in mysql and
displaying it), then thanks very much but I don't think it'll apply too 
much

to my situation. I can retrieve the contents of the blob field fine, its
updating it that causes the problems.

Thanks again, though.

I posted directly out of Outlook Express, by the way, just hitting New
Post.

Kind regards

Ashley



bobb [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]


I posted some stuff I was doing some time ago w/ mysql / blobs and zope




some


time ago so that my grandchildren could google for it :)...

if you goggle for zope mysql blob bobb
you'll get it.  It's not interbase.
hth

bobb

Also, your post came through as a newsgroup posting, which means I had to
cut / paste / finagle the whole thing to reply... It's the first time 
I've

ever seen that (I use m$ outlook express) How are you posting to here?
(curious, that's all)

Ashley [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]



 I'm not sure if this is the right place for this, if not, my 
apologies.


 I've got a Clients table in an interbase db with various fields, one 
of

 which is a BLOB field (subtype text), used to maintain some notes.

 When inserting a Client into the table, this field populates fine.

 However, when attempting to update the client, for some reason, it




won't.


It




 just will not allow me to do an update with the notes field in the
 statement. I've googled around, and found lots of bits helping with



Delphi,




 and lots of statements that BLOB fields in Interbase are tricky to




update,


 but nothing that helps.

 Has anyone out there found a way around this?

 I'm using currently using gvib as my database adaptor, as kinterbase




does


 not seem to want to install at all (seemingly problems with ldap ..).

 My Zope instance is installed from a Plone installer.
   Zope Version  (Zope 2.6.1 (binary release, python 2.1, 
win32-x86),

 python 2.1.3, win32)
   Python Version  2.1.3 (#35, Apr 8 2002, 17:47:50) [MSC 32 bit



(Intel)]




   System Platform  win32


 Thanks in advance
 Ashley



 ___
 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 )




___
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 )










--




--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.9.7/60 - Release Date: 7/28/2005




___
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 )


Re: [Zope] RE: Blobs in Interbase

2005-08-02 Thread Ashley Lloyd
Hi Phil,

Thanks for your email.

The LDAP error, as it turns out, was from zkinterbasdb or something like
that - something I probably picked up thinking it was kinterbase.

Forgive my ignorance, but what was your procedure for installing kinterbase?
I've tried just installing kinterbasDA, which required kinterbasdb. So I've
tried installing kinterbasdb (from an executable, rather than the more
familiar simple compressed file), but I keep getting an ImportError: DLL
load failed when looking at the product in Control_Panel/Products.

The error refers to a line import _kinterbasdb as _k. I've assumed that
its referring to import _kinterbasdb.pyd, rather than a dll, as thats all
that I can find. I've tried copying it into several places, but I'm assuming
that its compiled by the exe at install time, and is specific to the folder
its placed in. Or I could be completely wrong!

Any hints as to your procedure would be appreciated, as this is getting
frustrating (probably meaning I'm missing stupid things).

Thanks

Ashley

- Original Message - 
From: Philip Kilner [EMAIL PROTECTED]
To: Ashley Lloyd [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]; zope@zope.org
Sent: Tuesday, August 02, 2005 11:14 AM
Subject: Re: [Zope] RE: Blobs in Interbase


 Hi Ashley,

 Can't help you on the blob front...

 Ashley Lloyd wrote:
  I've had trouble installing kinterbase (it complains about LDAP..?), so
  at the moment I use gvib. I've pencilled in quite a bit of time today to
  try to get kinterbase installed.
  Unfortunately I'm on Windows, which I'm guessing contributes to the
  installation problems!
 

 ...but I can confirm that KIinterbaseDA works nicely on Windows - I've
 been happily using it for some time, and haven't had any issues at all
 (BTW, I don't use LDAP and KInterbaseDA has never mentioned it!). The
 only problem I had at install time was getting my head around the
 distinction between the Python part and the Zope DA part.

 HTH


 -- 

 Regards,

 PhilK

 Email: [EMAIL PROTECTED]
 PGP Public key: http://www.xfr.co.uk
 Voicemail  Facsimile: 07092 070518

 You'll find that one part's sweet and one part's tart:
 say where the sweetness and the sourness start.
 - Tony Harrison

___
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 )


Re: [Zope] RE: Blobs in Interbase

2005-08-02 Thread Ashley Lloyd
Hi Bob,

If you don't mind doing that, I'd really appreciate it.
Nothing I seem to be trying to install at the moment seems to be working.

As with Phil, mine is from a Plone install, but I have got other versions of
Python elsewhere, (I think there's even an old Zope standalone instance
still lurking somewhere, altho I don't think it can run) just to confuse
matters.
Anyway, my Zope is even older - 2.6.1, so hopefully it'll be compatible.

Thanks very much again for your help.

Ashley

- Original Message - 
From: Bob Corriher [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: Ashley Lloyd [EMAIL PROTECTED]; zope@zope.org
Sent: Tuesday, August 02, 2005 4:01 PM
Subject: Re: [Zope] RE: Blobs in Interbase


 Hi Phil  Ashley,

 I also have kinterbasedbDA working on Windows. It is with an older
 version of Zope (2.6.4). The DA version is 1.1.1.1. The kinterbasdb
 version is 3.0.1. It uses a dll called _kinterbasedb.dll, instead of a
 .pyd. I don't remember the exact installation process anymore, but I
 think I just grabbed it from another working site. If you like, I could
 zip it up and send it to you.

 The site uses blobs (all sub_type text) in many places, so maybe
 older/other versions don't support this as well.

 Bob Corriher
 CTO
 P-Wave Inc.

 Philip Kilner wrote:

 Hi Ashley,
 
 Can't help you on the blob front...
 
 Ashley Lloyd wrote:
 
 
 I've had trouble installing kinterbase (it complains about LDAP..?), so
 at the moment I use gvib. I've pencilled in quite a bit of time today to
 try to get kinterbase installed.
 Unfortunately I'm on Windows, which I'm guessing contributes to the
 installation problems!
 
 
 
 
 ...but I can confirm that KIinterbaseDA works nicely on Windows - I've
 been happily using it for some time, and haven't had any issues at all
 (BTW, I don't use LDAP and KInterbaseDA has never mentioned it!). The
 only problem I had at install time was getting my head around the
 distinction between the Python part and the Zope DA part.
 
 HTH
 
 
 
 



 -- 
 No virus found in this outgoing message.
 Checked by AVG Anti-Virus.
 Version: 7.0.338 / Virus Database: 267.9.8/61 - Release Date: 8/1/2005


___
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 )