viz : rozhraní objektu PmAdo
Objekt PmAdo zpřístupňuje přímo objekty a metody z technologie ADO. Zejména objekt AdoRecordset (množina záznamů) jako výsledek SQL příkazu SELECT. Tím je zajištěna maximální otevřenost a všechno, co jde pomocí technologie ADO udělat, se dá použít i v systému PROMOTIC.
Objekt PmAdo je vázán na zakoupení licence PmDB. S freeeware verzí PmFree nebo při vývoji aplikace (s vývojovou licencí pro testovací účely) je tato komponenta funkční vždy.
Způsob implementace metod a vlastností (např. AdoRecordset.Update) u všech ADO objektů (např. AdoRecordset, AdoField) 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.
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ř. DbExecute, RsOpen, AdoRecordset.Update. Viz Příklad.
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.
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").