Názory ke článku Oracle C++ Call Interface – 4. Select a metadáta – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Názory ke článku Oracle C++ Call Interface – 4. Select a metadáta – Programujte.comNázory ke článku Oracle C++ Call Interface – 4. Select a metadáta – Programujte.com

 

Názory ke článku Oracle C++ Call Interface – 4. Select a metadáta

stepan   NOVÝ
14. 12. 2007

Pro přístup ke sloupečkům se mi místo pozičních indexů osvědčilo využívat názvy sloupců (JDBC to umí, předpokládám že OCCI taky). Není to sice použitelné při dynamickém načítání z metadat, ale to v praxi zase tak často nevyužijete. Spíš se setkáte s tím, že se ještě upravuje datový model - přidáním/odebráním/výměnou sloupců a informace se k vám nedostane :-) pokud jsou postižené sloupce stejného datového typu, můžete chybu odhalit až v testech (v lepším případě). Proto si myslím, že je tento postup bezpečnější.

Pokud zjišťujeme metadata objektů, není to nic jiného než další dotaz do databáze - od kterého však díky driveru (JDBC/OCCI) zůstaneme odstíněni. Ten za nás zajistí načtení dat z datového slovníku. Zajímá-li nás seznam sloupců a jejich typů, driver za nás vykoná nějaký takovýto dotaz:

SELECT column_id, column_name, data_type FROM all_tab_columns

WHERE table_name = 'OSOBY' ORDER BY column_id
* apostrofy jsou bez escape sekvence, tj. 'OSOBY'

sn3d   NOVÝ
15. 12. 2007

To stepan: Mate prakticky uplnu pravdu. Za pozicne indexy by ma nakopal do riti nie jeden clovek, co je pravda.. Pri OCCI by som sa tak musel este zaoberat konverziou std::string na nieco comu rozumie oracle atd atd.. Cele som sa to snazil nejak zjednodusit asi aj z vlastnej lenivosti :). Az po vasom prispevku mi doslo ze to bola riadna blbost :)

Co sa tyka druheho bodu.. tiez pravda :) prakticky vsetko sa to da poriesit tymto sposobom. Mne skor islo ukazat ze nejake metadata su a ako sa pouzivaju.

sn3d   NOVÝ
15. 12. 2007

To stepan: Inac dakujem za postrehy ;)

Tral   NOVÝ
17. 12. 2007

To stepan: Neviem ci nemyslite nieco ine ale pouzitie pozicnych indexov (napr. rs->getString(2)
) je uplne v poriadku, vzhladom k tomu ze v dotaze su jednotlive stlpce vymenovane (SELECT MENO, PRIEZVISKO, VEK FROM OSOBY) problem nenastane v ziadnej z popisovanych situacii.

stepan   NOVÝ
19. 12. 2007

To Tral: Myslel jsem změny, které se do kódu projeví v průběhu vývoje. Máš pravdu, tento příklad je natolik jednoduchý, že chybu neuděláš. Pokud však z databáze budeš načítat sloupečků několik desítek (ano, i takové datové modely existují), pak orientace při každé změně (přidání/odebrání/přejmenování) je čím dál tím složitější. Domnívám se, že použití pozičních indexů také není při větším počtu příliš přehledné :-) ale je to věc názoru.

Přidej svůj názor

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo e-mailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Reaguješ na příspěvek:
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové názory e-mailem (pouze pro přihlášené)
Sleduj názory ke článku a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.



Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý