Изменений глобально, как мне кажется нужно немного:
1. Бросать исключения при ошибке вместо goto.
2. Сделать курсор совместимым с интерфейсом однонаправленного итератора
из stl.
3. Элементами этого итератора сделать экземпляры структуры сгенерённой
под конкретный select.
Код был бы примерно такой:
[code]
EXEC SQL DECLARE c CURSOR FOR
SELECT * FROM table1;
EXEC SQL OPEN c AS :cur, :end;
for (; cur != end; ++cur)
cout<<cur->fld1<<' '<<cur->fld2<<endl;
[/code]
Мне кажется очень бы удобно получилось. :)
--
Александр Замараев