Beiträge von weltraumkuh

    So ich glaube ich habe es selber anhand msdn rausgefunden:


    SELECT "DAV:visiblecount" FROM ... WHERE ... GROUP BY "DAV:contentclass"


    liefert das dann im ersten Wert des Resultsets die Anzahl zurück. Der 2. Wert ist 404 - aber das ignoriere ich mal:

    XML
    <?xml version="1.0"?>
    <a:multistatus xmlns:b="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/" xmlns:c="xml:" xmlns:a="DAV:">
    <a:contentrange>0-0</a:contentrange><a:response>
    <a:propstat><a:status>HTTP/1.1 200 OK</a:status>
    <a:prop><a:visiblecount b:dt="int">7</a:visiblecount></a:prop>
    </a:propstat>
    <a:propstat><a:status>HTTP/1.1 404 Resource Not Found</a:status><a:prop><a:href/></a:prop></a:propstat></a:response></a:multistatus>


    Noch eine Anmerkung zu meinem Post oben: < und > müssen in HTML-Entities - die ich hier nicht editieren kann - also & l t ; gesetzt werden. Das findet man dann wirklich sehr schwer, wen nes nicht funktioniert.



    Hier der Link: MSDN Getting Item Counts with GROUP BY

    Hallo,


    Ich möchte die Anzahl der Einträge zählen, die eine SQL Bedingung erfüllen, aber meine SQL Query (über WebDAV Search) funktioniert mit einer COUNT Abfrage nicht.


    Beispiel:


    SEARCH /public/Kalender/ HTTP/1.0
    Host: Mein_Host
    Authorization: ....
    Content-type: text/xml
    Depth: 1
    Range: rows=0-1
    Content-Length: 557


    <?xml version='1.0'?><d:searchrequest xmlns:d="DAV:"><d:SQL>SELECT COUNT(*) AS "cnt" FROM "/public/Kalender/" WHERE ( "urn:schemas:calendar:dtstart" < '2006/07/18 00:00:00' AND "urn:schemas:calendar:dtend" > '2006/07/18 00:00:00' OR "urn:schemas:calendar:dtstart" < '2006/07/20 00:00:00' AND "urn:schemas:calendar:dtend" > '2006/07/20 00:00:00' OR "urn:schemas:calendar:dtstart" > '2006/07/18 00:00:00' AND "urn:schemas:calendar:dtend" < '2006/07/20 00:00:00' ) ORDER BY "urn:schemas:calendar:dtstart" ASC </d:SQL></d:searchrequest>



    Zurück bekomme ich dabei immer "Ungültige Anforderung".


    Ein SELECT * hingegen funktioniert ohne Probleme.


    Was mache ich falsch ?


    Danke im Voraus!