Can't delete related record with date as primary key

A place for users and developers of the Xataface to discuss and receive support.

Can't delete related record with date as primary key

Postby stephane » Tue Sep 18, 2012 3:59 pm

Hi,

I have an Exception 'Attempt to use array in query clause' when I try to delete a selected related record.
The (related) table is :
Code: Select all
CREATE TABLE rtable (
  id_test int(11) NOT NULL,
  the_date date NOT NULL,
  field3 varchar(20) DEFAULT NULL,
  PRIMARY KEY (id_test,the_date)
)

id_test is my foreign key pointing to the field 'id' from the table 'test' :
Code: Select all
[myrelation]
rtable.id_test = "$id"

I think that the date is presented as an array when building the where clause.
This exception is thrown only when I try to delete the related record from the related list, using check box and action "with selected -> remove".
Everything goes fine if I delete the related record from its view tab.

I use Xataface 1.3.2

Best Regards
stephane
 
Posts: 3
Joined: Tue Sep 18, 2012 1:35 pm

Re: Can't delete related record with date as primary key

Postby shannah » Mon Sep 24, 2012 9:28 am

Can you post the exception error readout?
shannah
 
Posts: 4457
Joined: Wed Dec 31, 1969 5:00 pm

Re: Can't delete related record with date as primary key

Postby stephane » Tue Sep 25, 2012 1:44 pm

Sure. Here it is :

PHP Fatal error: Uncaught exception 'Exception' with message 'Attempt to use array in query clause' in D:\dev\www\test_xataface\xataface\Dataface\QueryBuilder.php:503
Stack trace:
#0 D:\dev\www\test_xataface\xataface\Dataface\QueryBuilder.php(665): Dataface_QueryBuilder->_fieldWhereClause(Array, Array, true, 'rtable')
#1 D:\dev\www\test_xataface\xataface\Dataface\QueryBuilder.php(229): Dataface_QueryBuilder->_where(Array)
#2 D:\dev\www\test_xataface\xataface\Dataface\IO.php(197): Dataface_QueryBuilder->select('', Array, false, 'rtable')
#3 D:\dev\www\test_xataface\xataface\Dataface\IO.php(1687): Dataface_IO->read(Array, Object(Dataface_Record))
#4 D:\dev\www\test_xataface\xataface\Dataface\RemoveRelatedRecordForm.php(321): Dataface_IO->removeRelatedRecord(Object(Dataface_RelatedRecord), '1', true)
#5 [internal function]: Dataface_RemoveRelatedRecordForm->delete(Array)
#6 D:\dev\www\test_xataface\xataface\lib\HTML\QuickForm.php(1626): call_user_func(Array, Array)
#7 D:\dev\www\test_xataface\xataface\actions\remove_related_reco in D:\dev\www\test_xataface\xataface\Dataface\QueryBuilder.php on line 503

Do you want me to attach a zip with a small sample that brings out the issue ?
stephane
 
Posts: 3
Joined: Tue Sep 18, 2012 1:35 pm

Re: Can't delete related record with date as primary key

Postby shannah » Tue Sep 25, 2012 2:25 pm

Thanks. I have fixed this in SVN. I have also posted a bug report with details of the fix at
http://bugs.weblite.ca/view.php?id=1158

Here is a diff of the 1.3.x branch if you want to just make a fix in your version.
Code: Select all
d142-58-249-174:xataface-1.3.x shannah$ svn diff -r 4104:4105
Index: Dataface/IO.php
===================================================================
--- Dataface/IO.php   (revision 4104)
+++ Dataface/IO.php   (revision 4105)
@@ -1690,7 +1690,7 @@
      $currKeyNames = array_keys($domainTable->keys());
         // Names of key fields in the domain table
      foreach ($currKeyNames as $keyName){
-         $query[$keyName] = $related_record->val($keyName);
+         $query[$keyName] = $related_record->strval($keyName);
         $absVals[$domainTable->tablename.'.'.$keyName] = $query[$keyName];
      }


Notice that there is only one line changed. A val() to a strval()

_Steve
shannah
 
Posts: 4457
Joined: Wed Dec 31, 1969 5:00 pm

Re: Can't delete related record with date as primary key

Postby stephane » Tue Sep 25, 2012 3:01 pm

Don't thank me... Many thanks to you ! You saved me so much hours of work.
Your work is really great and the way you handle is really professional.
In a few words: I'm a fan.
stephane
 
Posts: 3
Joined: Tue Sep 18, 2012 1:35 pm


Return to Xataface Users

Who is online

Users browsing this forum: No registered users and 31 guests

Powered by Dataface
© 2005-2007 Steve Hannah All rights reserved