Přímé SQL dotazy do databáze

V rámci hlavního tagu požadavku sql-query se může vyskytnout více než jeden dotaz – tj. více než jeden tag select (podobně jako je tomu u požadvaků get-document a jeho potomků document). Dotaz tedy může mít i tuto podobu:

example
<sql-query>
<select type="kontakt" user="" setting="">
SELECT pdk, ... FROM kntkt, ... WHERE ...
</select>
<select type="klient" user="" setting="">
SELECT pdk, ... FROM klnt, ... WHERE ...
</select>
</sql-query>

Výsledek dotazu má formu tagu sql-query-result jako potomka kmene obálky response:

<sql-query-result>
<result type="kontakt">
<row pdk="1234" vtype="" E100234=".." .../>
...
</result>
</sql-query-result>

V rámci hlavního tagu požadavku sql-query se může vyskytnout více než jeden dotaz – tj. více než jeden tag select (podobně jako je tomu u požadvaků get-document a jeho potomků document). Dotaz tedy může mít i tuto podobu:

syntax
<sql-query>
<select type="kontakt" user="" setting="">
SELECT pdk, ... FROM kntkt, ... WHERE ...
</select>
<select type="klient" user="" setting="">
SELECT pdk, ... FROM klnt, ... WHERE ...
</select>
</sql-query>

Výsledek takového dotazu bude kopírovat jednotlivé dílčí dotazy a response bude obsahovat přibližně toto:

<sql-query-result>
<result type="kontakt">
<row pdk="1234", .../>
...
</result>
<result type="klient">
<row pdk="5678", .../>
...
</result>
</sql-query-result>

Identifikace chyb

Vzhledem k tomu, že aplikační server flexideo požadavky do databáze pouze předává a neanalizuje, jsou veškeré potenciální chyby rovněž předávány. Pokud tedy předaný dotaz obsahuje například syntaktickou chybu, vrací server v response přibližně toto:

<sql-query-result>
<error number="1000080" severity="warning"
detail="V provadenem databazovem dotazu doslo k chybe.
(NATIVE='9c' STATE='42000' DESCR='[Microsoft][ODBC SQL Server Driver][SQL Server]
Incorrect syntax near the keyword 'as'.' ADDMSG='
SELECT TOP 1000 pdk as 'pdk', ... FROM ...
WHERE ...
FOR XML RAW')"/>
</sql-query-result>

Podobně z hlediska struktury vraceného XML vypadají stejně nejen chyby syntaktické, ale i veškeré další, které SQL server identifikuje. Je-li v požadavku více tagů select a chyba je pouze např. v jednom z nich, pak ostatní vrací požadovaná data v potomcích result s identifikací atributem type a na místo tagu result chybného dotazu je vracen výše uvedený tag error.


Identifikace chyb při ukládání XML dokumentůIdentifikace chyb při ukládání XML dokumentůPříklad požadavků na pseudo-dokumentyUkládání pseudo dokumentůEvidence historie změn dokumentůPříklad pro rozpracované dokuementyPřímé SQL dotazy do databázePříklady práce se souboryPříklad XML nastaveníPříklad seznamu naplánovaných úlohPříklad naplánování úlohyPříklad odložení požadavku do-requestPožadavek registerPožadavek register-listPožadavek register-delPříklad transformPříklad spuštění akcePříklad spouštění akcí pomocí zpráv