2009年1月30日星期五

Re: [fw-db] Zend_Db_Adapter_DB2 on I5

Are you using Zend Core for i5 by chance, or what is the PHP platform you
are running on?

-ralph


On 1/30/09 3:54 AM, "David Ulrich" <david@dahuu.fr> wrote:

> Ralph,
>
> I was wrong, connection problem on V5R3 was not corrected with ptf.
> I works only the first time you try to connect.
>
> David
>
> -----Message d'origine-----
> De : David Ulrich [mailto:david@dahuu.fr]
> Envoyé : jeudi 29 janvier 2009 23:31
> À : fw-db@lists.zend.com
> Objet : RE: [fw-db] Zend_Db_Adapter_DB2 on I5
>
> Ralph,
>
> After applying ptf, connection works fine on V5R3. The first problem is ok
> now.
> But as I said this morning, fetchAll() with or without select don't work on
> both version V5R3 and V5R4 with latest cum level.
> See my previous message to Lydia.
>
> Thanks,
> David
>
> -----Message d'origine-----
> De : David Ulrich [mailto:david@dahuu.fr]
> Envoyé : jeudi 29 janvier 2009 11:31
> À : 'Alexandre, Lydia'; fw-db@lists.zend.com
> Objet : RE: [fw-db] Zend_Db_Adapter_DB2 on I5
>
> Yes Lydia,
>
> This is the second problem...
>
> When I try this
>
> $alertes = new Alertes();
> $select = $alertes->select();
> echo $select->__toString();
> print_r($alertes->fetchAll($select);
>
> the result is :
> SELECT "MYFILE".* FROM "MYLIB"."MYFILE"
> And failed.
>
> This should be
> SELECT "MYFILE".* FROM "MYLIB"."MYFILE" AS MYFILE
>
>
> David
>
>
> -----Message d'origine-----
> De : Alexandre, Lydia [mailto:LAlexandre@GLD.BE]
> Envoyé : jeudi 29 janvier 2009 09:41
> À : fw-db@lists.zend.com
> Cc : David Ulrich
> Objet : RE: [fw-db] Zend_Db_Adapter_DB2 on I5
>
> Hi,
>
> The v5r3 problem apart from ...
> The real problem is : why they is no shema in the request (and no *)
>
> The trace show : ('select MYFILE...')
> It must be 'select * from MYLIB.MYFILE' (with i5 always use the shema)
>
> Now fetchAll is deprecated, try to use an other syntax. But in documentation
> I find :
>
> $alertes = new Alertes();
>
> $select = $alertes->select();
> $select->where('bug_status = ?', 'NEW'); // use the good field or try not
> use the where ...
>
> $rows = $alertes->fetchAll($select);
>
>
> Lydia
> ~maKyo
>
> -----Message d'origine-----
> De : David Ulrich [mailto:david@dahuu.fr]
> Envoyé : mercredi 28 janvier 2009 19:10
> À : 'Ralph Schindler'; fw-db@lists.zend.com
> Objet : RE: [fw-db] Zend_Db_Adapter_DB2 on I5
>
> I checked both and they are not at the latest level.
> I download now the latest level and I'll test after apply and do an ipl.
>
> Thanks,
> David
>
> -----Message d'origine-----
> De : Ralph Schindler [mailto:ralph.schindler@zend.com] Envoyé : mercredi 28
> janvier 2009 18:54 À : David Ulrich; fw-db@lists.zend.com Objet : Re:
> [fw-db] Zend_Db_Adapter_DB2 on I5
>
> I've been told that there are some DB Connection issues that were fixed by
> fixed by IBM PTF (program temporary fix). Can you confirm that both
> machines are up to date in this regard?
>
> -ralph
>
>
> On 1/28/09 11:39 AM, "David Ulrich" <david@dahuu.fr> wrote:
>
>> Ralph,
>>
>> I tested with schema too but i had the same result (on V5R3).
>> I tested with getConnection() too and the result is :
>>
>> [28-jan-2009 18:33:37] PHP Fatal error: Uncaught exception
>> 'Zend_Db_Adapter_Db2_Exception' with message 'Connexion à base de
>> données relationnelle S65EA94B déjà établie. SQLCODE=-842' in
>> /usr/local/Zend/ZendFramework-1.7.3/library/Zend/Db/Adapter/Db2.php:19
>> 1
>> Stack trace:
>> #0
>>
> /usr/local/Zend/ZendFramework-1.7.3/library/Zend/Db/Adapter/Abstract.php(300
>> ): Zend_Db_Adapter_Db2->_connect()
>> #1 /www/php/site/admin/public/testdb.php(15):
>> Zend_Db_Adapter_Abstract->getConnection()
>> #2 {main}
>> thrown in
>> /usr/local/Zend/ZendFramework-1.7.3/library/Zend/Db/Adapter/Db2.php on
> line
>> 191
>>
>> Same script works fine on V5R4.
>>
>> David Ulrich
>>
>> -----Message d'origine-----
>> De : Ralph Schindler [mailto:ralph.schindler@zend.com] Envoyé :
>> mercredi 28 janvier 2009 18:11 À : David Ulrich; fw-db@lists.zend.com
>> Objet : Re: [fw-db] Zend_Db_Adapter_DB2 on I5
>>
>>> From the trace stack, it appears your connection is not being made
>> correctly.
>>
>> Have you tried adding schema to your Zend_Db::factory()?
>>
>> I imagine it would look like so:
>>
>> $db = Zend_Db::factory('Db2',array(
>>         'host'=>'127.0.0.1',
>>         'username'=>'USERNAME',
>>         'password'=>'password',
>>         'dbname'=>'DATABASE',
>> 'schema'=>'MYLIB'
>> ));
>>
>> And to test, you can simply ensure this works:
>>
>> $db->getConnection(); // this should not fail.
>>
>> sidenote: connections are lazy-loaded until the first usage, so while
>> the above is something good to test your connection; lazy-loading the
> connection
>> (which is what you are doing in your scripts utilizing the table) are
>> a
> good
>> thing. Once you figure out why the connection is failing, remove the
>> getConnection() from your bootstrap. This will prevent requests that
> don't
>> use a db connection from actually connecting to the database.
>>
>>
>> On 1/28/09 7:45 AM, "David Ulrich" <david@dahuu.fr> wrote:
>>
>>> Hi,
>>>
>>> I¹m trying to use Zend_Db on my I5 but I have some problems.
>>> I create a little test file and test it on 2 I5 (one V5R3 and one V5R4).
>>> I downloaded the latest svn trunk for testing.
>>>
>>> [code]
>>> <?php
>>> require_once "Zend/Loader.php";
>>> // Set up autoload.
>>> Zend_Loader::registerAutoload();
>>>
>>> class Alertes extends Zend_Db_Table_Abstract {
>>>         /**
>>>          * The default table name
>>>          */
>>>         protected $_name = 'MYFILE';
>>>         protected $_schema = 'MYLIB';
>>>         protected $_primary = 'MACLE'; }
>>>
>>> $db = Zend_Db::factory('Db2',array(
>>>         'host'=>'127.0.0.1',
>>>         'username'=>'USERNAME',
>>>         'password'=>'password',
>>>         'dbname'=>'DATABASE'));
>>> Zend_Db_Table::setDefaultAdapter($db);
>>>
>>> // #1
>>> $sql = 'select * from MYLIB.MYFILE';
>>> print_r($db->fetchAll($sql));
>>>
>>> // #2
>>> $alertes = new Alertes();
>>> print_r($alertes->fetchAll());
>>> ?>
>>> [/code]
>>>
>>> On V5R3, nothing works. I got this message (as the message is in
>>> French, message is : Connection to database DATABASE already done) :
>>> [code]
>>> [28-Jan-2009 14:33:40] PHP Fatal error:  Uncaught exception
>>> 'Zend_Db_Adapter_Db2_Exception' with message 'Connexion à base de
>>> données relationnelle DATABASE déjà établie. SQLCODE=-842' in
>>> /usr/local/Zend/ZendFramework-1.7.3/library/Zend/Db/Adapter/Db2.php:1
>>> 91
>>> Stack trace:
>>> #0
>>>
>>
> /usr/local/Zend/ZendFramework-1.7.3/library/Zend/Db/Adapter/Abstract.php(441
>> ):
>>> Zend_Db_Adapter_Db2->_connect()
>>> #1
>>>
>>
> /usr/local/Zend/ZendFramework-1.7.3/library/Zend/Db/Adapter/Abstract.php(668
>> ):
>>> Zend_Db_Adapter_Abstract->query('select * from M...', Array)
>>> #2 /www/php/site/admin/public/testdb.php(16):
>>> Zend_Db_Adapter_Abstract->fetchAll('select * from M...')
>>> #3 {main}
>>>   thrown in
>>> /usr/local/Zend/ZendFramework-1.7.3/library/Zend/Db/Adapter/Db2.php
>>> on
>> line
>>> 191
>>> [/code]
>>>
>>> On V5R4, the #1 works fine but not #2 wich this message :
>>> [code]
>>> [28-Jan-2009 11:43:53] PHP Fatal error:  Uncaught exception
>>> 'Zend_Db_Statement_Db2_Exception' with message 'Qualificatif de
>>> colonne
> ou
>>> table MYFILE non défini. SQLCODE=-5001' in
>>> /usr/local/Zend/ZendFramework-1.7/library/Zend/Db/Statement/Db2.php:7
>>> 1
>>> Stack trace:
>>> #0 /usr/local/Zend/ZendFramework-1.7/library/Zend/Db/Statement.php(109):
>>> Zend_Db_Statement_Db2->_prepare('select MYFILE...')
>>> #1
> /usr/local/Zend/ZendFramework-1.7/library/Zend/Db/Adapter/Db2.php(230):
>>> Zend_Db_Statement->__construct(Object(Zend_Db_Adapter_Db2), 'select
>>> MYFILE...')
>>> #2
>>>
>>
> /usr/local/Zend/ZendFramework-1.7/library/Zend/Db/Adapter/Abstract.php(456):
>>> Zend_Db_Adapter_Db2->prepare('select MYFILE...')
>>> #3
>>>
>>
> /usr/local/Zend/ZendFramework-1.7/library/Zend/Db/Adapter/Abstract.php(668):
>>> Zend_Db_Adapter_Abstract->query('select MYFILE...', Array)
>>> #4 /www/alertes/public/testdb.php(23):
>>> Zend_Db_Adapter_Abstract->fetchAll('select MYFILE...')
>>> #5 {main}
>>>   thrown in
>>> /usr/local/Zend/ZendFramework-1.7/library/Zend/Db/Statement/Db2.php
>>> on
>> line 71
>>> [/code]
>>> The sql generated by Zend_DB_Table does not work on I5.
>>>
>>> Did I miss something ?
>>>
>>> Thanks,
>>> David
>>>
>
> --
> Ralph Schindler
> Software Engineer | ralph.schindler@zend.com
> Zend Framework | http://framework.zend.com/
>
>

--
Ralph Schindler
Software Engineer | ralph.schindler@zend.com
Zend Framework | http://framework.zend.com/

没有评论: