Základy embedded SQL a použití kurzorů

Autor: Pavel Petrek
Seminář: Administrace Oracle

Shrnutí


Ukázka použití hostitelských proměnných

 
    EXEC SQL BEGIN DECLARE SECTION;
     char mujtext[20 + 1];
      short i_mujtext;
    EXEC SQL END DECLARE SECTION;

    ...

    EXEC SQL SELECT pole FROM tabulka INTO :mujtext :i_mujtext WHERE druhepole = 15;

    if (i_mujtext == -1) printf("NULL"); else printf(mujtext);
  

Připojení k databázi


Ukázka použití CONNECT a INSERT pole

 
    EXEC SQL BEGIN DECLARE SECTION;
     char user[20 + 1];
     char pwd[20 + 1];

     float insval[50];
    EXEC SQL END DECLARE SECTION;

    strcpy(user,"novak");
    strcpy(pwd,"krokodyl");

    EXEC SQL CONNECT :user IDENTIFIED BY :pwd;

    ...

    EXEC SQL INSERT INTO tabulka (mojepole) VALUES (:insval);

    EXEC SQL COMMIT WORK RELEASE;
  

Kurzory


Deklarace kurzoru


Otevření / zavření kurzoru


Vyzvednutí záznamu a posun kurzoru


Ošetření varování, chyb, jiných akcí - příkaz WHENEVER


Ukázka použití KURZORU a ošetření posledního řádku

 
    EXEC SQL BEGIN DECLARE SECTION;
     int cislo;
      short i_cislo;
    EXEC SQL END DECLARE SECTION;

    EXEC SQL DECLARE mujkurzor CURSOR FOR
      SELECT pole FROM tabulka WHERE druhepole > 20;

    EXEC SQL OPEN mujkurzor;

    EXEC SQL WHENEVER NOT FOUND DO BREAK;

    while (1)
    {
      EXEC SQL FETCH mujkurzor INTO :cislo :i_cislo;

      if (i_cislo == -1) printf("NULL\n"); else printf("Hodnota %i\n",cislo);
    }

    EXEC SQL CLOSE mujkurzor;
  

Zdroje