-ZServerRecord *resultSetRecordGet (ZServerInfo *zi, const char *name,
- int num, int *positions)
+ZServerSetSysno *resultSetSysnoGet (ZServerInfo *zi, const char *name,
+ int num, int *positions)
+{
+ ZServerSet *sset;
+ ZServerSetSysno *sr;
+ RSET rset;
+ int num_i = 0;
+ int position = 0;
+ int psysno = 0;
+ struct it_key key;
+ RSFD rfd;
+
+ if (!(sset = resultSetGet (zi, name)))
+ return NULL;
+ if (!(rset = sset->rset))
+ return NULL;
+ logf (LOG_DEBUG, "resultSetRecordGet");
+ sr = xmalloc (sizeof(*sr) * num);
+ rfd = rset_open (rset, 0);
+ while (rset_read (rset, rfd, &key))
+ {
+ if (key.sysno != psysno)
+ {
+ psysno = key.sysno;
+ position++;
+ if (position == positions[num_i])
+ {
+ sr[num_i].sysno = psysno;
+ num_i++;
+ if (++num_i == num)
+ break;
+ }
+ }
+ }
+ rset_close (rset, rfd);
+ while (num_i < num)
+ {
+ sr[num_i].sysno = 0;
+ num_i++;
+ }
+ return sr;
+}
+
+void resultSetRecordDel (ZServerInfo *zi, ZServerRecord *records, int num)
+{
+ int i;
+
+ for (i = 0; i<num; i++)
+ xfree (records[i].buf);
+ xfree (records);
+}
+
+
+#if 0
+ZServerSetSysno *resultSetSysno (ZServerInfo *zi, const char *name,
+ int num, int *positions)