sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #52419
Re: Postgres og Embedded Sql (ecpg)
Jørgen Heesche wrote:
>
> 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
Kan du inte använda cursor?
I så fall kan du hämta ut 1 post, processa den och göra Fetch igen tills du
får end_of_set, dvs tomt recordset.
Jag har aldrig använt Embedded sql, men kör med framgång ett
hemmasnickrat paket för 'emulerad' Dynamic sql (i Ada)
Vill du titta på lite halvobegriplig ada kod mot postgres med
cursor-hantering finns det på
http://home.swipnet.se/lundin/ada_95_tools.html
Paketet fungerar, men det är en gammal version...
/Björn
References