Учебно-справочное пособие по СУБД Informix


Курсоры - часть 2


Поэтому можно проверять значение status после оператора FETCH и если оно равно 100, то прекратить чтение строк из опустевшего курсора.
В данном примере пользователь сам должен ввести условия, по которым будут найдены строки в таблице ceh. Он, например, может ввести: "nomerceh>15 and nomerceh<23". Программа прицепит это условие к строке, в которой записан SELECT оператор, получит строчку "SELECT * FROM ceh WHERE nomerceh>15 and nomerceh<23", изготовит из нее оператор, и для этого изготовленного оператора SELECT объявит курсор. Дальше действия аналогичны предыдущему примеру. DEFINE z2 ARRAY[100] OF RECORD LIKE ceh.*, counter int, simw char(200) PROMPT "допишите оператор SELECT * FROM ceh WHERE " FOR simw IF LENGTH(simw)=0 THEN LET simw="TRUE" END IF LET simw="SELECT * FROM ceh WHERE ", simw CLIPPED PREPARE st2 FROM simw DECLARE cs2 FOR st2

let counter=1 FOREACH cs2 INTO z2[counter].* LET counter=counter+1 IF counter>100 THEN EXIT FOREACH END IF END FOREACH LET counter=counter-1 MESSAGE "В массив z2 прочитано ",counter, " записей"




Начало  Назад  Вперед