Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmAdo - Podrobný popis objektu

Viz: Objekt PmAdo
 
Objekt PmAdo obsahuje jedno napojení na databázi (ADO Connection). Připojení k databázi se provede metodou DbOpen. Nad touto databází lze pak vykonávat:
1) SQL příkazy nevracející data v podobě objektu AdoRecordset: pomocí metody DbExecute, například INSERT, UPDATE, DELETE, CREATE TABLE, atd.
2) SQL dotazy vracející data v podobě objektu AdoRecordset: pomocí metody RsOpen, například SELECT, atd.
 
Každý dotaz vytvářející objekt AdoRecordset (RsOpen nebo DbExecute) může mít jednoznačný identifikátor (sId), pod kterým si objekt PmAdo zapamatuje výsledek dotazu. Při použití jednoznačného identifikátoru, lze později získat existující objekt AdoRecordset metodou RsGet nebo jej lze uzavřít metodou RsClose. Objekt PmAdo může tedy obsahovat více výsledků SQL dotazů v podobě objektů AdoRecordset současně.
 
Objekt Wrapper:

Způsob implementace metod a vlastností (např. AdoRecordset.Update) u všech ADO objektů (např. AdoRecordset, AdoField, AdoRecord) způsobuje při chybě okamžité zastavení skriptu, který metodu zavolal. Toto je nežádoucí chování. Proto PROMOTIC automaticky obalí každý ADO objekt vlastní bezpečnostní vrstvou (objekt Wrapper). Wrapper umožní volat všechny metody a vlastnosti libovolného objektu, který Wrapper obaluje. Wrapper zajistí zachycení případné chyby v původním objektu a zapamatuje si kód poslední chyby. Hlavně zabrání zastavení skriptu vlivem chyby volání metody ADO objektu. Na objekt zabalený v bezpečnostní vrstvě objektu Wrapper je nejlépe se dívat jako na původní objekt, protože vrstva zpřístupní veškeré metody a vlastnosti původního objektu. Navíc přidává vlastní vlastnosti určené k testování výsledku poslední operace nad objektem (úspěšná/neúspěšná). Pokud některá metoda nebo vlastnost původního objektu vrací referenci na jiný objekt, potom to Wrapper původního objektu zachytí a obalí nově vracený objekt novým vlastním objektem Wrapper. Tak je zajištěno, že všechny objekty ADO hierarchie jsou automaticky obaleny bezpečnostní vrstvou.

 
Vlastnosti přidané objektem Wrapper k metodám a vlastnostem ADO objektu (např. AdoRecordset, AdoField):
- Pm_LastErr - Vrací číselný chybový kód poslední provedené metody (vlastnosti) nad objektem (hodnota 0 znamená bez chyby).
- Pm_LastTextErr - Vrací textový popis chyby poslední provedené metody (vlastnosti) nad objektem.
 
Obdobně lze přímo v objektu PmAdo vyčíst výsledek poslední operace pro DbExecute a RsOpen vlastnostmi LastErr a LastTextErr.

Vyčtení výsledku poslední operace (nad objekty PmAdo, AdoRecordset, AdoField) je výhodné tehdy, když nelze dopředu odhadnout (zaručit) výsledek operace a přitom vlastní metoda sama o sobě nevrací výsledek operace. Například DbExecute, RsOpen, AdoRecordset.Update. Viz Příklad.

 
Objekt ADO Record:

V závislosti na konkrétním ADO Provider se může stát, že jednořádkový výsledek SQL dotazu nebude vrácen v podobě objektu AdoRecordset s jedním záznamem, ale v podobě objektu AdoRecord, představujícího jeden řádek. Není to ale typické pro nejběžněji užívané ADO Provider. Objekt AdoRecord je spíše vrácen při explicitních operacích, kdy z exitujícího objektu AdoRecordset se vrátí konkrétní záznam v podobě objektu AdoRecord. Objekt AdoRecord skládá z objektů AdoField stejně jako objekt AdoRecordset, na rozdíl od něj však nepodporuje metody pro přesun pozice aktuálního záznamu (např. MoveFirst). V dokumentaci se pro zjednodušení bude uvádět pouze běžnější vracený objekt AdoRecordset, přestože v určitých ojedinělých případech může být vrácen i objekt AdoRecord.

 
Asynchronní programování:

Některé operace nad databází mohou být prováděny i asynchronně.

Upozornění: Asynchronní programování často přináší značnou komplikaci práce, proto je doporučován spíše synchronní přístup. Pokud hrozí situace, že synchronní požadavky mohou trvat příliš dlouho nebo hrozí čekání na timeout, potom je lepší provádět veškeré operace v pracovním vlákně (Viz PmSequencer").

 
Více o technologii ADO viz msdn.microsoft.com/en-us/library/ms679836(v=VS.85).aspx, www.w3schools.com/asp/ado_intro.asp nebo www.connectionstrings.com.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice