2011年2月21日星期一

Re: [fw-db] Zend_Db_Table Issue

It looks like an error.

If you could implement a simplest code to reproduce this issue and file
a ticket on bug-tracker.

Or just attach ZIP with that code to you message here, that will allow
anyone to run that code and easy reproduce the error on its development
machine.

Joseph Chereshnovsky

On Mon, 2011-02-21 at 14:09 -0300, Rafael wrote:
> It doesn't works with MyISAM also, So the problem is not with the
> database engine.
>
> Anyway thanks,
>
> Rafael
>
> Em 21/02/2011 13:27, Christian Proske escreveu:
> > Hy Rafael,
> >
> > have u read this:
> >
> > "Declaring cascading operations in Zend_Db_Table is intended only for RDBMS brands that do not support declarative referential integrity (DRI)."
> >
> > Source: http://framework.zend.com/manual/en/zend.db.table.relationships.html
> >
> > So I think that means it is NOT possible to implement DRI in ZF with InnoDB, because InnoDB supportes DRI.
> >
> > Please correct me if I'm wrong.
> >
> > For more information on how to InnoDB& Foreign Key Constraints: http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
> >
> > Regards,
> > Chris
> >
> > Am 21.02.2011 um 17:12 schrieb Rafael:
> >
> >> Well, It doesn't thorows a exception but give that notice, my code to delete the row is below
> >>
> >> function deletarID($id) {
> >>
> >> $processo = $this->find($id);
> >>
> >> $result = $processo->current()->delete();
> >>
> >> return $result;
> >> }
> >>
> >>
> >> Em 21/02/2011 06:43, Joseph007 escreveu:
> >>> Hi,
> >>>
> >>> Can you please provide an actual code used by you to delete row, that
> >>> throws mentioned error?
> >>>
> >>> Regards,
> >>> Joseph Chereshnovsky
> >>>
> >>> On Wed, 2011-02-16 at 01:53 -0200, Rafael wrote:
> >>>> Hello,
> >>>>
> >>>> I don't know if it is the right to ask however i have one issue that
> >>>> nobody else managed to solve it.
> >>>>
> >>>> I'm using zend framework 1.11.3, PHP 5.3 and MySQL 5.1 configured with
> >>>> InnoDB engine. I'm trying to make a relationship between two tables
> >>>> to apply cascade deletion but deletes only parental row and return me
> >>>>
> >>>> Notice: Undefined index: numero_atual in
> >>>> C:\htdocs\Advocacia\library\Zend\Db\Table\Abstract.php on line 1197
> >>>>
> >>>> It happens when i try to delete one row from the model
> >>>> Application_Model_ProcessosJudicial , I really can't see anything wrong
> >>>> in the code or...
> >>>>
> >>>> I would be thankful if anyone check it for me
> >>>>
> >>>> class Application_Model_ProcessosJudicial extends Zend_Db_table {
> >>>>
> >>>> protected $_name = "processos_judicial";
> >>>> protected $_dependentTables = array('Application_Model_Partes',
> >>>> 'Application_Model_Andamentos');
> >>>>
> >>>> protected $_referenceMap = array(
> >>>> 'Andamento' => array(
> >>>> 'columns' => array('numero_atual'),
> >>>> 'refColumns' => array('numero_atual'),
> >>>> 'refTableClass' => 'Application_Model_Andamentos',
> >>>> 'onDelete' => self::CASCADE,
> >>>> 'onUpdate' => self::RESTRICT
> >>>> )
> >>>> );
> >>>>
> >>>> }
> >>>>
> >>>>
> >>>> class Application_Model_Andamentos extends Zend_Db_table {
> >>>>
> >>>> protected $_name = "processos_andamentos_judicial";
> >>>>
> >>>> protected $_referenceMap = array(
> >>>> 'Andamento' => array(
> >>>> 'refTableClass' => 'Application_Model_ProcessosJudicial',
> >>>> 'refColumns' => array('numero_atual'),
> >>>> 'columns' => array('numero_atual'),
> >>>> 'onDelete' => self::CASCADE,
> >>>> 'onUpdate' => self::RESTRICT
> >>>> )
> >>>> );
> >>>>
> >>>> }
> >>>>
> >>>> My table structure
> >>>>
> >>>>
> >>>> CREATE TABLE IF NOT EXISTS `processos_andamentos_judicial` (
> >>>> `id` int(11) NOT NULL AUTO_INCREMENT,
> >>>> `numero_atual` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `data` datetime DEFAULT NULL,
> >>>> `andamento` varchar(60) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `complemento` varchar(60) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `observacao` longtext CHARACTER SET latin1,
> >>>> `tipo_processo` varchar(45) CHARACTER SET latin1 DEFAULT NULL,
> >>>> PRIMARY KEY (`id`),
> >>>> KEY `numero` (`numero_atual`)
> >>>> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;
> >>>>
> >>>> CREATE TABLE IF NOT EXISTS `processos_judicial` (
> >>>> `id` int(11) NOT NULL AUTO_INCREMENT,
> >>>> `numero_atual` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `numero_antigo` varchar(30) CHARACTER SET latin1 DEFAULT '',
> >>>> `data_distribuicao` date DEFAULT NULL,
> >>>> `orgao` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `circunscricao` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `local` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `feito` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `rito` varchar(45) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `fase` varchar(45) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `encerrado` tinyint(1) DEFAULT NULL,
> >>>> `encerrado_data` date DEFAULT NULL,
> >>>> `encerrado_motivo` varchar(45) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `suspenso` tinyint(1) DEFAULT NULL,
> >>>> `suspenso_data` date DEFAULT NULL,
> >>>> `valor_causa` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `assistencia_gratuita` tinyint(1) DEFAULT NULL,
> >>>> `percentual` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `resumo` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
> >>>> `ultima_modificao` datetime DEFAULT NULL,
> >>>> `criacao` datetime DEFAULT NULL,
> >>>> PRIMARY KEY (`id`),
> >>>> KEY `numero_atual` (`numero_atual`)
> >>>> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=43 ;
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >
>
>
>

没有评论: