Thomas Koch wrote:
> Hi Peter,
>
>   
Hi Thomas
> I've had the issue with uppercase myself once and it is since then
> documented at:
>
> http://ezcomponents.org/docs/tutorials/Database#restrictions
>
> The import code is at
> Database/handler.php, line 91:
>         $this->setAttribute( PDO::ATTR_CASE, PDO::CASE_LOWER );
>
> This means, that all identifiers needs to be lower case. This is
> enforced to keep code compatibility across all supported databases.
>
>   
Indeed my problem seems to be more related to quoting. Suppose I have a 
table like

CREATE TABLE LANGUAGE
   (    LANG_ID CHAR(2 BYTE) NOT NULL ENABLE,
    LANG_NAME_EN VARCHAR2(80 BYTE),
     CONSTRAINT "LANGUAGE_PKEY" PRIMARY KEY ("LANG_ID")
)

If I do:
--
$query = $dbh->createSelectQuery();
$query->select($dbh->quoteIdentifier('lang_id'),
               $dbh->quoteIdentifier('lang_name_id'))
->from($dbh->quoteIdentifier('language'));

$stat = $query->prepare();
--
I get an error about " ORA-00942: table or view does not exist".
If I remove the quoteIdentifier methods:
--
$query = $dbh->createSelectQuery();
$query->select('lang_id',
               'lang_name_en')
->from('language');

$stat = $query->prepare();
--
everything is fine.

Now my question is: In order to have as few problems as possible, should 
I keep all database objects  in lower case or is there a setting in db 
that is "smarter", e.g. transforms the object identifiers into the 
database native case?

Regards,

Peter
> I'm sorry, but I've no idea about the second issue. Wait a bit if the eZ
> guys will answer you.
>
> Cheers, Thomas Koch
>
>
>
> Am Friday 27 February 2009 19:02:31 schrieb Peter Hopfgartner:
>   
>> Dear ezComnuity,
>>
>> I would like to use the Tree functionality for a database located in a
>> Oracle database. Unfortunatly I hava a couple of problems, that may be
>> caused by the fact that
>>
>>  * I'm new to ezComponents
>>  * I'm new to Oracle
>>
>> I defined the table as
>>
>> CREATE TABLE taxonomy
>>   (
>>     id        NUMBER PRIMARY KEY,
>>     parent_id NUMBER            ,
>>     path      VARCHAR2(255)
>>   );
>>
>> Since Oracle defaults to UPPER CASE, the name of the table is "TAXONOMY".
>>
>> When I try to use ezcTreeMaterializedPath, I see that would like to run
>> a query like <INSERT INTO "taxonomy" ( path ) VALUES ( 0 )>. Since the
>> table name is quoted, Oracle does searches for a table called
>> "taxonomy", not "TAXONOMY".  So my question is: what are the
>> convenctions when using ez Componets on Oracle? Should all table names
>> turned to lower case? Is there a database setting, which basically tells
>> Oracle to not care about case sensitivity? Or even better, a parameter
>> within ez, like the option "auto_quote" in PEAR::MDB2, so that names are
>> not quoted.
>>
>> Out of curiosity, I tried to create a new table named "taxonomy". The
>> next  stop arrived with a flashing  message like "driver does not
>> support lastInsertId()".  Is this fixable? Should I have a look at it?
>> Obviously, as a workaroud I may chose to create the id myself and turn
>> $tree->autoId = false; This works!
>>
>> Regards,
>>
>> Peter
>>
>> --
>>
>> Dott. Peter Hopfgartner
>>
>> R3 GIS Srl - GmbH
>> Via Johann Kravogl-Str. 2
>> I-39012 Meran/Merano (BZ)
>> Email: peter.hopfgart...@r3-gis.com
>> Tel. : +39 0473 494949
>> Fax  : +39 0473 069902
>> www  : http://www.r3-gis.com
>>     
>
>
>   


-- 
 
Dott. Peter Hopfgartner
 
R3 GIS Srl - GmbH
Via Johann Kravogl-Str. 2
I-39012 Meran/Merano (BZ)
Email: peter.hopfgart...@r3-gis.com
Tel. : +39 0473 494949
Fax  : +39 0473 069902
www  : http://www.r3-gis.com

-- 
Components mailing list
Components@lists.ez.no
http://lists.ez.no/mailman/listinfo/components

Reply via email to