List:NDB Connectors« Previous MessageNext Message »
From:Frazer Clement Date:February 4 2009 10:10am
Subject:Re: what's the reason for problem "Tuple did not exist"?
View as plain text  
Hi Tarbin,
  I am not aware of a workaround available currently.
  It means that you cannot successfully use NDB-Bindings to read/write 
TEXT or BLOB columns until it's fixed.
Frazer

tarbin jiang wrote:
> Farzer,
>    can we work around this bug now? If this problem can not be resolved, it means we
> can not use NDB-Binding in TEXT/BLOB type database. right?
> thanks from tarbin> Date: Tue, 3 Feb 2009 09:42:24 +0000> From:
> Frazer.Clement@stripped> Subject: Re: what's the reason for problem "Tuple did not
> exist"?> To: tarbin@stripped> CC: ndb-connectors@stripped> > Hi
> Tarbin,> Thanks for sending more details.> I looked at the NDB/Bindings
> implementation of Blob handling yesterday > and believe it has some bugs which may mean
> that :> 1) Blob/Text data written in via NDB/Bindings may not be correctly > copied
> from the supplied buffer> 2) Blob/Text data read back via NDB/Bindings may not be
> correctly > copied to the user's supplied buffer.> This needs to be fixed in the
> NDB/Bindings code before you can > succesfully use BLOB and TEXT column types.> I'm
> afraid that I don't know right now when that will happen.> Frazer> > tarbin jiang
> wrote:> > Frazer,> > thanks for your response.> > I did use BLOB type to
> handle TEXT type column.> > pop error code:> > / String columnName =
> "column2";//column2 type is "TEXT"/> > / String paraVal!
 ue!
>   = "";/> > / String tableName = "MyTable";/> > / NdbTransaction trans =
> ndb.startTransaction();/> > / NdbOperation op =
> trans.getInsertOperation(tableName);/> > / ....../> > / //get content from a
> xml file and set to paraValue/> > / ......./> > / NdbBlob text;> > text
> = op.getBlobHandle(columnName);> > text.setValue(paraValue.getBytes());/> > /
> .... /> > / //set other column values/> > / ...../> > / ret =
> trans.execute(ExecType.Commit, > > AbortOption.AbortOnError,true);/> > /
> trans.close();/> > > > no error code:> > / String columnName =
> "column2";//column2 type is "TEXT"/> > / String paraValue = "";/> > / String
> tableName = "MyTable";/> > / NdbTransaction trans = ndb.startTransaction();/>
> > / NdbOperation op = trans.getInsertOperation(tableName);/> > / ....../> >
> / //set a normal string such as "abcdefg" to paraValue/> > / ......./> > /
> NdbBlob text;> > text = op.getBlobHandle(columnName);> >
> text.setValue(paraValue.getBytes());/> > / .... /> > / //set other column
> valu!
 es!
>  /> > / ...../> > / ret = trans.execute(ExecType.Commit, > >
> AbortOptio
> n.AbortOnError,true);/> > / trans.close();/> > // > > Thanks.>
> > tarbin> >> > > Date: Mon, 2 Feb 2009 11:18:24 +0000> > >
> From: Frazer.Clement@stripped> > > Subject: Re: what's the reason for problem
> "Tuple did not exist"?> > > To: tarbin@stripped> > > CC:
> ndb-connectors@stripped> > >> > > Hi Tarbin,> > > Can
> you explain a bit further what you are doing?> > > FYI : TEXT *is* a BLOB with a
> character set. So you must use the BLOB> > > API to read/write TEXT columns. You
> *must not* use the normal> > > setValue/getValue API for TEXT columns.> >
> > Perhaps you could describe what does and does not work in terms of> > >
> schemas, your code and the content and length of the data you are using.> > >
> Frazer> > >> > > tarbin jiang wrote:> > > > all,> >
> > > when I insert a record which including a TEXT type column, it > > returns
> error:> > > > com.mysql.cluster.ndbj.NdbApiPermanentException: Tuple did not
> exist.> > > > I found that if I set the TEXT type column as a formal string!
 , !
>  it > > works without error.> > > > but if I set the Text type
> column as a xml file, the error pops.> > > > The procedure of reading xml file
> is no problem. And I used > > NDBBlob type to handle text type.> > >
> >> > > > insertOperation.setValue(xmlFile.bytes())> > > >>
> > > > can anybody help me?> > > > thanks from tarbin> > >
> >> > > >
> _________________________________________________________________> > > > News,
> entertainment and everything you care about at Live.com. Get > > it now!> >
> > > http://www.live.com/getstarted.aspx> > > >> > > >>
> > >> > > --> > > Frazer Clement, Software Engineer, MySQL
> Cluster> > > Sun Microsystems - www.mysql.com> > > Office: Reading,
> UK> > >> > > Are you MySQL certified? www.mysql.com/certification>
> > >> > >> > > --> > > MySQL NDB Connectors Mailing
> List> > > For list archives: http://lists.mysql.com/ndb-connectors> > >
> To unsubscribe: > > http://lists.mysql.com/ndb-connectors?unsub=1 > >>
> >> >> > ------------------------------!
 --!
>  ----------------------------------------> > What can you do with the n
> ew Windows Live? Find out > >
> <http://www.microsoft.com/windows/windowslive/default.aspx>> > -- > Frazer
> Clement, Software Engineer, MySQL Cluster > Sun Microsystems - www.mysql.com>
> Office: Reading, UK> > Are you MySQL certified? www.mysql.com/certification> 
> _________________________________________________________________
> Show them the way! Add maps and directions to your party invites. 
> http://www.microsoft.com/windows/windowslive/events.aspx
>
>   

-- 
Frazer Clement, Software Engineer, MySQL Cluster 
Sun Microsystems - www.mysql.com
Office: Reading, UK

Are you MySQL certified?  www.mysql.com/certification


Thread
what's the reason for problem "Tuple did not exist"?tarbin jiang2 Feb
  • Re: what's the reason for problem "Tuple did not exist"?Frazer Clement2 Feb
    • RE: what's the reason for problem "Tuple did not exist"?tarbin jiang3 Feb
      • Re: what's the reason for problem "Tuple did not exist"?Frazer Clement3 Feb
        • RE: what's the reason for problem "Tuple did not exist"?tarbin jiang4 Feb
          • Re: what's the reason for problem "Tuple did not exist"?Frazer Clement4 Feb
          • Re: what's the reason for problem "Tuple did not exist"?Frazer Clement1 Mar