Immer dann, wenn automatische Masken keine Rolle spielen könne, liefern die Zope-eigenen ZSQL-Methoden eine ideale Ergänzung. Im Prinzip handelt es sich auch hier um einen OR-Mapping-Mechanismus, der eine SQL-Abfrage über die SQL-Connection in ein Zope-Objekt umwandelt. Eine detaillierte Anleitung findet sich in der folgenden Literatur-Liste (Relational Database Connectivity). Hier sei nur auf einige wenige wichtige Objekt-Funktionen hingewiesen, sie sich per Python-Script oder DTML-Methode ausführen lassen:

Angenommen result ist das Ergbnis-Objekt einer ZSQL-Methode. Für die Darstellung des Ergebnisses wählt man in der Regel eine DTML-Methode, in der man dies mit einer in-Iteration die Ergebnisdatensätze druchlaufen und entsprechend dem Spaltennamen ausgeben würde. Mit folgenden Funktionen kann man direkt auf das Ergebnis-Objekt zugreifen:

  • len(result):
    liefert die Anzahl der gefunden Datensätze (int)
  • result.names() :
    liefert alle Spaltennamen der SQL-Ergebnistabelle (list)
  • result.tuples():
    liefert alle Ergebnisdatensätze als Liste von Tupeln (list)
  • result.dictionaries():
    liefert zusätzlich zu jedem Ergebniswert noch den Schlüssel (Spaltennamen); damit ergibt sich eine Liste von Dictionaries (list)
  • result.data_dictionary():
    liefert eine Beschreibung der Datenstruktur (dict)
  • result.asRDB():
    liefert eine Ergebnisdarstellung, wie man sie per SQL-Kommndozeile gwohnt ist.
  • result[0][1]:
    liefert per Indizes einen definierten Wert aus dem „Datengrid“, hier erste Zeile/Datensatz [0] und zweite Spalte [1]
SQL_ZSQLmethod

Beispiel für den Einsatz von Zope zur Verfügung gestellten ZSQL-Objekte; für jede SQL-Interaktion wird ein ZSQL-Objekt konfiguriert. Die Ergebisse lassen sich durch Interationen mit DTML-Methoden darstellen.