From: tarbin jiang Date: February 4 2009 1:45am Subject: RE: what's the reason for problem "Tuple did not exist"? List-Archive: http://lists.mysql.com/ndb-connectors/667 Message-Id: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="_ef805fc5-7661-4295-be5c-3873b56b3761_" --_ef805fc5-7661-4295-be5c-3873b56b3761_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 8bit 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 paraValue = "";/> > / 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 values/> > / ...../> > / ret = trans.execute(ExecType.Commit, > > AbortOption.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=tarbin@stripped> > >> >> >> > ------------------------------------------------------------------------> > What can you do with the new Windows Live? Find out > > > > -- > 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 --_ef805fc5-7661-4295-be5c-3873b56b3761_--