Anwendungsbeispiele: Direkter Datenbank-Zugriff
Fehlerbehandlung
{% assign result = 'SELECT * FROM tBestellungEX' | DirectQuery -%}
"{{ result.Query }}" lieferte {% if result.Fehlerhaft %}den Status: {{ result.Fehler }}{% else %}keinen Fehler.{% endif -%}
#=> "SELECT * FROM tBestellungEX" lieferte den Status: Errorcode 7338
#=> "SELECT * FROM tBestellungEX" lieferte keinen Fehler.
In der Variable „result“ wird in dem Fall das Ergebnis aus dem Select-Befehl gespeichert. Das es sich bei dem String um eine Datenbank-Abfrage handelt müssen Sie DotLiquid durch den zusätzlichen Filter „’string‘ | DirectQuery“ begreiflich machen.
Einfache Abfragen
{% assign result = 'SELECT COUNT(*) FROM tBestellung' | DirectQueryScalar -%}
Es gibt {{ result }} Bestellungen.
#=> Es gibt 425 Bestellungen.
Unter einfachen Abfragen verstehen wir ein SQL-Select welches genau ein Ergebnis zurück gibt. Ein solches Ergebnis verarbeiten Sie im Idealfall über den Filter „’string‘ | DirectQueryScalar“, so wird das Ergebnis direkt in der Variable gespeichert und kann weiter verarbeitet werden.
Komplexe Abfragen
1 {% assign result = 'SELECT TOP(4) * FROM tBestellung' | DirectQuery -%}
2 "{{ result.Query }}" lieferte {% if result.Fehlerhaft %}den Status {{ result.Fehler }}{% else %}keinen Fehler.{% endif %}
3 {% for item in result.Daten %}
4 Bestellung: {{ item.cBestellNr }}
5 {% capture itemquery %}SELECT * FROM tbestellpos WHERE tBestellung_kBestellung = {{ item.kBestellung | SqlEscape }}{% endcapture -%}
6 {% assign result2 = itemquery | DirectQuery -%}
7 {% for item2 in result2.Daten -%}
8 {{ item2.nAnzahl | Nummer: 'N2' }}x {{ item2.cString }}
9 {% endfor -%}
10 {% endfor -%}
Das Ergebnis hiervon könnte so aussehen:
"SELECT TOP(4) * FROM tBestellung" lieferte keinen Fehler.
Bestellung: AU0920121
1,00x Adidas Frankreich Home Trikot FFF France JSY SS
1,00x Adidas Frankreich Fleece Pullover ClimaWarm® FFF
1,00x Adidas Frankreich Short Home FFF France Hose weiß
1,00x Pauschale Versandkosten
1,00x Nachnahmegebühr
Bestellung: AU0920122
1,00x Polo Ralph Lauren Big Pony gestreift Poloshirt dunkelblau/grün
Bestellung: AU0920123
1,00x Adidas Beckenbauer Tracktop weiß Jacke Firebird
1,00x Pauschale Versandkosten
Bestellung: AU0920124
1,00x Adidas Standup Rollkragen Pullover rot
1,00x Adidas Windbreaker Herren Windjacke schwarz Laufjacke
1,00x Versandkosten nach Zonen