Dear ez buddies,
the case problem with Oracle goes on. I have a oracle database. All
database object are defined in Oracle default case, without any quoting,
thus upper case.
I've defined a persistent object like:
---
<?php
$def = new ezcPersistentObjectDefinition();
$def->table = 'TAXON';
$def->class = 'R3PmTaxon';
$def->idProperty = new ezcPersistentObjectIdProperty();
$def->idProperty->columnName = 'TXN_ID';
$def->idProperty->propertyName = 'txn_id';
$def->idProperty->generator = new
ezcPersistentGeneratorDefinition('ezcPersistentSequenceGenerator',
array('sequence' => R3Dbdc('taxon_txn_id_seq')));
$def->properties['txn_name_id'] = new ezcPersistentObjectProperty();
$def->properties['txn_name_id']->columnName = 'TXN_NAME_ID';
$def->properties['txn_name_id']->propertyName = 'txn_name_id';
$def->properties['txn_name_id']->propertyType =
ezcPersistentObjectProperty::PHP_TYPE_INT;
...
---
When trying to $session->load(), the whole thing blows up in
ezc/PersistentObject/internal/state_transformer.php, line 57. Trying to
diagnose what happens I would guess that the database $row in the
function parameters has the keys turned to lower case because of the PDO
settings in Database/handler.php, line 91: $this->setAttribute(
PDO::ATTR_CASE, PDO::CASE_LOWER ), as should a print_r($row) in the
function body:
---
Array
(
[txn_id] => 2
[txn_name_id] => 12
...
---
and the persistent object definition goes like
----
ezcPersistentObjectDefinition Object
(
[propertyArray:protected] => Array
...
[properties] => ezcPersistentObjectProperties Object
(
[txn_name_id] => ezcPersistentObjectProperty Object
(
[properties:private] => Array
(
[columnName] => TXN_NAME_ID
[propertyName] => txn_name_id
[propertyType] => 2
[converter] =>
[databaseType] => 2
)
)
[txn_text_id] => ezcPersistentObjectProperty Object
(
[properties:private] => Array
(
[columnName] => TXN_TEXT_ID
[propertyName] => txn_text_id
[propertyType] => 2
[converter] =>
[databaseType] => 2
)
)
...
[columns] => ezcPersistentObjectColumns Object
(
[TXN_NAME_ID] => ezcPersistentObjectProperty Object
(
[properties:private] => Array
(
[columnName] => TXN_NAME_ID
[propertyName] => txn_name_id
[propertyType] => 2
[converter] =>
[databaseType] => 2
)
)
[TXN_TEXT_ID] => ezcPersistentObjectProperty Object
(
[properties:private] => Array
(
[columnName] => TXN_TEXT_ID
[propertyName] => txn_text_id
[propertyType] => 2
[converter] =>
[databaseType] => 2
)
)
...
----
So when the loop in line 57 looks for a matching column for the given row key,
it will not find it and throws a
<br /><b>Notice</b>: Undefined index: txn_id in
<b>/usr/share/pear/ezc/PersistentObject/internal/state_transformer.php</b> on
line <b>57</b><br />
⌊ file <b>/data/devel/php/R3-PlantMap/sito/web/admin/edit.php</b> at
line: <b>159</b> function: <b>load("R3PmTaxon", 2)</b><br />
⌊ file
<b>/usr/share/pear/ezc/PersistentObject/persistent_session.php</b> at line:
<b>69</b> function: <b>load("R3PmTaxon", 2)</b><br />
⌊ file
<b>/usr/share/pear/ezc/PersistentObject/handlers/load_handler.php</b> at line:
<b>41</b> function: <b>loadIntoObject(CLASS::R3PmTaxon, 2)</b><br />
⌊ file
<b>/usr/share/pear/ezc/PersistentObject/handlers/load_handler.php</b> at line:
<b>123</b> function: <b>rowToStateArray(Array,
CLASS::ezcPersistentObjectDefinition)</b><br />
Should this be filed as a bug?
Regards,
Peter
--
Dott. Peter Hopfgartner
R3 GIS Srl - GmbH
Via Johann Kravogl-Str. 2
I-39012 Meran/Merano (BZ)
Email: [email protected]
Tel. : +39 0473 494949
Fax : +39 0473 069902
www : http://www.r3-gis.com
--
Components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/components