-## range of u is users
-## retrieve (login = u.#login, uid = u.#uid, shell = u.#shell,
-## fullname = u.#fullname, oa = u.office_addr,
-## nickname = u.#nickname,
-## op = u.office_phone, hp = u.home_phone)
-## where u.status = 1 {
- strtrim(login);
- strtrim(fullname);
- strtrim(nickname);
- strtrim(oa);
- strtrim(op);
- strtrim(hp);
- strtrim(shell);
- fprintf(out, "%s:*:%d:101:%s,%s,%s,%s,%s:/mit/%s:%s\n",
- login, uid, fullname, nickname, oa, op, hp, login, shell);
-## }
-## inquire_equel(error = "errorno")
- if (error) {
- fprintf(out, "Ingres error %d\n", error);
- exit(SMS_INGRES_ERR);
+ EXEC SQL DECLARE x CURSOR FOR SELECT
+ login, uid, shell, fullname, office_addr, nickname,
+ office_phone, home_phone
+ FROM users WHERE status = 1;
+ EXEC SQL OPEN x;
+ while (1) {
+ EXEC SQL FETCH x INTO :login, :uid, :shell, :fullname, :oa, :nickname,
+ :op, :hp;
+ if (sqlca.sqlcode != 0) break;
+ strtrim(login);
+ strtrim(fullname);
+ strtrim(nickname);
+ strtrim(oa);
+ strtrim(op);
+ strtrim(hp);
+ strtrim(shell);
+ fprintf(out, "%s:*:%d:101:%s,%s,%s,%s,%s:/mit/%s:%s\n",
+ login, uid, fullname, nickname, oa, op, hp, login, shell);