← Back to team overview

sslug-teknik team mailing list archive

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