Le 25/04/2013 17:21, Marcos García a écrit :
> I think it would be nice that we use Dolibarr with Doctrine or any ORM
> so that way we won't have compatibility problems with different
> database drivers...

>
> What do you think?

Dolibarr already has its own abstract database driver.
And this abstract layer is really better than doctrine and any other
orm. We already test all of them and they were not enough powerfull to
match dolibarr quality, so we develop ours.
For exemple,
- Abstraction for error report differs according to dabase. System works
for all database but they return error code of database and not value
differs.
- Doctrime, like other ORM does not support imbricated level of transaction
- Doctrine like other CRM does not allow to make a difference between
ddl and dml. And this is required to be able to manage upgrade process.
- Doctrine like other CRM support select, update, delete and insert but
few of them support instruction to manage foreign key creation, or
support is not working correctly.

The problem of Florian is not a problem of ORM. It is just that request
are not correctly written by developer. So we have to fix this into core
code.
We recommand to develop using Postgresql, as when it works with
postgres, it works with mysql but not the oposite.

>
> Regards,
>
>  
>
>     *Marcos García*
>
>     [email protected] <mailto:[email protected]>
>
>
>
> 2013/4/25 Florian Henry <[email protected]
> <mailto:[email protected]>>
>
>     Dear developpers,
>
>             I'm currently experiement lot's of problem with PostgreSQL
>     only due to non SQL respect standard.
>
>             As reminder with an agregate SQL function you must put in
>     GROUP BY all field that are not in the agreate
>
>             For example :   SELECT t.name <http://t.name>,t.id
>     <http://t.id>, SUM(t.cost) FROM llx_table GROUP BY t.id <http://t.id>
>                 That's WRONG ! MySQL let it go, but PgSQL no !
>
>             Correct version is SELECT_t.name <http://t.name>,t.id
>     <http://t.id>_, SUM(t.cost) FROM llx_table GROUP BY _t.name
>     <http://t.name>,t.id <http://t.id>
>
>     _        This kind of problem cannot be detected by UnitTest
>     because most of the time the are on list, not in object method,
>     but in list SQL.
>
>             Other common problem is into insert or update method
>             If your field is an integer, you must have this to build
>     the request :
>                  $sql.= " ".(!
>     empty($this->fk_fourn)?"'".$this->fk_fourn."'":"null");
>             and NOT
>                 $sql.= " '".(!
>     empty($this->fk_fourn)?$this->fk_fourn:"null")."'";
>
>             Try to sent update or insert request UPDATE llx_table SET
>     fk_fourn='' WHERE ... in PgSQL it will say '' is not a valid
>     inter, and is right.
>             Once again MySQL let it go but insert 0 instead of NULL....
>
>
>     Regards
>
>     -- 
>     Florian HENRY
>     [email protected] <mailto:[email protected]>
>     +33 6 03 76 48 07 <tel:%2B33%206%2003%2076%2048%2007>
>     http://www.open-concept.pro
>     Twitter : @_Open_Concept_
>
>
>     _______________________________________________
>     Dolibarr-dev mailing list
>     [email protected] <mailto:[email protected]>
>     https://lists.nongnu.org/mailman/listinfo/dolibarr-dev
>
>
>
>
> _______________________________________________
> Dolibarr-dev mailing list
> [email protected]
> https://lists.nongnu.org/mailman/listinfo/dolibarr-dev


-- 
Eldy (Laurent Destailleur).

EMail: [email protected]
Web: http://www.destailleur.fr

Dolibarr (Project leader): http://www.dolibarr.org
To make a donation for Dolibarr project via Paypal: [email protected]
AWStats (Author) : http://awstats.sourceforge.net
To make a donation for AWStats project via Paypal: [email protected]
AWBot (Author) : http://awbot.sourceforge.net
CVSChangeLogBuilder (Author) : http://cvschangelogb.sourceforge.net

_______________________________________________
Dolibarr-dev mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/dolibarr-dev

Répondre à