[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: CAP Example READ-1
Maybe we want to use SQL 'CURSOR's? That's how SQL clients do it now for
dynamic binding (as I understand it).
Something like:
1) Define the QUERY by name (MyViewRange + cursor_name):
C: ...
C: BEGIN:VQUERY
C: MAXSIZE:17000000
C: QUERYNAME:MyViewRange
C: QUERY:DECLARE cursor_name CURSOR FOR
C: SELECT DTSTART,DTEND,SUMMARY,UID;
C: FROM VEVENT;
C: WHERE (DTEND >= 19990310T080000Z AND DTSTART <= 19990310T190000Z);
C: ORDERBY (DTSTART ASC, DTEND, UID, SUMMARY)
C: END:VQUERY
C: ...
(note MAXRESULTS was removed)
2) Then later in the same connection and session and perhaps in the same
VCALENDAR mime packet, the CUA could send something like the following
for each row to be retrieved:
C: ...
C: BEGIN:VQUERY
C: QUERYNAME:MyViewRange
C: QUERY:FETCH NEXT FROM cursor_name
C: END:VQUERY
C: ...
Using standard SQL - no extensions needed.
-Doug
-------------------------------------------------------------------
Doug.Royer@Sun.COM http://playground.sun.com/~dougr
801 W. El Camino #131 Work: (650)786-7599
Mountain View, CA 94040 Ham Radio: N6AAW, Aviation: PP-ASEL
> From: "Tony Small (Exchange)" <tonysm@Exchange.Microsoft.com>
> Date: Thu, 18 Mar 1999 17:31:30 -0800
>
> Can we add a RESULTSTART property? For instance:
>
> C: MAXRESULTS:20
> C: RESULTSTART:10
>
> This example would return the results 10 through 30.
> If there is no resultstart, then it's assumed to be zero.
>
> If a CUA can retrieve a specific number of results, it would seem that it
> would also need to be able to retrieve results that follow. We wouldn't
> want to have to retrieve more than needed.
>
> Tony
>
> -----Original Message-----
> From: sman@netscape.com [mailto:sman@netscape.com]
> Sent: Wednesday, March 17, 1999 9:24 AM
> To: CalSched IETF
> Subject: CAP Example READ-1
>
>
> Example READ-1
>
> This example shows how the READ command can be used to read events in a
> particular time range from multiple calendars.
>
>
> C: 10 READ VEVENT relcal2 ://bobo.ex.com/relcal3
> S: 10 2.0 cap://cal.example.com/relcal2
> S: 10 2.2 cap://bobo.ex.com/relcal3
> C: 10 SENDDATA
> S: 10 2.0.1
> C: CONTENT-TYPE: text/calendar; method=read; component=VCOMMAND
> C:
> C: BEGIN:VCALENDAR
> C: VERSION:2.1
> C: METHOD:READ
> C: BEGIN:VCOMMAND
> C: BEGIN:VQUERY
> C: MAXRESULTS:20
> C: MAXSIZE:17000000
> C: QUERYNAME:MyViewRange
> C: QUERY:SELECT (DTSTART,DTEND,SUMMARY,UID);
> C: FROM VEVENT;
> C: WHERE (DTEND >= 19990310T080000Z AND DTSTART <= 19990310T190000Z);
> C: ORDERBY (DTSTART ASC, DTEND, UID, SUMMARY)
> C: END:VQUERY
> C: END:VCOMMAND
> C: END:VCALENDAR
> C: .
> S: 10 2.0 cap://cal.example.com/relcal2
> S: Content-type: text/calendar; Method=RESPONSE; Component=VDATA;
> Optinfo=VERSION 2.1
> S: Content-Transfer-Encoding: 7bit
> S:
> S: BEGIN:VCALENDAR
> S: VERSION:2.1
> S: METHOD:RESPONSE
> S: BEGIN:VDATA
> S: BEGIN:VEVENT
> S: DTSTART:19990310T090000Z
> S: DTEND:19990310T100000Z
> S: UID:1234
> S: SUMMARY:Big time meeting
> S: END:VEVENT
> S: BEGIN:VEVENT
> S: DTSTART:19990310T130000Z
> S: DTEND:19990310T133000Z
> S: UID:5678
> S: SUMMARY:small time meeting
> S: END:VEVENT
> S: END:VDATA
> S: END:VCALENDAR
> S: .
> S: 10 2.0 cap://bobo.ex.com/relcal3
> S: Content-type: text/calendar; Method=RESPONSE; Component=VDATA;
> Optinfo=VERSION 2.1
> S: Content-Transfer-Encoding: 7bit
> S:
> S: BEGIN:VCALENDAR
> S: VERSION:2.1
> S: METHOD:RESPONSE
> S: BEGIN:VDATA
> S: BEGIN:VEVENT
> S: DTSTART:19990310T140000Z
> S: DTEND:19990310T143000Z
> S: UID:1919191
> S: SUMMARY:Summer budget meeting
> S: END:VEVENT
> S: END:VDATA
> S: END:VCALENDAR
> S: .