sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #52418
Postgres og Embedded Sql (ecpg)
Jeg er begyndt at interessere mig lidt for PostgresSql, da den jo følger
med RedHat-linux. Jeg er dog lidt skuffet over Embedded Sql,
fordi der ikke findes select-loop. Jeg er vant til i Ingres at kunne
skrive kode efter flg. mønster:
exec sql select ename, sal, eno
into :ename, :sal, :eno
from employee
order by eno;
exec sql begin;
browse data;
if error condition then
exec sql endselect;
end if;
exec sql end;
Sekvensen "exec sql begin; Progamkode; exec sql end;" præsenterer
en række af gangen fra den foranstående select.
I Postgres skal INTO variablerne erklæres som arrays, der er store nok
til at rumme alle resultater fra selectet; men det er jo en
håbløs opgave. Man kan godt skrive en "exec sql begin; .... exec
sqlend;" sekvens, men det får man ikke noget ud af . Ved at checke
sqlca.sqlcode får man blot at vide, at der er en transaction i gang.
Endvidere ser det ud til at "exec sql end" trigger
en commit, hvilket betyder at man er afskåret fra at se antallet af
resultat-rækker registret i sqlca.sqlerrd[2], idet en commit nulstiller
denne variabel.
Mon der i Postgres Enbedded Sql findes en løsning på dette problem?
Documentationen for Ecpg er desværre så kortfattet at den efter min
mening er næsten værdiløs, ihvert fald for alle, der ikke ved noget om
embedded sql i forvejen.
Med venlig hilsen
Jørgen Heesche
Follow ups