[python] SqlObject

Lukáš Linhart almad na include.cz
Pátek Září 29 14:15:18 CEST 2006


E-mail Petr Vaněk ze dne Thursday 28 September 2006 16:08:
> Hezký sváteční den

Hezký předvíkendový den

> v Tutor konferenci jsem objevil zmínku o SqlObject
> http://www.sqlobject.org
>
> O co by mělo jít? Jedná se o moduly, které mapují objekty (tabulky)
> databáze do Python tříd. Hezké.
>
> Zajímalo by mne, estli existuje nějaké reálné využití, a popřípadě jaké s
> tím máte zkušenosti.

Ošklivé až zlé.

> Letmým studiem kódu a zběžným spuštěním mi přijde, že tomu zřejmě
> nerozumím.
> * Jak se to chová v případě nepodporovaných (?) objektů (view,
> procedury...)? Ignoruje to? Jak se ale pak dá s DB pracovat?

Obecně mám ze SQLObject dojem, že Bicking používá RDBMS jen proto, že to po 
něm chtějí klienti a má to jako takový rychlejší pickle s vyhledáváním ,)

Nicméně, tohle je prostě obecný tradeoff orm vs práce-přímo-s-daty, tam se moc 
nedá svítit.

> * Opravdu to neuvolňuje paměť když už nechci s instancí tabulky pracovat?

Tak tak, ale to je "cache feature"

> * Proč je "ID column" vždycky NUMBER s automatickým inkrementem? Popř. jak
> se toho zbavím?

Nějak se to dá ale je to autorem velmi nedoporučováno.

> * Opravdu to tahá všechna data z DB, když nadefinuju třídu nad tabulkou
> anebo se mi to jenom zdá?

Nezdá.

> * Jak se dostanu k plnému znění DB chyby?
>
> a tak vůbec

Jinak rozhodně než SQLObject, který má i pár jiných chybek (neescapuje column 
a table names apod) doporučuju SQLAlchemy - http://www.sqlalchemy.org/

Já musel řešit předtím než alchemy vzniklo, tak jsem si napsal takový vlastní 
thin wrapper - http://projects.almad.net/dbclass -, který je ale míň ORM a 
víc usnadňovač běžné práce pro web (connection pool, schovává connections a 
kurzory, nedává rows jako atributy ale používá .data slovník apod), nicméně 
to není tak dovychytané jako tyhle věci + je zatím jenom pro firebird (zatím 
jsem nepotřeboval použít jinou db ,))

> zdar a sílu
> petr vaněk

-- 
Almad
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
Url : http://www.py.cz/pipermail/python/attachments/20060929/c3764214/attachment.pgp 


Další informace o konferenci Python