2.7. Alkalmazás programozói interfészek (API)

2.7.1. PHP

2.7.1.1. Kapcsolat felvétel, adatbázis kiválasztás

2.7.1.1.1. Kapcsolódjon MySQL adatbáziskezelőhöz!
   <?php
   
   $conn = mysql_connect("localhost", "username","password");
   if (!$conn)
   {
           die("Kapcsolódási hiba: ".mysql_error());
   }
   
   ?>
2.7.1.1.2. Kapcsolódjon Oracle adatbáziskezelőhöz!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['text'];
           }
   ?>
2.7.1.1.3. Kapcsolódjon a minta adatbázishoz, amelyet MySQL adatbáziskezelő kezel!
   <?php
   
   $conn = mysql_connect("localhost", "username","password");
   if (!$conn)
   {
           die("Kapcsolódási hiba: ".mysql_error());
   }
   mysql_select_db("minta",$conn);
   
   ?>
2.7.1.1.4. Kapcsolódjon a minta adatbázishoz, amelyet Oracle adatbáziskezelő kezel!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['text'];
           }
   ?>

2.7.1.2. DML műveletek

2.7.1.2.1. Vigyen fel egy új vevőt MySQL DBMS-t használva!
   <?php
   
       $conn = mysql_connect("localhost", "username","password");
       if (!$conn)
       {
           die("Kapcsolódási hiba: ".mysql_error());
       }
       mysql_select_db("minta",$conn) or die(mysql_error());
   
       $query="INSERT INTO vevo VALUES ( 22334455, 'Bela', 'bela@hotmail.com', 06304445566, 3154, 'Szeged', 'Kossuth', 42 )";
   
       mysql_query($query) or die(mysql_error());
    
       echo "Vevő felvitele megtörtént!";
   
   ?>
2.7.1.2.2. Vigyen fel egy új vevőt Oracle DBMS-t használva!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, "INSERT INTO vevo VALUES ( 11223344, 'Agoston', 'agoston@freemail.hu', 0637222333, 3000, 'Hatvan', 'Valahol', 21 )");
           if (!$stmt) 
           {
                   oci_execute($stmt);
                   oci_commit($conn);
                   oci_close();
                   echo "Vevő felvitele megtörtént.";
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
           }
   ?>
2.7.1.2.3. Módosítson egy szolgátatót MySQL DBMS-t használva!
   <?php
   
      $conn = mysql_connect("localhost", "username","password");
      if (!$conn)
      {
            die("Kapcsolódási hiba: ".mysql_error());
      }
      mysql_select_db("minta",$conn) or die(mysql_error());
   
      $query="UPDATE `szolgaltato` SET `v` = 'Miskolc' WHERE `szolgaltato`.`cegazonosito` = 'ABC123'";
    
      mysql_query($query) or die(mysql_error());
      echo "Szolgáltató módosítása megtörtént!";
   
   ?>
2.7.1.2.4. Módosítson egy szolgáltatót Oracle DBMS-t használva!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, "UPDATE `szolgaltato` SET `v` = 'Miskolc'  WHERE `szolgaltato`.`cegazonosito` = 'ABC123'");
           if (!$stmt) 
           {
                   oci_execute($stmt);
                   oci_commit($conn);
                   oci_close();
                   echo "Szolgáltató módosítása megtörtént.";
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
           }
   ?>
2.7.1.2.5. Töröljön egy mobiltelefont MySQL DBMS-t használva!
   <?php
   
      $conn = mysql_connect("localhost", "username","password");
      if (!$conn)
      {
           die("Kapcsolódási hiba: ".mysql_error());
      }
      mysql_select_db("minta",$conn) or die(mysql_error());
      $query="DELETE FROM `mobiltelefon` WHERE `cikkszam` = '1234ABC567'";
      mysql_query($query) or die(mysql_error());
      echo "Mobiltelefon törlése megtörtént!";
   
   ?>
2.7.1.2.6. Töröljön egy mobiltelefont Oracle DBMS-t használva!
    <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, "DELETE FROM mobiltelefon WHERE 
          cikkszam = '1234ABC567'");
           if (!$stmt) 
           {
                   oci_execute($stmt);
                   oci_commit($conn);
                   oci_close();
                   echo "Mobiltelefon törlése megtörtént.";
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
           }
   ?>
2.7.1.2.7. Vigyen fel paraméteresen egy vevőt MySQL DBMS-t használva!
   <?php
   
   $conn = new mysqli("localhost", "username","password", "minta");
   if (mysqli_connect_errno())
   {
           die("Kapcsolódási hiba: ".mysqli_connect_error());
   }
   
   if ($stmt = $conn->prepare("INSERT INTO vevo VALUES ( ?,?,?,?,?,?,?,? )")) 
   {
   $stmt->bind_param('issiissi',$uszam,$nev,$email,$tel,$irsz,$varos,$utca,$hsz);
           
           $uszam = 22334455;
           $nev = 'Bela';
           $email = 'bela@hotmail.com';
           $tel = 06304445566;
           $irsz = 3154;
           $varos = 'Szeged';
           $utca = 'Kossuth';
           $hsz = 42;
   
           $stmt->execute();
           
           echo "Vevő felvitele megtörtént!\n";        
           
           $stmt->close();
   }
   else
   {
           echo "Utasítás hiba: ".$conn->error);
   }
   
   ?>
2.7.1.2.8. Vigyen fel paraméteresen egy vevőt Oracle DBMS-t használva!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, "INSERT INTO vevo VALUES ( :uszam, 
          :nev, :email, :tel, :irsz, :varos, :utca, :hsz)");
           if (!$stmt) 
           {
                   $uszam = 22334455;
                   $nev = 'Bela';
                   $email = 'bela@hotmail.com';
                   $tel = 06304445566;
                   $irsz = 3154;
                   $varos = 'Szeged';
                   $utca = 'Kossuth';
                   $hsz = 42;
   
                   oci_bind_by_name($stmt,":uszam",$uszam);
                   oci_bind_by_name($stmt,":nev",$nev);
                   oci_bind_by_name($stmt,":email",$email);
                   oci_bind_by_name($stmt,":tel",$tel);
                   oci_bind_by_name($stmt,":irsz",$irsz);
                   oci_bind_by_name($stmt,":varos",$varos);
                   oci_bind_by_name($stmt,":utca",$utca);
                   oci_bind_by_name($stmt,":hsz",$hsz);
                   
                   oci_execute($stmt, OCI_DEFAULT);
                   oci_commit($conn);
                   oci_free_statement($stmt);
                   echo "Vevő felvitele megtörtént.";
                   oci_close();
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
           }
   ?>
2.7.1.2.9. Módosítson paraméteresen egy szolgátatót MySQL DBMS-t használva!
   <?php
   
   $conn = new mysqli("localhost", "username","password", "minta");
   if (mysqli_connect_errno())
   {
           die("Kapcsolódási hiba: ".mysqli_connect_error());
   }
   
   if ($stmt = $conn->prepare("UPDATE szolgaltato SET v = ? WHERE cegazonosito = ?")) 
   {
           $stmt->bind_param('ss',$varos,$cegazon);
           
           $varos = 'Szeged';
           $cegazon = 'ABC123';
           
           $stmt->execute();
           
           echo "Szolgáltató módosítása megtörtént!\n";        
           
           $stmt->close();
   }
   else
   {
           echo "Utasítás hiba: ".$conn->error);
   }
   
   ?>
2.7.1.2.10. Módosítson paramétersen egy szolgáltatót Oracle DBMS-t használva!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, "UPDATE szolgaltato SET v = :varos WHERE  cegazonosito = :cegazon");
           if (!$stmt) 
           {
                   $varos = 'Szeged';
                   $cegazon = 'ABC123';
   
                   oci_bind_by_name($stmt,":varos",$varos);
                   oci_bind_by_name($stmt,":cegazon",$cegazon);
                   
                   oci_execute($stmt, OCI_DEFAULT);
                   oci_commit($conn);
                   oci_free_statement($stmt);
                   echo "Szolgáltató módosítása megtörtént.";
                   oci_close();
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
           }
   ?>
2.7.1.2.11. Töröljön paraméteresen egy mobiltelefont MySQL DBMS-t használva!
   <?php
   
   $conn = new mysqli("localhost", "username","password", "minta");
   if (mysqli_connect_errno())
   {
           die("Kapcsolódási hiba: ".mysqli_connect_error());
   }
   
   if ($stmt = $conn->prepare("DELETE FROM mobiltelefon WHERE cikkszam = ?")) 
   {
           $stmt->bind_param('s',$cikkszam);
           
           
           $cikkszam = '1234ABC567';
           
           $stmt->execute();
           
           echo "Mobiltelefon törlése megtörtént!\n";        
           
           $stmt->close();
   }
   else
   {
           echo "Utasítás hiba: ".$conn->error);
   }
   
   ?>
2.7.1.2.12. Töröljön paraméteresen egy mobiltelefont Oracle DBMS-t használva!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, "DELETE FROM mobiltelefon
              WHERE cikkszam = :cikkszam");
           if (!$stmt) 
           {
                   $cikkszam = '1234ABC567';
   
                   oci_bind_by_name($stmt,":cikkszam",$cikkszam);
                   
                   oci_execute($stmt, OCI_DEFAULT);
                   oci_commit($conn);
                   oci_free_statement($stmt);
                   echo "Mobiltelefon törlése megtörtént.";
                   oci_close();
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
           }
   ?>

2.7.1.3. Lekérdezések, kurzor-kezelés

2.7.1.3.1. Listázza ki a vevőket a képernyőre MySQL DBMS-t használva!
   <?php
   
   $conn = mysql_connect("localhost", "username","password");
   if (!$conn)
   {
           die("Kapcsolódási hiba: ".mysql_error());
   }
   mysql_select_db("minta",$conn) or die(mysql_error());
   $query="select * from vevo";
   $result = mysql_query($query) or die(mysql_error());
   while ($sor = mysql_fetch_row($result)) 
   {
           echo $sor['ugyfelszam'].':'.
                    $sor['nev'].':'.
                    $sor['e_mail'].':'.
                    $sor['tel'].':'.
                    $sor['i'].':'.
                    $sor['v'].':'.
                    $sor['u'].':'.
                    $sor['hsz'].'\n';
   }
   
   ?>
2.7.1.3.2. Listázza ki a vevőket a képernyőre Oracle DBMS-t használva!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, "SELECT * FROM vevo");
           if (!$stmt) 
           {                
                   oci_execute($stmt, OCI_DEFAULT);
                   while (oci_fetch($stmt)) 
                   {
                           $uszam = oci_result($stmt, "ugyfelszam");
                           $nev = oci_result($stmt, "nev");
                           $email = oci_result($stmt, "e_mail");
                           $tel = oci_result($stmt, "tel");
                           $irsz = oci_result($stmt, "i");
                           $varos = oci_result($stmt, "v");
                           $utca = oci_result($stmt, "u");
                           $hsz = oci_result($stmt, "hsz");
                           
                           echo $uszam.":".$nev.":".$email.":".$tel.":".$irsz.":".
                                   $varos.":".$utca.":".$hsz."\n";
                   }
                   oci_free_statement($stmt);
                   oci_close();
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
           }
   ?>
2.7.1.3.3. Listázza ki a Miskolci szolgáltatókat a képernyőre MySQL DBMS-t használva! A várost paraméteresen adja meg!
   <?php
   
   $conn = new mysqli("localhost", "username","password", "minta");
   if (mysqli_connect_errno())
   {
           die("Kapcsolódási hiba: ".mysqli_connect_error());
   }
   
   if ($stmt = $conn->prepare("SELECT * FROM szolgaltato WHERE v = ?")) 
   {
           $stmt->bind_param('s',$varos);
           
           $varos = 'Miskolc';
           
           $stmt->execute();
           
           $stmt->bind_result($cegazon,$nev,$irsz,$varos,$utca,$hsz);
           
           while($stmt->fetch())
           {
                   echo $cegazon.':'.$nev.':'.$irsz.':'.
                   $varos.':'.$utca.':'.$hsz.'\n';
           }
           
           $stmt->close();
   }
   else
   {
           echo "Utasítás hiba: ".$conn->error);
   }
   
   ?>
2.7.1.3.4. Listázza ki a Miskolci szolgáltatókat a képernyőre Oracle DBMS-t használva! A várost paraméteresen adja meg!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, "SELECT * FROM szolgaltato WHERE v = :varos");
           if (!$stmt) 
           {                
                   $varos = 'Miskolc';
                   
                   oci_bind_by_name($stmt,":varos",$varos);
                   
                   oci_execute($stmt, OCI_DEFAULT);
                   
                   while (oci_fetch($stmt)) 
                   {
                           $cegazon = oci_result($stmt, "cegazonosito");
                           $nev = oci_result($stmt, "nev");
                           $irsz = oci_result($stmt, "i");
                           $varos = oci_result($stmt, "v");
                           $utca = oci_result($stmt, "u");
                           $hsz = oci_result($stmt, "hsz");
                           
                           echo $cegazon.":".$nev.":".$irsz.":".$varos.":".$utca.":".$hsz."\n";
                   }
                   oci_free_statement($stmt);
                   oci_close();
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
   ?>

2.7.1.4. Tárolt eljárás-, függvényhívások

2.7.1.4.1. Vigyen fel egy vevőt a vevo csomag megfelelő tárolt eljárásával Oracle-ben!
  <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, 
   "begin 
   vevo_csomag.insert_vevo(:uszam, :nev, :email, :tel, :irsz, 
   :varos, :utca, :hsz); 
    end;");
           if (!$stmt) 
           {
                   $uszam = 22334455;
                   $nev = 'Bela';
                   $email = 'bela@hotmail.com';
                   $tel = 06304445566;
                   $irsz = 3154;
                   $varos = 'Szeged';
                   $utca = 'Kossuth';
                   $hsz = 42;
   
                   oci_bind_by_name($stmt,":uszam",$uszam);
                   oci_bind_by_name($stmt,":nev",$nev);
                   oci_bind_by_name($stmt,":email",$email);
                   oci_bind_by_name($stmt,":tel",$tel);
                   oci_bind_by_name($stmt,":irsz",$irsz);
                   oci_bind_by_name($stmt,":varos",$varos);
                   oci_bind_by_name($stmt,":utca",$utca);
                   oci_bind_by_name($stmt,":hsz",$hsz);
                   
                   oci_execute($stmt, OCI_DEFAULT);
                   oci_commit($conn);
                   oci_free_statement($stmt);
                   echo "Vevő felvitele megtörtént.";
                   oci_close();
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
           }
   ?>
2.7.1.4.2. Töröljön egy szolgáltatót paraméteresen a szolgáltató csomag megfelelő tárolt eljárását meghívva Oracle-ben!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, 
             "begin szolgaltato_csomag.delete_szolgaltato(:cegazon); end;");
           if (!$stmt) 
           {
                   $cegazon = 'ABC123';
   
                   oci_bind_by_name($stmt,":cegazon",$cegazon);
                   
                   oci_execute($stmt, OCI_DEFAULT);
                   oci_commit($conn);
                   oci_free_statement($stmt);
                   echo "Szolgáltató törlés megtörtént.";
                   oci_close();
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
           }
   ?>
2.7.1.4.3. Módosítson egy mobiltelefont a mobiltelefon csomag megfelelő eljárását meghívva Oracle-ben!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, 
            "begin mobiltelefon_csomag.update_mobiltelefon(:cikkszam,:leiras,:ar,:tipus); 
             end;");
           if (!$stmt) 
           {
                   $cikkszam = '1234ABC567';
                   $leiras = 'kivalo';
                   $ar = 100000;
                   $tipus = 'Nokia';
   
                   oci_bind_by_name($stmt,":cikkszam",$cikkszam);
                   oci_bind_by_name($stmt,":leiras",$leiras);
                   oci_bind_by_name($stmt,":ar",$ar);
                   oci_bind_by_name($stmt,":tipus",$tipus);
                   
                   oci_execute($stmt, OCI_DEFAULT);
                   oci_commit($conn);
                   oci_free_statement($stmt);
                   echo "Mobiltelefon módosítása megtörtént.";
                   oci_close();
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
           }
   ?>
2.7.1.4.4. Hívja meg az elégedett tárolt függényt majd írja ki az eredményt képernyőre!
   <?php
           $conn = oci_connect('username','password','localhost/XE');
           if (!$conn)
           {
                   $err = oci_error();
                   echo 'Connect error: '.$err['message'];
           }
           $stmt = oci_parse($conn, 
             "select elegedett(:cegazon) EREDMENY from dual");
           if (!$stmt) 
           {
                   $cegazon = 'ABS123';
                   
                   oci_bind_by_name($stmt,":cegazon",$cegazon);
                   oci_execute($stmt, OCI_DEFAULT);
                   oci_fetch($stmt);
                   
                   $eredmeny = oci_result($stmt,"EREDMENY");
                   
                   echo "A ".$cegazon." azonosítójú szolgáltatóval való 
                   elegedettség értéke: ".$eredmeny;
                   
                   oci_free_statement($stmt);
                   oci_close();
           }
           else
           {
                   $err = oci_error($stmt);
                   echo "Hiba: ".$err['message'];
           }
   ?>

2.7.2. SQLJ

2.7.2.1. Készítsen egy induló SQLJ alkalmazást, amely visszaírja az aktuális adatbázis felhasználó nevét

   package KL_test;
   import java.sql.*;
   import oracle.sqlj.runtime.*;
   import sqlj.runtime.*;
   import sqlj.runtime.ref.*;
   public class Sqlj2 {
   
      public Sqlj2() {
      }
   
      public static void main(String[] args) {
         Sqlj2 fo = new Sqlj2();
         fo.proba1();
      }
      public void proba1() {
        String current_user;
        try {
           Oracle.connect(
           "jdbc:oracle:thin:@localhost:1521:xe",
           "proba",
           "proba"
           );
   
           #sql { SELECT user INTO :current_user FROM dual };
   
           System.out.println("user=".concat(current_user));
        } catch(SQLException e ) {
            System.err.println("SQLException " + e);
        }
      }
   }

2.7.2.2. Készítsen egy SQLJ alkalmazást, amely a paraméterként adott kódhoz visszaírja a termékek nevét, és mennyiségi egységét a a TERMEK[ tkod, tnev, megyseg] táblából

   package KL_test;
   import java.sql.*;
   import oracle.sqlj.runtime.*;
   import sqlj.runtime.*;
   import sqlj.runtime.ref.*;
   
   public class Sqlj2 {
      public Sqlj2() {
      }
   
      public static void main(String[] args) {
         Sqlj2 fo = new Sqlj2();
         fo.proba1(2);
      }
      
      public void proba1(int current_tkod) {
         String current_tnev, current_megyseg;
         try {
            Oracle.connect(
            "jdbc:oracle:thin:@localhost:1521:xe",
            "proba",
            "proba"
         );
   
         #sql { SELECT tnev, megyseg  
            INTO :current_tnev,:current_megyseg FROM termek}
   
         System.out.println("termek=".concat(current_tnev).
         concat(" megyseg=").} catch(SQLException e ) {
         System.err.println("SQLException " + e);
      }
   }

2.7.2.3. Készítsen SQLJ-ben egy metódust, amely a paraméterként kapott kód, név és megység adatokkal felvisz egy új rekordot a TERMEKR táblába.

   package KL_test;
   import java.sql.*;
   import oracle.sqlj.runtime.*;
   import sqlj.runtime.*;
   import sqlj.runtime.ref.*;
   
   public class Sqlj2 {
      public Sqlj2() {
      }
   
      public static void main(String[] args) {
        Sqlj2 fo = new Sqlj2();
        fo.proba1(8,"levesbetét","csomag");
      }
   
      public void proba1(int current_tkod, String current_tnev,  
      String current_megyseg)
           …
      try {
        Oracle.connect(
        "jdbc:oracle:thin:@localhost:1521:xe",
        "proba",
        "proba"
      );
   
      #sql { INSERT INTO termek(tkod,tnev, megyseg) VALUES   
         ( :current_tkod, #sql { COMMIT };
   
      } catch(SQLException e ) {
        System.err.println("SQLException " + e);
      }
   }

2.7.2.4. Készítsen SQLJ-ben egy metódust, amely a paraméterként kapott név és megység adatokkal felvisz egy új rekordot a TERMEKR táblába. A következő szabad kód értéket egy SELECT lekérdezéssel határozza meg. A maximális tkod meghatározása előtt zárolja a táblát, nehogy más közben hasonló olvasást végezzen

   package KL_test;
   import java.sql.*;
   import oracle.sqlj.runtime.*;
   import sqlj.runtime.*;
   import sqlj.runtime.ref.*;
   
   public class Sqlj2 {
     
   public Sqlj2() {
   }
   
   public static void main(String[] args) {
      Sqlj2 fo = new Sqlj2();
      fo.proba1("sajt","kg");
   }
   
   public void proba1( String current_tnev, String current_megyseg) {
      int current_tkod;
      try {
         Oracle.connect(
         "jdbc:oracle:thin:@localhost:1521:xe",
         "proba",
         "proba"
         );
         #sql { LOCK TABLE termek IN EXCLUSIVE MODE };
         #sql { SELECT max(tkod) INTO :current_tkod FROM termek };
         current_tkod++;
         #sql { INSERT INTO termek(tkod,tnev, megyseg) 
            VALUES  ( :current_tkod, #sql { COMMIT };
      } catch(SQLException e ) {
         System.err.println("SQLException " + e);
      }
   }
   }

2.7.2.5. Késztítsen egy SQLJ programot, amely a paramétereként kapott szöveges állomány tartalmával feltölti a TERMEKR táblát. Az állomány egy sora: név, egységár alakú.

   package KL_test;
   import java.sql.*;
   import oracle.sqlj.runtime.*;
   import java.io.BufferedReader;
   import java.io.File;
   import java.io.FileReader;
   import java.io.FileNotFoundException;
   import java.io.IOException;
   import sqlj.runtime.*;
   import sqlj.runtime.ref.*;
   
   public class Sqlj2 {
   
   public Sqlj2() {
   }
   
   public static void main(String[] args) {
      Sqlj2 fo = new Sqlj2();
       fo.proba1("H:\\PROJEKTEK\\TAMOP_JEGYZETEK\\ADATBAZIS_P\\adatok.txt");
   }
   
   public void proba1( String filenev) {
      int current_tkod;
      String text = null;
      String current_tnev;
      String current_megyseg;
      int db;
      try {
        Oracle.connect(
        "jdbc:oracle:thin:@localhost:1521:xe",
        "proba",
        "proba"
        );
        File file = new File(filenev);
        BufferedReader reader = null;
        reader = new BufferedReader(new FileReader(file));
        #sql { LOCK TABLE termek IN EXCLUSIVE MODE };
        #sql { SELECT max(tkod) INTO :current_tkod FROM termek };
        db = 0;
        while ((text = reader.readLine()) != null) {
           current_tnev = text.substring(0,text.indexOf(','));
           current_megyseg = text.substring(text.indexOf(',')+1);
           current_tkod++; db++;
           #sql { INSERT INTO termek(tkod,tnev, megyseg) 
             VALUES ( :current_tkod, }
        )
        reader.close();
        System.out.println ("lementett rekordok darabszáma :" + 
        String.valueOf(#sql { COMMIT };
      } catch(SQLException e ) {
        System.err.println("SQLException " + e);
      } catch(IOException e) {
        System.err.println("exception=" + e);
      }
   }
         }

2.7.2.6. Készítsen SQLJ programot, amely kilistázza a termékek nevét és a mennyiségiegységét név szerinti sorrendben. A megoldásban alkalmazza az iterátor mechanizmust.

   package KL_test;
   import java.sql.*;
   import oracle.sqlj.runtime.*;
   import java.io.IOException;
   import sqlj.runtime.*;
   import sqlj.runtime.ref.*;
   
   public class Sqlj2 {
   
   public Sqlj2() {
   }
   
   public static void main(String[] args) {
      Sqlj2 fo = new Sqlj2();
      fo.proba1();
   }
   
   #sql private static iterator ProbaIter(
      String tnev,
      String megyseg
   );
   
   public void proba1( ) {
      int current_tkod;
      String current_tnev;
      String current_megyseg;
      int db;
      ProbaIter piter;
      try {
         Oracle.connect(
         "jdbc:oracle:thin:@localhost:1521:xe",
         "proba",
         "proba"
         );
         #sql piter = { SELECT tnev, megyseg FROM termek ORDER BY 1 };
         while (piter.next()) {
           System.out.println("termek=".concat(piter.tnev()).
           concat("  megyseg=").concat(piter.megyseg));
        }
        piter.close();
        #sql { COMMIT };
      } catch(SQLException e ) {
         System.err.println("SQLException " + e);
      }
   }
   }

2.7.2.7. Oldja meg az előző feladatot pozicionálgható iterárot segítségével, úgy, hogy a termékek nevei csökkenő sorrendben jelenjenek meg.

   package KL_test;
   import java.sql.*;
   import oracle.sqlj.runtime.*;
   import java.io.BufferedReader;
   import java.io.File;
   import java.io.FileReader;
   import java.io.FileNotFoundException;
   import java.io.IOException;
   import sqlj.runtime.*;
   import sqlj.runtime.ref.*;
   
   public class Sqlj2 {
   
   public Sqlj2() {
   }
   
   public static void main(String[] args) {
      Sqlj2 fo = new Sqlj2();
      fo.proba1();
   }
   
   public void proba1() {
      int current_tkod;
      String text = null;
      String current_tnev;
      String current_megyseg;
      int db;
      
      try {
         sqlj.runtime.ResultSetIterator piter;
         Oracle.connect(
         "jdbc:oracle:thin:@localhost:1521:xe",
         "proba",
         "proba"
         );
         #sql piter = { SELECT tnev, megyseg FROM termek ORDER BY 1 DESC };
         while (piter.next()) {
            #sql { FETCH CURRENT FROM :piter  
               INTO :current_tnev, :current_megyseg };
            System.out.println("termek=".concat(current_tnev).
               concat(" megyseg=").concat(current_megyseg));
         }
         piter.close();
         #sql { COMMIT };
      } catch(SQLException e ) {
         System.err.println("SQLException " + e);
      }
   }
           }

2.7.3. JDBC

2.7.3.1. Kapcsolat felvétel, driver betöltés

2.7.3.1.1. Regisztrálja a megfelelő JDBC drivert az Oracle DBMS-hez!
      try {
          //Az Oracle JDBC driver regisztrálása
          DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());                
          
          //Sikeres betöltés kiírása a standard outputra
          System.out.println("A driver sikeresen betöltve.");                                
          
          //A regisztráció hibája miatt dobódott kivétel elkapása
     } catch (Exception ex) {                                                                
     
         //A kivétel kiíratása a standard outputra
         System.out.println("Sikertelen driver betöltés, a hiba oka: " + ex.toString());    
     }
2.7.3.1.2. Töltse be a megfelelő drivert az Oracle DBMS-hez, majd kapcsolódjon az adatbázishoz!
     try {
          //Az Oracle JDBC driver betöltése
          Class.forName("oracle.jdbc.driver.OracleDriver");                            
          
          //Kapcsolat létrehozása az adatbázissal              
          Connection c =
          DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");    
          
          //Sikeres kapcsolódás kiíratása
          System.out.println("Sikeres kapcsolódás");                                                          
          
          //A driver belöltés és/vagy a kapcsolatvelvétel közben dobódott kivétel elkapása
     } catch (Exception ex) {        
     
         //A driver belöltés és/vagy a kapcsolatvelvétel közben dobódott kivétel szövegének kiíratása                                                                    
         System.out.println("Sikertelen kapcsolódás, a hiba oka: " + ex.toString());                
     }
2.7.3.1.3. Paraméterezze a 7.3.1/2. feladat kapcsolódásában a felhasználónevet és a jelszót!
     try {
          
          //Az Oracle JDBC driver betöltése
          Class.forName("oracle.jdbc.driver.OracleDriver");                                                                      
          
          //A felhasználónév megadása
          String usrnev = "fg60";                                                                                                
          
          //A jelszó megadása
          String pwd = "qwert";                                                                                                  
          
          //Kapcsolatfelvétel az adatbázissal és a paraméterek beszúrása
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:" + usrnev + "/" + pwd + "@localhost/XE");                
          
          //Sikeres kapcsolat kiírása
          System.out.println("Sikeres kapcsolódás");                                                                          
     }
     
     // A driver belöltés és/vagy a kapcsolatvelvétel közben dobódott
     // kivétel elkapása
     catch (Exception ex) {                          
         // A driver belöltés és/vagy a kapcsolatvelvétel közben dobódott
         // kivétel szövegének kiírása                                                  
         System.out.println("Sikertelen kapcsolódás, a hiba oka: " + ex.toString());                                        
     }

2.7.3.2. Statikus DML utasítások – Statement

2.7.3.2.1. Szúrjon be egy rekordot a vevő táblába!
     try{
          
          //Driver betöltés
          Class.forName("oracle.jdbc.driver.OracleDriver");                                                                                                  
          
          //Kapcsolatfelvétel az adatbázissal
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");                                                            
          
          //Statement objektum létrehozása, hogy parancsot küldhessünk az
          //adatbázisnak
          Statement stmt = c.createStatement();                                                                                                              
          
          //SQL utasítás megadása
          String utasitas = "INSERT INTO vevo VALUES ( 44556677, 'Agoston', 'agoston@freemail.hu', 0637222333, 3000, 'Hatvan', 'Valahol', 21 )";              
          
          //SQL utasítás végrehajtása
          stmt.executeUpdate(utasitas);                                                                                                                        
          
          //Sikeres beszúrás kiírása
          System.out.println("A beszuras sikeres volt.");                                                                                                    
     }
     
     //A try blokkban esetlegesen keletkezett kivétel elkapása
     catch (Exception ex) {                                      
          //A kivétel szövegének kiírása
         System.out.println(ex.toString());
     }
2.7.3.2.2. Módosítson egy rekordot a mobiltelefon táblában!

try{ //Driver betöltés Class.forName("oracle.jdbc.driver.OracleDriver");                                                   //Kapcsolatfelvétel az adatbáissal Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");             //Statement objektum létrehozása, hogy parancsot küldhessünk az adatbázisnak Statement stmt = c.createStatement();                                                               //SQL utasítás megadása String utasitas = "UPDATE mobiltelefon SET ar = 65000 WHERE cikkszam = '332313AAC'";         //SQL utasítás végrehajtása stmt.executeUpdate(utasitas);                                                                       //Sikeres módosítás kiírása System.out.println("A modositas sikeres volt."); } //A try blokkban esetlegesen keletkezett kivétel elkapása catch (Exception ex) {                                                                   //A kivétel szövegének kiírása System.out.println(ex.toString()); }

2.7.3.2.3. Töröljön egy rekordot a vevő táblából!
     try{
          
          //Driver betöltés
          Class.forName("oracle.jdbc.driver.OracleDriver");                                                        
          
          //Kapcsolatfelvétel az adatbázissal
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");                  
          
          //Statement objektum létrehozása
          Statement stmt = c.createStatement();                                                                    
          
          //SQL utasítás megadása
          String utasitas = "DELETE FROM vevo WHERE ugyfelszam = 44556677";                                        
          
          //SQL utasítás végrehajtása
          stmt.executeUpdate(utasitas);                            
          
          //Sikeres törlés kiírása
          System.out.println("A torles sikeres volt.");                                                        
     }
     //A try blokkban keletkezett kivétel elkapása
     catch (Exception ex) {
          //A kivétel szövegének kiírása
          System.out.println(ex.toString());                                    
     }
2.7.3.2.4. Hajtson végre egy beszúrást, egy módosítást és egy törlést kötegelt utasítások segítségével!
     try {
          
          //Driver betöltés
          Class.forName("oracle.jdbc.driver.OracleDriver");                                          
          
          //Kapcsolatfelvétel az adatbázissal
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");    
          
          //Statement objektum létrehozása
          Statement stmt = c.createStatement();                                                                  
          
          //Utasítás hozzáadása a köteghez
          stmt.addBatch("INSERT INTO tel VALUES ( 33, 123654, 'ABC123' )");                          
          
          //Utasítás hozzáadása a köteghez
          stmt.addBatch("UPDATE mobiltelefon SET ar = 25000 WHERE cikkszam = '1234ABC567'");          
          //Utasítás hozzáadása a köteghez
          stmt.addBatch("DELETE FROM vevo WHERE ugyfelszam = 44556677");                              
          
          //A kötegelt utasítás végrehajtása
          stmt.executeBatch();                                                                        
          
          //A köteg kiürítése
          stmt.clearBatch();                                                    
     }
     
     //A try blokkban keletkezett kivételek elkapása
     catch (Exception ex) {                                                                        
         //A kivétel szövegének kiírása
         System.out.println(ex.toString());                                                          
     }
2.7.3.2.5. Paraméterezzen egy INSERT utasítást!
     try{
          
          //Driver betöltés
          Class.forName("oracle.jdbc.driver.OracleDriver");                                                                                                                                  
          
          //Kapcsolatfelvétel az adatbázissal
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");                                                                                            
          
          //Statement objektum létrehozása
          Statement stmt = c.createStatement();                                                                                                                                              
          
          //Ügyfélszám megadása
          int ugyfelszam = 44556677;                                                                                                                                                                
          
          //Név megadása
          String nev = "Denes";                                                                                                                                                              
          
          //E-mail cím megadása
          String email = "denes@denes.hu";                                                                                                                                                    
          
          //Telefonszám megadása
          int telsz = 0646222333;                                                                                                                                                            
          
          //Irányítószám megadása
          int irsz = 3515;                                                                                                                                                                    
          
          //Város megadása
          String varos = "Miskolc";                                                                                                                                                          
          
          //Utca megadása
          String utca = "Egyetem";                                                                                                                                                            
          
          //Házszám megadása
          int hsz = 2;                                                            
          
          //SQL utasítás megadása és a paraméterek beszúrása
          String utasitas = "INSERT INTO vevo VALUES ( " + ugyfelszam + ", '" + nev + "', '" +
          email + "', " + telsz + ", " + irsz + ", '" + varos + "', '" + utca + "', " + hsz + " )";            
          //SQL utasítás végrehajtása
          stmt.executeQuery(utasitas);                                                                                                                                                        
          
          //Sikeres beszúrás kiírása
          System.out.println("A beszuras sikeres volt.");
     }
     
     //A try blokkban keletkezett kivételek elkapása
     catch (Exception ex) {                                                                      
         //A kivétel szövegének kiírása
         System.out.println(ex.toString());
     }

2.7.3.3. Kétlépcsős utasítások – PreparedStatement

2.7.3.3.1. Az INSERT utasítás paraméterezését oldja meg Prepared Statement-tel és szúrjon be egy rekordot a vevo táblába!
      try {
          
          //Driver betöltés
          Class.forName("oracle.jdbc.driver.OracleDriver");                                                
          
          //Kapcsolódás az adatbázishoz
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");            
          
          //Prepared Statement objektum létrehozása, melyben paraméterezett SQL utasítás szerepel
          PreparedStatement pstmt = c.prepareStatement("INSERT INTO vevo VALUES(?, ?, ?, ?, ?, ?, ?, ?)");  
          //Első paraméter beállítása
          pstmt.setLong(1, 44556677);
          
          //Második paraméter beállítása
          pstmt.setString(2, "Denes");  
          
          //Harmadik paraméter beállítása                                                                    
          pstmt.setString(3, "denes@gmail.com");                                                            
          
          //Negyedik paraméter beállítása
          pstmt.setLong(4, 304567891);                                                                      
          
          //Ötödik paraméter beállítása
          pstmt.setInt(5, 3000);                                                                            
          
          //Hatodik paraméter beállítása
          pstmt.setString(6, "Hatvan");                                                                      
          
          //Hetedik paraméter beállítása
          pstmt.setString(7, "Hegyalja");                                                                    
          
          //Nyolcadik paraméter beállítása
          pstmt.setInt(8, 78);                                                                              
          
          //Az SQL utasítás végrehajtása
          pstmt.executeUpdate();                                                                            
          
          //A try blokkban keletkezett kivételek elkapása
     } catch (Exception ex) {                
         //A kivétel szövegének kiírása                                                      
         System.out.println(ex.toString());
     }
2.7.3.3.2. Az UPDATE utasítás paraméterezését oldja meg Prepared Statement-tel és módosítson egy rekordot az elegedettseg táblában!
     try {
          
          //Driver betöltés
          Class.forName("oracle.jdbc.driver.OracleDriver");                                                      
          
          //Kapcsolatfelvétel az adatbázissal
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");                
          
          //Prepared Statement objektum létrehozása, paraméterezett SQL
          //utasítás megadása
          PreparedStatement pstmt = c.prepareStatement("UPDATE elegedettseg SET jellege = ? WHERE vevo = ?");    
          
          //Első paraméter beállítása
          pstmt.setString(1, "pozitiv");                                                                        
          
          //Második paraméter beállítása
          pstmt.setInt(2, 33445566);                                                                                        
          
          //A paraméterezett SQL utasítás végrehajtása
          pstmt.executeUpdate();
     }
     
     //A try blokkban keletkezett kivételek elkapása
     catch (Exception ex) {                
         //A kivétel szövegének kiírása
        System.out.println(ex.toString());                            
     }
2.7.3.3.3. A DELETE utasítás paraméterezését oldja meg Prepared Statement-tel és töröljön egy rekordot a mobiltelefon táblából!
     try {
          
          //Driver betöltés
          Class.forName("oracle.jdbc.driver.OracleDriver");                                                      
          
          //Kapcsolatfelvétel az adabázissal
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");                
          
          //Prepared Statement objektum létrehozása és a //paraméterezett SQL utasítás megadása
          PreparedStatement pstmt = c.prepareStatement("DELETE FROM mobiltelefon WHERE ar = ?");                  
          
          //A paraméter beállítása
          pstmt.setInt(1, 89900);                                                                                
          
          //SQL utasítás végrehajtása
          pstmt.executeUpdate();
     }
     
     //A try blokkban keletkezett kivételek elkapása
     catch (Exception ex) {            
         //A kivétel szövegének kiírása
        System.out.println(ex.toString());
     }
2.7.3.3.4. Paraméterezze a DELETE utasítás tábla opcióját és egy mező szerinti kiválasztást!
     try {
          Class.forName("oracle.jdbc.driver.OracleDriver");
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");
          String tablanev = "szolgaltato";
          String mnev = "nev";
          PreparedStatement pstmt = c.prepareStatement("EXECUTE IMMEDIATE 'DELETE FROM' || ?  || ' WHERE ' || ? || '=' || ?");
          pstmt.setString(1, "szolgaltato");
          pstmt.setString(2, "nev");
          pstmt.setString(3, "Tmobile");
          pstmt.executeUpdate();
     }
     catch (Exception ex) {
          System.out.println(ex.toString());
     }

2.7.3.4. Lekérdezek, kurzor-kezelés – ResultSet

2.7.3.4.1. Kérdezze le a vevő tábla első rekordjából az ügyfélszámot, a nevet és az e-mail címet!
     try{
          //Driver betöltés
          Class.forName("oracle.jdbc.driver.OracleDriver");                                                      
          
          //Kapcsolatfelvétel az adatbázissal
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");                
          
          //Statement objektum létrehozása
          Statement stmt = c.createStatement();                                                      
          
          //SQL utasítás megadása            
          String utasitas = "SELECT ugyfelszam, nev, e_mail FROM vevo";                                          
          
          //Az SQL utasítás végrehajtása és letárolása egy ResultSetbe
          ResultSet rs = stmt.executeQuery(utasitas);                                                            
          
          //A ResultSet első sorára lépés
          rs.next();                    
          
          //Az ügyfélszám kikérése az aktuális rekordból
          int ugyfelszam = rs.getInt("ugyfelszam");                                                              
          
          //A név kikérése az aktuális rekordból
          String nev = rs.getString("nev");                                                          
          
          //Az e-mail cím kikérése az aktuális rekordból
          String email = rs.getString("e_mail");                                                                  
          
          //Az ügyfélszám kiírása
          System.out.println("Ugyfelszam: " + ugyfelszam);
          
          //A név kiírása
          System.out.println("Név:: " + nev);                                                                    
          
          //Az e-mail cím kiírása
          System.out.println("E-mail: " + email);                                                                
          
          //A Result Set bezárása
          rs.close();                                                    
     }
     //A try blokkban keletkezett kivételek elkapása
     catch (Exception ex) {                                                                        
         //A kivétel szövegének kiírása
         System.out.println(ex.toString());                                                          
     }
2.7.3.4.2. Kérdezze le az összes vevő ügyfélszámát, nevét és e-mail címét és jelenítse meg „táblázatos" alakban!
     try{
          //Driver betöltés
          Class.forName("oracle.jdbc.driver.OracleDriver");                                                                              
          
          //Kapcsolatfelvétel az adatbázissal
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");                            
          
          //Statement objektum létrehozása
          Statement stmt = c.createStatement();                                                                                          
          
          //SQL utasítás megadása
          String utasitas = "SELECT * FROM vevo";                                                                                        
          
          //Az SQL utasítás végrehajtása és az eredmény letárolása
          ResultSet rs = stmt.executeQuery(utasitas);                                        
          
          //A ciklus az eredményhalmaz minden során végigmegy                                            
          while (rs.next()) {                                              
              //Az ügyfélszám, név és e-mail lekérése és kiírása az
              //aktuális rekordból                  
               System.out.println(rs.getInt("ugyfelszam") + "\t" + rs.getString("nev") + "\t" + rs.getString("e_mail"));      
          }
     
          //A ResultSet lezárása
          rs.close();
     
     //A try blokkban dobódott kivételek elkapása
     }
     catch (Exception ex) {                                                                
         //A kivétel szövegének kiírása
         System.out.println(ex.toString());
     }
2.7.3.4.3. Kérdezze le a vevő tábla első két rekordjából a nevet!
   try{
   //Driver betöltés
   Class.forName("oracle.jdbc.driver.OracleDriver");                                                   
   
   //Kapcsolatfelvétel az adatbázissal
   Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");             
   
   //Statement objektum létrehozása és beállítása
   Statement stmt = c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);    
   
   //SQL utasítás végrehajtása és az eredményhalmaz letárolása
   ResultSet rs = stmt.executeQuery("SELECT * FROM vevo");                                             
   
   //A Result Set első sorára ugrás
   rs.first();                     
   
   //A név lekérése és kiírása az aktuális sorból
   System.out.println(rs.getString("nev"));                                                            
   
   //A Result Set következő sorára ugrás           
   rs.next();                                                                                                      
   
   //A név lekérése és kiírása az aktuális sorból
   System.out.println(rs.getString("nev"));                                                          
   
   //A try blokkban dobódott kivételek elkapása  
   } catch (Exception ex) {                                                                                
   //A kivétel szövegének kiírása
   System.out.println(ex.toString());                               
   }
2.7.3.4.4. Kérdezze le a mobiltelefon tábla utolsó két rekordjából a mobiltelefon típusát és árát!
     try{
          //Driver betöltés
          Class.forName("oracle.jdbc.driver.OracleDriver");                                                              
          
          //Kapcsolatfelvétel az adatbázissal
          Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");                        
          
          //Statement objektum létrehozása és beállítása
          Statement stmt = c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);    
          
          //SQL utasítás végrehajtása és az eredményhalmaz letárolása
          ResultSet rs = stmt.executeQuery("SELECT * FROM mobiltelefon");                                                
          
          //A Result Set utolsó sorára ugrás
          rs.last();              
          
          //Visszalépés egy sorral
          rs.previous();                                                                                      
          
          //A tipus és az ár lekérése és kiírása            
          System.out.println(rs.getString("tipusa") + rs.getInt("ar"));                                                  
          
          //Következő sorra ugrás
          rs.next();                                                                                                      
          
          //A tipus és az ár lekérése és kiírása
          System.out.println(rs.getString("tipusa")+rs.getInt("ar"));                                                
     }
     //A try blokkban keletkezett kivételek elkapása
     catch (Exception ex) {                        
         //A kivétel szövegének kiírása                                            
         System.out.println(ex.toString());                                                                  
     }
2.7.3.4.5. Kérdezze le az árusít tábla 2. rekordjából a darabszámot!
   try{
     //Driver betöltés
     Class.forName("oracle.jdbc.driver.OracleDriver");                                                               
   
     //Kapcsolatfelvétel az adatbázissal
     Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");                         
   
     //Statement objektum létrehozása és beállítása
     Statement stmt = c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);    
   
     //SQL utasítás végrehajtása és az eredményhalmaz letárolása
     ResultSet rs = stmt.executeQuery("SELECT * FROM arusit");                                           
   
     //A Result Set 2. sorára ugrás
     rs.absolute(2);                    
   
     //Az aktuális sorból a darabszám lekérése és kiírása                                                                             
     System.out.println(rs.getInt("db"));                                                                        
   } 
   //A try blokkban dobódott kivételek elkapása
   catch (Exception ex) {                                                                                
      //A kivétel szövegének kiírása
      System.out.println(ex.toString());                                                                  
   }
2.7.3.4.6. Kérdezze le a vevő tábla utolsó előtti 2. rekordból a lakcímet!
   try{
     //Driver betöltés
     Class.forName("oracle.jdbc.driver.OracleDriver");                                                                                                       
   
     //Kapcsolódás az adatbázishoz
     Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");                      
   
     //Statement objektum létrehozása és beállítása
     Statement stmt = c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);                                            
   
     //Az SQL utasítás végrehajtása és az eredmény letárolása egy 
     //Result Setbe
     ResultSet rs = stmt.executeQuery("SELECT * FROM vevo");                                                                                     
   
     //A Result Set utolsó sorára ugrás
     rs.last();                                                                                                                                              
     //Az aktuális sortól 2-vel visszalépés
     rs.relative(-2);                      
   
     //A lakhely adatainak lekérése a Result Set aktuális sorából
     System.out.println(rs.getInt("i") + "\n" + rs.getString("v").trim() + ", " + rs.getString("u").trim() + " " + rs.getInt("hsz") +".");       
   } 
   //A try blokkban keletkezett kivételek elkapása
   catch (Exception ex) {                                                                                                                        
     //A kivétel szövegének kiírása
     System.out.println(ex.toString());                                                                                                          
   }

2.7.3.5. Tárolt eljárás-, függvényhívások – CallableStatement

2.7.3.5.1. Hívja meg a tel táblához tartozó csomag insert_tel tárolt eljárását!
   try {
   
     //Driver betöltés
     Class.forName("oracle.jdbc.driver.OracleDriver");                                                       
   
     //Kapcsolatfelvétel az adatbázissal
     Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");                 
   
     //Callable Statement objektum létrehozása, a tárolt eljárás meghívása és paraméterezése
     CallableStatement cstmt = c.prepareCall("call {tel_csomag.insert_tel(?,?,?)}");               
   
     //Első paraméter beállítása
     cstmt.setInt(1, 44);                                                                        
   
     //Második paraméter beállítása
     cstmt.setLong(2, 4567891);                                                                  
   
     //Harmadik paraméter beállítása
     cstmt.setString(3, "CDE321");                                                               
   
     //A Callable Statement végrehajtása
     cstmt.executeUpdate();                                                                      
   } 
   //A try blokkban keletkezett kivételek elkapása
   catch (Exception ex) {                                                                        
      //A kivételek szövegének kiírása
      System.out.println(ex.toString());                                                          
   }
2.7.3.5.2. Hívja meg az árusit táblához tartozó csomag update_arusit tárolt eljárást!
   try {
     //Driver betöltés
     Class.forName("oracle.jdbc.driver.OracleDriver");                                                       
   
     //Kapcsolatfelvétel az adatbázissal
     Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");     
   
     //Callable Statement objektum létrehozása, a tárolt eljárás meghívása és //paraméterezése
     CallableStatement cstmt = c.prepareCall("{ call arusit_csomag.update_arusit(?,?,?,?)}");       
   
     //Első paraméter beállítása
     cstmt.setInt(1, 765);                                                                       
   
     //Második paraméter beállítása
     cstmt.setInt(2, 15);                                                                        
   
     //Harmadik paraméter beállítása
     cstmt.setString(3, "ABC123");                                                               
     //Negyedik paraméter beállítása
     cstmt.setString(4, "1234ABC567");                                                           
   
     //A tárolt eljárás végrehajtása
     cstmt.executeUpdate();                                                                  
   } 
   //A dobódott kivételek elkapása     
   catch (Exception ex) {                                                                        
     //A kivétel szövegének kiírása
     System.out.println(ex.toString());                                                          
   }
2.7.3.5.3. Hívja meg a szolgáltató táblához tartozó csomag delete_szolgaltato tárolt eljárást!
   try {
     //Driver betöltés
     Class.forName("oracle.jdbc.driver.OracleDriver");                                           
   
     //Kapcsolatfelvétel az adatbázissal
     Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");     
   
     //Callable Statement objektum létrehozása és a tárolt eljárás meghívása és paraméterezése
     CallableStatement cstmt = c.prepareCall("{call szolgaltato_csomag.delete_szolgaltato(?)}");   
   
     //A paraméter beállítása
     cstmt.setString(1, "EFG678");                                                               
   
     //A Callable Statement végrehajtása
     cstmt.executeQuery();                                                                       
   } 
   //A dobódott kivételek elkapása
   catch (Exception ex) {                                                                        
     //A kivétel szövegének kiírása
     System.out.println(ex.toString());                                                          
   }
2.7.3.5.4. Hívja meg az elegedett(azonosito) függvényt majd írja ki az eredményt!
    try {
           //Driver betöltés
           Class.forName("oracle.jdbc.driver.OracleDriver");
           
           //Kapcsolatfelvétel az adatbázissal
           Connection c =
           DriverManager.getConnection("jdbc:oracle:thin:fg6/qwert@localhost/XE”);
   
           //Callable Statement objektum létrehozása, a függvény meghívása és 
           //paraméterezése
           CallableStatement cstmt = c.prepareCall("{? = call elegedett(?)}");
   
           //Első paraméter megadása
           cstmt.registerOutParameter(1, java.sql.Types.DOUBLE);
           
           //Második paraméter megadása
           cstmt.setString(2, "ABC123");
           
           //A Callable Statement végrehajtása
           cstmt.executeQuery();
           
           //Eredmény tárolása változóban
           double szazalek = cstmt.getDouble(1);
           
           //Az eredmény kiírása
           System.out.println("A vevok " + szazalek + "%-a elegedett a 
           szolgaltatoval.");
   }
   //A dobódott kivételek elkapása
   catch (Exception ex) {
           //A kivétel szövegének kiírása
           System.out.println(ex.toString());
   }

2.7.3.6. Hiba-, kivételkezelés

2.7.3.6.1. Kezelje le a driver betöltéskor keletkezhető hibákat!
   try {
        //Driver betöltése és inicializálása
         Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();                     
   } 
   //Kivétel, ha a driver nem található
   catch (ClassNotFoundException ex) {                                                   
       System.out.println("Nem talalhato az oracle.jdbc.driver.OracleDriver 
       osztály");
   } 
   //Kivétel, ha a driver nem tölthető be
   catch (IllegalAccessException ex) {                                                   
       System.out.println("Nem toltheto be az oracle.jdbc.driver.OracleDriver");
   } 
   //Kivétel, ha az osztály nem példányosítható
   catch (InstantiationException ex) {                                                   
       System.out.println("Nem peldanyosithato az oracle.jdbc.driver.OracleDriver");
   }
2.7.3.6.2. Kezelje le a kapcsolódáskor keletkezhető hibákat!
   try{
      //Driver betöltés
      Class.forName("oracle.jdbc.driver.OracleDriver");                                   
      //Kapcsolódás az adatbázishoz 
       DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");            
   } 
   //Driver betöltés kivételének elkapása
   catch (ClassNotFoundException ex) {                                                   
      //A kivétel szövegének kiírása
      System.out.println(ex.toString());      
   } 
   //SQL kivételek elkapása
   catch (SQLException ex) {
      //A kivétel szövegének kiírása
      System.out.println("A kapcsolodas nem sikerult, a hiba oka:\n" + 
      ex.toString());    
   }

2.7.3.7. Metaadatok feldolgozása

2.7.3.7.1. Kérje le az Ön által használt adatbázis nevét és verzióját!
   try {
     //Driver betöltés
     Class.forName("oracle.jdbc.driver.OracleDriver");                                           
   
     //Kapcsolódás az adatbázishoz
     Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");     
   
     //A metaadatok lekérése
     DatabaseMetaData md = c.getMetaData();                                                      
   
     //Az adatbázis nevének lekérése és letárolása
     String nm = md.getDatabaseProductName();     
   
     //Az adatbázis verziójának lekérése és letárolása                                               
     String ver = md.getDatabaseProductVersion();                                                            
   
     //az adatbázis nevének és verziójának kiírása
     System.out.println("Adatbazis neve: " + nm + "\nAdatbazis verzioja: " + ver);               
   } 
   //Dobódott kivételek elkapása
   catch (Exception ex) {                                                                        
     //Kivétel szövegének kiírása
     System.out.println(ex.toString());                                                          
   }
2.7.3.7.2. Kérje le az Ön által használt JDBC driver nevét és verzióját!
   try {
     //Driver betöltés
     Class.forName("oracle.jdbc.driver.OracleDriver");                                                       
   
     //Kapcsolódás az adatbázishoz
     Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");     
   
     //Metaadatok lekérése
     DatabaseMetaData md = c.getMetaData();                                                      
   
     //Driver nevének lekérése és letárolása
     String dnm = md.getDriverName();                                                                        
   
     //Driver verziójának lekérése és letárolása
     String dver = md.getDriverVersion();                                                        
   
     //Driver nevének és verziójának kiírása
     System.out.println("Driver neve: " + dnm + "\nDriver verzioja: " + dver);                   
   } 
   //Dobódott kivételek elkapása
   catch (Exception ex) {                                                                        
     //Kivétel szövegének kiírása
     System.out.println(ex.toString());                                                          
   }
2.7.3.7.3. Listázza ki az Ön által használt adatbázis aktív sémáit!
   try {
     //Driver betöltés
     Class.forName("oracle.jdbc.driver.OracleDriver");                                           
   
     //Kapcsolatfelvétel az adatbázissal
     Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");     
   
     //Metaadatok lekérése
     DatabaseMetaData md = c.getMetaData();                                                      
   
     //Sémák lekérése és letárolása egy eredményhalmazba
     ResultSet rs = md.getSchemas();                                                             
   
     //A Result Set összes során végigmegy
     while (rs.next())                                                                           
        //A sémák lekérése és kiírása
        System.out.println(rs.getString("TABLE_SCHEM"));                                        
   }
   //Dobódott kivételek elkapása
   catch (Exception ex) {                                                                        
     //Kivétel szövegének kiírása
     System.out.println(ex.toString());
   }
2.7.3.7.4. Írassa ki hány db mezőt tartalmaz a szolgáltató tábla egy rekordja!
   try {
      //Driver betöltés
     Class.forName("oracle.jdbc.driver.OracleDriver");                                           
   
     //Kapcsolódás az adatbázishoz
     Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");     
   
     //Statement objektum létrehozása
     Statement stmt = c.createStatement();                                                       
   
     //SQL parancs futtatása és az eredményhalmaz letárolása
     ResultSet rs = stmt.executeQuery("SELECT * FROM szolgaltato");                                          
   
     //Az eredményhalmaz metaadatainak lekérése
     ResultSetMetaData rsmd = rs.getMetaData();                                                  
   
     //A mezőszámot tartalmazó metaadat letárolása
     int db = rsmd.getColumnCount();              
   
     //A mezőszám kiíratása
     System.out.println("A rekordnak " + db + " db mezoje van.");                                
   } 
   //Dobódott kivételek elkapása
   catch (Exception ex) {                                                                        
      //A kivétel szövegének kiírása
     System.out.println(ex.toString());                                                          
   }
2.7.3.7.5. Írassa ki a vevő tábla mezőinek nevét és típusát!
   try {
     //Driver betöltése
     Class.forName("oracle.jdbc.driver.OracleDriver");                                          
   
     //Kapcsolatfelvétel az adatbázissal 
     Connection c = DriverManager.getConnection("jdbc:oracle:thin:fg60/qwert@localhost/XE");     
   
     //Statement objektum létrehozása
     Statement stmt = c.createStatement();                                                       
   
     //SQL parancs végrehajtása és az eredményhalmaz letárolása
     ResultSet rs = stmt.executeQuery("SELECT * FROM vevo");                                     
   
     //Az eredményhalmaz metaadatainak lekérése
     ResultSetMetaData rsmd = rs.getMetaData();                                                  
     for (int i=1; i<=rsmd.getColumnCount(); i++) {
       //A mezőnevek lekérése
       String cnm = rsmd.getColumnName(i);                                                     
   
       //Mezőtípus lekérése
       String tnm = rsmd.getColumnTypeName(i);                                                                 
       //Aktuális mező nevének és típusának kiírása System.out.println("Mezo neve: " + cnm + ", tipusa: " + tnm);                           
     }
   } 
   //Dobódott kivételek elkapása
   catch (Exception ex) {    
     //Kivétel szövegének kiírása                                                                    
     System.out.println(ex.toString());
   }

2.7.4. ADO.NET

2.7.4.1. Kapcsolat felvétel

2.7.4.1.1. Hozzon létre egy kapcsolatot az OleDb connectorral Oracle adatbázishoz, nyissa meg azt, és amennyiben sikeres a kapcsolódás, írja azt ki a Console-ra. Hiba esetén a program jelezzen!
   try {
       // kapcsolat példányosítása, benne a kapcsolati string-gel
      OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1;"
      +"Password=password; User ID=username; Data Source=localhost;");
   
      // kapcsolat megnyitása                
      con.Open();
   
      // kiírás a console-ra
      Console.WriteLine("A kapcsolódás sikeres.");                        
   
      // kapcsolat lezárása
      con.Close();        
      Console.ReadLine();
   }
   // kivétel elkapása
   catch (Exception ex)                                                                                
   {        
       // hiba esetén a hibaüzenet kiírása console-ra
     Console.WriteLine("Sikertelen kapcsolódás: " + ex.ToString());                
     Console.ReadLine();
   }
2.7.4.1.2. Hozzon létre az előzőhöz hasonlóan egy kapcsolatot az Oracle adatbázishoz OleDb connectorral, de a kapcsolati stringben használjon paramétereket. Sikeres kapcsolódás esetén írja azt ki a Console-ra. Hiba esetén a program jelezzen!
   try
   {
      // szöveges változók létrehozása paraméteres kapcsolathoz, a 
      // felhasználónév és jelszó letárolva bennük
      String user = "username", pwd="password";                
   
      // OleDbConnection példányosítása, benne a paraméterezett kapcsolati 
      // string-gel
      OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; 
      Password="+pwd+"; User ID="+user+"; Data Source=localhost;");
   
      // kapcsolat megnyitása                                        
      con.Open();                                
   
      // kiírás a console-ra
      Console.WriteLine("A kapcsolódás sikeres.");
   
      // kapcsolat lezárása
      con.Close();                                
      Console.ReadLine();
   }
   // kivétel elkapása
   catch (Exception ex)                                                                                
   {
      // hiba esetén a hibaüzenet kiírása console-ra
      Console.WriteLine("Sikertelen kapcsolódás: " + ex.ToString());                
      Console.ReadLine();
   }
2.7.4.1.3. Kapcsolódjon adatbázishoz Odbc driver segítségével, siker esetén ezt szöveggel jelezze a Console-on. Hiba esetén a program jelezzen!
   try
   {
      // OdbcConnection példányosítása, üres kapcsolati string-gel
     OdbcConnection con = new OdbcConnection();                        
   
     // kapcsolati string beállítása
     con.ConnectionString = "Driver={SQL Server};Server=localhost;"+"UID=username;PWD=password;Database=telefon;";
   
   
     // kapcsolat megnyitása        
     con.Open();                                        
   
     // kiírás a console-ra
     Console.WriteLine("A kapcsolódás sikeres.");        
   
     // kapcsolat lezárása
      con.Close();
      Console.ReadLine();
   }
   // kivétel elkapása
   catch (Exception ex)                                                                                
   {
      // hiba esetén a hibaüzenet kiírása console-ra
      Console.WriteLine("Sikertelen kapcsolódás: " + ex.ToString());        
      Console.ReadLine();
   }
2.7.4.1.4. Az előző feladat kapcsolatának paraméterezése a könnyebb használhatóság érdekében. Hiba esetén a program jelezzen!
   try
   {
      // szöveges változók létrehozása paraméteres kapcsolathoz, a 
      // felhasználónév és jelszó letárolva bennük
      String user = "username", pwd="password";        
   
      // OdbcConnection példányosítása, üres kapcsolati string-gel
      OdbcConnection con = new OdbcConnection();        
   
      // kapcsolati string beállítása paraméterekkel
      con.ConnectionString = "Driver={SQL  Server};Server=localhost;UID="
       +username+";PWD="+password+";Database=telefon;";
   
      // kapcsolat megnyitása                
       con.Open();                                                        
   
      // kiírás console-ra
      Console.WriteLine("A kapcsolódás sikeres.");        
   
      // kapcsolat lezárása
      con.Close();                                
      Console.ReadLine();
   }
   // kivétel elkapása
   catch (Exception ex)                                                                                
   {
      // hibaüzenet kiírása a console-ra
      Console.WriteLine("Sikertelen kapcsolódás: " + ex.ToString());
      Console.ReadLine();
   }

2.7.4.2. DDL, DML utasítások

2.7.4.2.1. Kapcsolódjon paraméteresen OleDb driverrel, majd hozzon létre egy ’temp’ nevű táblát, és töltse fel adatokkal. Hiba esetén a program jelezzen!
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";               
          
          // kapcsolat példányosítása, paraméterezett kapcsolati string-gel
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                                       
          con.Open();                                                       
          
          // parancs létrehozása a kapcsolaton
          OleDbCommand cmd = con.CreateCommand();       
          
          // parancs szövegének beállítása - tábla létrehozása
          cmd.CommandText = "CREATE TABLE temp (ID CHAR(4), nev VARCHAR(25), email VARCHAR(25))";       
          
          // parancs végrehajtása
          cmd.ExecuteNonQuery();                                               
          
          // parancs szövegének beállítása - adatok felvitele a táblába
          cmd.CommandText = "INSERT INTO temp VALUES
          (1234,'nev1','nev1@hotmail.com')";
          // parancs végrehajtása
          cmd.ExecuteNonQuery();                                                               
          cmd.CommandText = "INSERT INTO temp VALUES
          (5678,'nev2','nev2@hotmail.com')";
          cmd.ExecuteNonQuery();
          
          // kapcsolat lezárása
          con.Close();       
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // kivétel / hiba szövegének a console-ra iratása
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.2.2. A létrehozott ’temp’ nevű táblát törölje az adatbázisból. Hiba esetén a program jelezzen.
     try
     {
          // paraméterezett kapcsolathoz a szöveges változók létrehozása
          String user = "username", pwd = "password";               
          
          // kapcsolat példányosítása, a kapcsolati string paraméterezett
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                       
          con.Open();               
          
          // utasítás létrehozása
          OleDbCommand cmd = con.CreateCommand();       
          
          // az utasítás: temp tábla eldobása
          cmd.CommandText = "DROP TABLE temp";
          
          // utasítás végrehajtása
          cmd.ExecuteNonQuery();               
          
          // kapcsolat lezárása
          con.Close();       
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibák kiíratása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.2.3. Hozzon létre kapcsolatot, és törölje a ’vevo’ táblából azt a sort, amelyben az ’ugyfelszam’ értéke 11223344-re van állítva. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";       
          
          // kapcsolat példányosítása, benne a paraméterezett kapcsolati string-
          // gel
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                                       
          con.Open();                                               
          
          // parancs létrehozása a kapcsolaton
          OleDbCommand cmd = con.CreateCommand();       
          
          // parancs szövegének beállítása - az 11223344 ügyfélszámú vevő törlése
          // a táblából
          cmd.CommandText = "DELETE FROM vevo WHERE ugyfelszam = 11223344";
          
          // parancs végrehajtása
          cmd.ExecuteNonQuery();               
          
          // kapcsolat lezárása
          con.Close();       
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibaüzenet console-ra iratása
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.2.4. Hozzon létre paraméterezett kapcsolatot, majd tároljon le egy új sort a ’vevo’ táblában. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";       
          
          // paraméterezett kapcsolat példányosítása
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása
          con.Open();               
          // utasítás létrehozása, az utasítás törzse üres
          OleDbCommand cmd = con.CreateCommand();       
          
          // utasítás szövegének megadása, új sor beszúrása a vevo táblába
          cmd.CommandText = "INSERT INTO vevo VALUES (11223344,'Agoston',"
          +"'agoston@hotmail.com',625214142,3245,'Hatvan','Valahol',324)";
          
          // utasítás végrehajtása
          cmd.ExecuteNonQuery();
          
          // kapcsolat lezárása
          con.Close();       
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)
     {
          // hibák kiíratása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.2.5. Sikeres kapcsolódás után állítsa az 11223344 ügyfélszámű vevő nevét Ágostonra! Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";
          
          // paraméterezett kapcsolat példányosítása
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");       
          
          // kapcsolat megnyitása
          con.Open();               
          
          // parancs létrehozása
          OleDbCommand cmd = con.CreateCommand();       
          
          // parancs szövege
          cmd.CommandText = "UPDATE vevo SET nev='Agoston' WHERE
          ugyfelszam=11223344";
          
          // az utasítás végrehajtása
          cmd.ExecuteNonQuery();                       
          
          // a kapcsolat lezárása
          con.Close();                                                                               
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibák kiírása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }

2.7.4.3. Kétlépcsős utasítások

2.7.4.3.1. Kapcsolódjon paraméteresen az adatbázishoz, majd hajtson végre egy paraméterezett lekérdezést, az eredményt DataReader-ben tárolja, majd írja ki Console-ra. Hiba esetén a program jelezzen!
     try
     {
          // szöveges változók a paraméteres kapcsolódáshoz
          String user = "username", pwd = "password";       
          
          // OleDb kapcsolat, paraméteres kapcsolati string-gel
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                       
          con.Open();                               
          
          // nev mező lekérése a vevő táblából, ugyfelszam paraméterezve. ez a
          // parancs letárolva szöveges változóba
          String utasitas = "SELECT nev FROM vevo WHERE ugyfelszam = ?";
          
          // parancs példányosítása
          OleDbCommand cmd = con.CreateCommand();               
          
          // parancs szövegének megadása
          cmd.CommandText = utasitas;                               
          
          // paraméter példányosítás
          OleDbParameter parameter = new OleDbParameter();       
          
          // paraméter hozzáadása
          cmd.Parameters.Add(parameter);               
          
          // paraméter beállítása
          parameter.Value = "33445566";               
          
          // a parancs végrehajtása, az eredmény egy DataReader objektumban
          // tároljuk
          OleDbDataReader dataReader = cmd.ExecuteReader();       
          
          // ciklus az eredmény kiíratásához, a DataReader Read() metódusát
          // használva
          while (dataReader.Read())               
          
          // az aktuális ugyfelszam kiíratása console-ra
          Console.WriteLine("Nev: " + dataReader["nev"]);       
          
          // datareader lezárása
          dataReader.Close();               
          // kapcsolat lezárása
          con.Close();       
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibák kiíratása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.3.2. Kapcsolat létrehozása után paraméterezett INSERT műveletet hajtson végre. Állítsa be a paraméterek értékét tetszőleges értékekre. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása paraméterezett kapcsolathoz
          String user = "username", pwd = "password";       
          
          // paraméterezett kapcsolat példányosítása
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                               
          con.Open();                               
          
          // utasítás létrehozása a CreateCommand() metódus segítségével, az
          // utasítás törzse üres
          OleDbCommand cmd = con.CreateCommand();
          
          // utasítás szövege, az paraméterezett
          cmd.CommandText = "INSERT INTO vevo VALUES (?,?,?,?,?,?,?,?)";
          
          // OleDbParameter példányosítása
          OleDbParameter parameter1=new OleDbParameter();
          
          // paraméter értékének beállítása
          parameter1.Value = "99887766";                               
          
          // a paraméter hozzáadása az utasításhoz
          cmd.Parameters.Add(parameter1);               
          
          OleDbParameter parameter2 = new OleDbParameter();
          parameter2.Value = "Zeno";
          cmd.Parameters.Add(parameter2);
          
          OleDbParameter parameter3 = new OleDbParameter();
          parameter3.Value = "zeno@hotmail.com";
          cmd.Parameters.Add(parameter3);
          
          OleDbParameter parameter4 = new OleDbParameter();
          parameter4.Value = "6701112244";
          cmd.Parameters.Add(parameter4);
          
          OleDbParameter parameter5 = new OleDbParameter();
          parameter5.Value = "3421";
          cmd.Parameters.Add(parameter5);
          
          OleDbParameter parameter6 = new OleDbParameter();
          parameter6.Value = "Varos";
          cmd.Parameters.Add(parameter6);
          
          OleDbParameter parameter7 = new OleDbParameter();
          parameter7.Value = "Utca";
          cmd.Parameters.Add(parameter7);
          
          OleDbParameter parameter8 = new OleDbParameter();
          parameter8.Value = "34";
          cmd.Parameters.Add(parameter8);
                                         
          // utasítás végrehajtása
          cmd.ExecuteNonQuery();       
          
          // a kapcsolat lezárása
          con.Close();               
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibák szövegének kiíratása a console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.3.3. Az 7.4.2/5. feladathoz hasonlóan szintén az 11223344 ügyfélszámú vevő nevét írja át, de most paraméteresen. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";                       
          
          // paraméterezett kapcsolat példányosítás
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");       
          
          // kapcsolat megnyitása                                       
          con.Open();
          
          // új utasítás létrehozása                               
          OleDbCommand cmd = con.CreateCommand();               
          
          // az utasítás szövege, paraméterrel
          cmd.CommandText = "UPDATE vevo SET nev=? WHERE ugyfelszam=11223344";
          
          // paraméter példányosítása
          OleDbParameter parameter = new OleDbParameter();       
          
          // a paraméter értékének beállítása Tamas-ra
          parameter.Value="Tamas";       
          
          // a paraméter hozzáadása az utasításhoz
          cmd.Parameters.Add(parameter);               
          
          // utasítás végrehajtása (paraméterrel)
          cmd.ExecuteNonQuery();
          
          // kapcsolat lezárása
          con.Close();                                                               
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // kiírás console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.3.4. Kapcsolódjon adatbázishoz, majd töröljön a 'vevo' táblából paraméteresen. A paraméter az ügyfélszám mezőre vonatkozzon.
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";               
          
          // kapcsolat példányosítása, benne a paraméterezett kapcsolati string-
          // gel
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                               
          con.Open();                                       
          
          // parancs létrehozása a kapcsolaton
          OleDbCommand cmd = con.CreateCommand();               
          
          // parancs szövegének beállítása paraméterezett DELETE parancsra
          cmd.CommandText = "DELETE FROM vevo WHERE ugyfelszam = ?";       
          
          // új paraméter példányosítása
          OleDbParameter parameter = new OleDbParameter();
          
          // paraméter hozzárendelése a parancshoz
          cmd.Parameters.Add(parameter);       
          
          // paraméter értékének beállítása
          parameter.Value="11223344";       
          
          // parancs végrehajtása
          cmd.ExecuteNonQuery();       
          
          // kapcsolat lezárása
          con.Close();
          Console.ReadLine();
     }
     // kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // keletkező hibaüzenet kiíratása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }

2.7.4.4. Lekérdezek, kurzor-kezelés

2.7.4.4.1. Hozzon létre paraméterezett kapcsolatot, majd hajtson végre egy lekérdezést (pl.: „SELECT ugyfelszam FROM vevo”). Az eredményt egy DataReader-ben tárolja, majd irassa ki az első sorát. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";       
          
          // kapcsolat példányosítása, benne a kapcsolati string-gel, ami
          // paraméterezett
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                               
          con.Open();                                                       
          
          // utasitas nevű string deklarálása, benne a SELECT paranccsal
          String utasitas = "SELECT ugyfelszam FROM vevo";       
          
          // utasítás létrehozása a kapcsolathoz
          OleDbCommand cmd = con.CreateCommand();               
          
          // az utasítás beállítása az utasitas szöveges változóhoz
          cmd.CommandText = utasitas;                                       
          
          // datareader példányosítása, feltöltés a parancs ExecuteReader()
          // metódusát használva
          OleDbDataReader dataReader = cmd.ExecuteReader();       
          
          // datareader első sorának beolvasása
          dataReader.Read();                                       
          
          // a datareaded ugyfelszam mezőjének kiíratása a console-ra
          Console.WriteLine("Ugyfelszam: " + dataReader["ugyfelszam"]);       
          
          // datareader lezárása
          dataReader.Close();                       
          
          // kapcsalat lezárása
          con.Close();               
          Console.ReadLine();
     }
     // kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibaüzenet kiíratása
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.4.2. Az előző feladatban használt lekérdezés minden sorát írja ki. Használja a StringBuilder Append() metódusát. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";       
          
          // kapcsolat példányosítása, benne a kapcsolati string-gel, ami
          // paraméterezett
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                               
          con.Open();
          
          // utasitas nevű string deklarálása, benne a SELECT paranccsal
          String utasitas = "SELECT ugyfelszam FROM vevo";
          
          // utasítás létrehozása a kapcsolathoz
          OleDbCommand cmd = con.CreateCommand();       
          
          // az utasítás beállítása az utasitas szöveges változóhoz
          cmd.CommandText = utasitas;               
          // paraméter példányosítása
          OleDbParameter parameter = new OleDbParameter();
          
          // datareader példányosítása, feltöltés a parancs ExecuteReader()
          // metódusát használva
          OleDbDataReader dataReader = cmd.ExecuteReader();
          
          // stringbuilder létrehozása az eredmény tárolásához
          System.Text.StringBuilder eredmeny = new System.Text.StringBuilder();
          
          // while ciklus használata az eredmeny stringbulider feltöltéséhez
          while (datareader.Read())                                                               
          {
               eredmeny.Append("ugyfelszam = ");
                       // a datareader ugyfelszam mezőjének értéke bekerül az eredmeny
               // nevű stringbuliderbe, annak Append() metódusát használva
                     eredmeny.Append(datareader["ugyfelszam"] + "\n");                                eredmeny.Append("\n");
          }
          // eredmeny kiíratása
          Console.WriteLine(eredmeny);       
          
          // a datareader bezárása
          dataReader.Close();       
          
          // kapcsolat lezárása
          con.Close();
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibaüzenet kiíratása
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.4.3. Ugyanezen lekérdezés kiíratása StringBuilder nélkül, azonnal a Console-ra. Hiba esetén a program jelezzen.
     try
     {
          // OdbcConnection példányosítása a kapcsolathoz
          OdbcConnection con = new OdbcConnection();       
          
          // kapcsolati string beállítása
          con.ConnectionString = "Driver={SQL  Server};Server=localhost;"
          +"UID=username;PWD=password;Database=telefon;";       
          
          // kapcsolat megnyitása       
          con.Open();                               
          // utasítás példányosítása
          OdbcCommand cmd = new OdbcCommand("SELECT ugyfelszam FROM vevo", con);
          
          // parancs végrehajtása, az eredményt egy DataReader objektum tárolja
          OdbcDataReader dataReader = cmd.ExecuteReader();       
          
          // ciklus, amígy a datareader-ből olvasás igaz-zal tér vissza (amíg
          // lehet olvasni)
          while (dataReader.Read())                                                               
          {
               // ugyfelszam kiíratása console-ra
               Console.WriteLine("Ugyfelszam: "+dataReader["ugyfelszam"]);               
          }
          // datareader lezárása
          dataReader.Close();       
          
          // kapcsolat lezárása
          con.Close();       
          Console.ReadLine();
     }
     // kivételek elkapása
     catch (Exception ex)                                                                       
     {
          // hiba kiíratása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.4.4. Kapcsolódjon paraméteresen az adatbázishoz, hajtson végre egy lekérdezést, és az eredményt DataSet-ben tárolja. Ezután írja ki annak írja ki első sorát. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása paraméterezett kapcsolathoz
          String user = "username", pwd = "password";                               
          
          // kapcsolat példányosítása, a kapcsolati string paraméterezett
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1;
          Password="+ pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                                       
          con.Open();               
          
          // adapter létrehozása, benne a lekérdezés sql parancsával
          OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT ugyfelszam FROM vevo", con);
          
          // DataSet példányosítása a lekérdezett adatok táblázatban történő tárolásához
          DataSet dataSet = new DataSet();
          
          // az adapterben lévő lekérdezés végrehajtása, annak eredménye betöltve // a DataSet-be, a vevo nevű táblába
          adapter.Fill(dataSet, "vevo");       
          
          // DataRow objektum létrehozása, amiben letároljuk a DataSet vevo
          // táblájának 0. sorát
          DataRow row = dataSet.Tables["vevo"].Rows[0];       
          
          // a DataRow ugyfelszam nevű cellájában lévő érték kiíratása console-ra
          Console.WriteLine("Ugyfelszam:" + "\t" + row["ugyfelszam"]);
          
          // a DataSet kiürítése              
          dataSet.Clear();       
          
          // kapcsolat lezárása
          con.Close();       
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibák kiíratása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                        Console.ReadLine();
     }
2.7.4.4.5. Az előző lekérdezés eredményét a DataSet-ből foreach ciklussal irassa ki. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók a paraméterezhető kapcsolathoz
          String user = "username", pwd = "password";       
          
          // paraméterezett kapcsolat példányosítása
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                                                       
          con.Open();          
          
          // új adapter példányosítása, benne a paranccsal
          OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT ugyfelszam FROM vevo", con);
          
          // DataSet példányosítás az adatok tárolására
          DataSet dataSet = new DataSet();       
          
          // a parancs eredményének betöltése a DataSet-be, a "vevo" táblába
          adapter.Fill(dataSet, "vevo");       
          
          // foreach ciklussal a vevo táblából sorokat (jelen esetben mindig az
          // ugyfelszam cellát) szedjük ki
          foreach (DataRow row in dataSet.Tables["vevo"].Rows)                               
          {
               Console.WriteLine("Ugyfelszam:" + "\t" + row["ugyfelszam"]);
          }
          // kapcsolat lezárása
          con.Close();
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)
     {
          // hibák kiíratása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());
          Console.ReadLine();
     }

2.7.4.5. Tárolt eljárás-, függvényhívások

2.7.4.5.1. Sikeres kapcsolódás után a ’vevo_csomag’ ’delete_vevo’ tárolt eljárását használva törölje azon vevőt, akinek ügyfélszáma 11223344. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";                               
          
          // paraméterezett kapcsolat pédányosítása
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");       
          
          // kapcsolat megnyitása az Open() metódussal
          con.Open();                               
          
          // utasítás létrehozása üres törzzsel
          OleDbCommand cmd = con.CreateCommand();       
          
          // az utasítás típusa egy tárolt eljárás
          cmd.CommandType = System.Data.CommandType.StoredProcedure;
          
          // az utasítás szövege: a vevo_csomag-ban taláható delete_vevo procedúra
          // végrehajtása
          cmd.CommandText = "vevo_csomag.delete_vevo";
          
          // paraméter példányosítása
          OleDbParameter parameter = new OleDbParameter();
          
          // paraméter értéke: ezt az ugyfelszamú vevőt törli az eljárás a
          // táblából
          parameter.Value = "11223344";
          
          // a paraméter hozzárendelése az utasításhoz
          cmd.Parameters.Add(parameter);
          
          // utasítás végrehajtása
          cmd.ExecuteNonQuery();
          
          // kapcsolat lezárása
          con.Close();
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibák kiíratása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.5.2. Szúrjon be egy új sort a ’vevo’ táblába a ’vevo_csomag’-ban található ’insert_vevo’ tárolt eljárás segítségével. Hiba esetén a program jelezzen!
     try
     {
          // szöveges változók létrehozása paraméterezett kapcsolathoz
          String user = "username", pwd = "password";                                       
          
          // paraméterezett kapcsolat példányosítása
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                       
          con.Open();                       
          
          // utasítás létrehozása
          OleDbCommand cmd = con.CreateCommand();
          
          // az utasítás típusa: belső tárolt eljárás
          cmd.CommandType = System.Data.CommandType.StoredProcedure;       
          
          // az utasítás törzsének megadása: a vevo_csomag-ban taláható
          // insert_vevo procedúra használata
          cmd.CommandText = "vevo_csomag.insert_vevo";                                                               
          // paraméter példányosítása
          OleDbParameter parameter1 = new OleDbParameter();                       
          
          // paraméter értékének megadása
          parameter1.Value = "11223344";                       
          
          // paraméter hozzárendelése az utasításhoz
          cmd.Parameters.Add(parameter1);                                                                                       
          OleDbParameter parameter2 = new OleDbParameter();
          parameter2.Value = "Hugo";
          cmd.Parameters.Add(parameter2);
          
          OleDbParameter parameter3 = new OleDbParameter();
          parameter3.Value = "hugo@hotmail.com";
          cmd.Parameters.Add(parameter3);
          
          OleDbParameter parameter4 = new OleDbParameter();
          parameter4.Value = "670652244";
          cmd.Parameters.Add(parameter4);
          
          OleDbParameter parameter5 = new OleDbParameter();
          parameter5.Value = "3671";
          cmd.Parameters.Add(parameter5);
          
          OleDbParameter parameter6 = new OleDbParameter();
          parameter6.Value = "Varos";
          cmd.Parameters.Add(parameter6);
          
          OleDbParameter parameter7 = new OleDbParameter();
          parameter7.Value = "Ut";
          cmd.Parameters.Add(parameter7);
          
          OleDbParameter parameter8 = new OleDbParameter();
          parameter8.Value = "54";
          cmd.Parameters.Add(parameter8);
          
          // utasítás végrehajtása
          cmd.ExecuteNonQuery();       
          
          // kapcsolat lezárása
          con.Close();                                                                               
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibák kiíratása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.5.3. Kapcsolódjon az adatbázishoz, mad a 'vevo_csomag'-ban található 'update_vevo' tárolt eljárást használva írja felül az 11223344 ügyfélszámú ügyfél adatait tetszőleges értékekkel. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";                       
          
          // paraméterezett kapcsolat példányosítása
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");       
          
          // kapcsolat megnyitása
          con.Open();               
          
          // utasítás létrehozása
          OleDbCommand cmd = con.CreateCommand();               
          
          // az utasítás egy tárolt eljárás
          cmd.CommandType = System.Data.CommandType.StoredProcedure;       
          
          // utasítás: update_vevo eljárás a vevo_csomag-ból
          cmd.CommandText = "vevo_csomag.update_vevo";                                       
          
          // paraméter példányosítása
          OleDbParameter parameter1 = new OleDbParameter();
          
          // értékadás a paraméternek
          parameter1.Value = "11223344";       
          
          // paraméter hozzárendelése az utasításhoz
          cmd.Parameters.Add(parameter1);                                                                                               
          OleDbParameter parameter2 = new OleDbParameter();
          parameter2.Value = "Kazmer";
          cmd.Parameters.Add(parameter2);
          
          OleDbParameter parameter3 = new OleDbParameter();
          parameter3.Value = "hugo@hotmail.com";
          cmd.Parameters.Add(parameter3);
          
          OleDbParameter parameter4 = new OleDbParameter();
          parameter4.Value = "670652244";
          cmd.Parameters.Add(parameter4);
          
          OleDbParameter parameter5 = new OleDbParameter();
          parameter5.Value = "3671";
          cmd.Parameters.Add(parameter5);
          
          OleDbParameter parameter6 = new OleDbParameter();
          parameter6.Value = "Varos";
          cmd.Parameters.Add(parameter6);
          
          OleDbParameter parameter7 = new OleDbParameter();
          parameter7.Value = "Ut";
          cmd.Parameters.Add(parameter7);
          
          OleDbParameter parameter8 = new OleDbParameter();
          parameter8.Value = "54";
          cmd.Parameters.Add(parameter8);
          
          // utasítás végrehajtása
          cmd.ExecuteNonQuery();       
          
          // kapcsolat lezárása
          con.Close();                                                                               
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibák kiíratása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());               
          Console.ReadLine();
     }

2.7.4.6. XML kezelés

2.7.4.6.1. Kapcsolódjon az adatbázishoz, majd egy tetszőleges lekérdezés adatait mentse XML fileba. Ehhez szüksége lesz a példányosított DataSet WriteXml() metódusára. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";                               
          
          // kapcsolat példányosítása                               
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");       
          
          // kapcsolat megnyitása
          con.Open();               
          
          // egy string létrehozása, benne az utasításunkkal
          String utasitas = "SELECT ugyfelszam FROM vevo";       
          
          // egy OleDbCommand objektum példányosítása
          OleDbCommand cmd = con.CreateCommand();               
          
          // a cmd szövege az előb létrehozott string legyen
          cmd.CommandText = utasitas;               
          
          // adapter példányosítása
          OleDbDataAdapter adapter = new OleDbDataAdapter();       
          
          // parancs beállítása az adapterre
          adapter.SelectCommand = cmd;       
          
          // DataSet példányosítás
          DataSet dataSet = new DataSet();       
          
          // eredmények betöltése a dataSet-be
          adapter.Fill(dataSet, "vevo");       
          
          // a dataSet tartalmának kiírása xml file-ba
          dataSet.WriteXml(@"vevo.xml");                       
          
          // kapcsolat lezárása
          con.Close();                                                       
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)                                                                               
     {
          // hibák kiírása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.6.2. Az előző feladathoz hasonlóan szintén XML fileba mentse a lekérdezés eredményét, a mentést követően azonban törölje a DataSet-et, és töltse bele vissza az XML fileból a mentett adatokat, és ezek után írja ki a tartalmát Console-ra. Használja a WriteXml() és ReadXml() metódusokat! Hiba esetén a program jelezzen.
     try
     {       
     // szöveges változók létrehozása a paraméterezett kapcsolathoz
     String user = "username", pwd = "password";                                       
     
     // kapcsolat példányosítása
     OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");       
     
     // parancs szövege változóban
     String utasitas = "SELECT ugyfelszam FROM vevo";               
     
     // parancs létrehozása
     OleDbCommand cmd = con.CreateCommand();               
     
     // a parancs szövege a szöveges változóban lévő szöveg legyen
     cmd.CommandText = utasitas;                                       
     
     // adapter példányosítás
     OleDbDataAdapter adapter = new OleDbDataAdapter();               
     
     // parancs beállítása az adapterre
     adapter.SelectCommand = cmd;               
     
     // DataSet példányosítás
     DataSet dataSet = new DataSet();
     
     // kapcsolat megnyitása
     con.Open();                       
     
     // az eredmények betöltése a dataSet-be
     adapter.Fill(dataSet, "ugyfelszam");       
     
     // kapcsolat lezárása
     con.Close();       
     
     // adatok írása xml file-ba
     dataSet.WriteXml("ugyfelszam.xml");       
     
     // dataSet kiürítése
     dataSet.Clear();       
     // adatok olvasása xml file-ból vissza a dataSet-be
     dataSet.ReadXml("ugyfelszam.xml");          
     
     // dataTable létrehozása
     DataTable dataTable = dataSet.Tables["ugyfelszam"];       
     
     // ciklus a dataTable minden egyes mezőjére
     foreach (DataRow row in dataTable.Rows)                                               
     {
          // aktuális ügyfélszám kiírása
          Console.WriteLine("Ugyfelszam: " + row["ugyfelszam"]);               
     }
     Console.ReadLine();
     }
     // keletkező hibák elkapása
     catch (Exception ex)                                                                               
     {
          // hibák kiírása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());       
          Console.ReadLine();
     }
2.7.4.6.3. Mentse az XML file-t sémával!
     try
     {       
     // szöveges változók létrehozása a paraméterezett kapcsolathoz
     String user = "username", pwd = "password";               
     
     // kapcsolat példányosítása
     OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");       
     
     // parancs szövege változóban
     String utasitas = "SELECT ugyfelszam FROM vevo";               
     
     // parancs létrehozása
     OleDbCommand cmd = con.CreateCommand();       
     
     // a parancs szövege a szöveges változóban lévő szöveg legyen
     cmd.CommandText = utasitas;                                               
     
     // adapter példányosítás
     OleDbDataAdapter adapter = new OleDbDataAdapter();               
     
     // parancs beállítása az adapterre
     adapter.SelectCommand = cmd;               
     
     // DataSet példányosítás
     DataSet dataSet = new DataSet();
     
     // kapcsolat megnyitása
     con.Open();                                                               
     
     // az eredmények betöltése a dataSet-be
     adapter.Fill(dataSet, "ugyfelszam");
     
     // kapcsolat lezárása
     con.Close();               
     
     // adatok írása xml file-ba
     dataSet.WriteXml("ugyfelszam.xml");                       
     
     // adatok írása xml file-ba sémával
     dataSet.WriteXml("ugyfelszam_2.xml", XmlWriteMode.WriteSchema);       
     
     // séma kiírása
     dataSet.WriteXmlSchema("ugyfelszam_2_schema.xml");               
     
     // dataSet kiürítése
     dataSet.Clear();       
     
     // adatok olvasása xml file-ból vissza a dataSet-be
     dataSet.ReadXml("ugyfelszam.xml");                       
     
     // dataTable létrehozása
     DataTable dataTable = dataSet.Tables["ugyfelszam"];               
     
     // ciklus a dataTable minden egyes mezőjére
     foreach (DataRow row in dataTable.Rows)                                               
     {
          // aktuális ügyfélszám kiírása
          Console.WriteLine("Ugyfelszam: " + row["ugyfelszam"]);               
     }
     Console.ReadLine();
     }
     // keletkező hibák elkapása
     catch (Exception ex)                                                                               
     {
          // hibák kiírása console-ra
          Console.WriteLine("Hiba: " + ex.ToString());                                       
          Console.ReadLine();
     }
2.7.4.6.4. Töltse be egy DataSet-be egy korábban lementett lekérdezés (XML file) tartalmát, majd irassa ki a DataSet tartalmát. Ne kapcsolódjon adatbázishoz. Hiba esetén a program jelezzen!
   try
   {
   // dataSet létrehozása
   DataSet dataSet = new DataSet();
   
   // egy xml file beolvasása a dataSet-be
   dataSet.ReadXml("ugyfelszam.xml");                
   
   // dataTable létrehozása                                
   DataTable dataTable = dataSet.Tables["ugyfelszam"];                
   
   // ciklus a dataTable minden mezőjére
   foreach (DataRow row in dataTable.Rows)                                                
   {
   // a dataTable ugyfelszam mezőjének kiírása
   Console.WriteLine("Ugyfelszam: " + row["ugyfelszam"]);                
   }
   Console.ReadLine();
   }
   // keletkező kivételek elkapása
   catch (Exception ex)                                                                                
   {
   // ezek kiírása console-ra
   Console.WriteLine("Hiba: " + ex.ToString());                                        
   Console.ReadLine();
   }

2.7.4.7. Metaadatok feldolgozása

2.7.4.7.1. Írjon programot, amely kapcsolódik az adatbázishoz, és kérdezze le a 'vevo' tábla néhány metainformációját. Ha a program nem tér vissza sorral, az azt jelenti, hogy a tábla nem létezik. Hiba esetén a program jelezzen!
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";
          
          // kapcsolat példányosítása, benne a kapcsolati string-gel, ami
          // paraméterezett
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása       
          con.Open();
          
          // a tables DataTable-be kerülnek a 'vevo' tábla metainformációi
          DataTable tables = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, "vevo", "TABLE" });
          
          foreach (DataRow row in tables.Rows)
          {
               // a tábla neve kiíratása (VEVO)
               Console.WriteLine(row["TABLE_NAME"]);
                      
               // a tábla leírása (ha adtunk meg ilyet)
               Console.WriteLine(row["DESCRIPTION"]);
                      
               // létrehozás dátuma
               Console.WriteLine(row["DATE_CREATED"]);
          }
          // kapcsolat lezárása
          con.Close();
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)
     {
          // kivételek kiírása Console-ra
          Console.WriteLine("Hiba: " + ex.ToString());
          Console.ReadLine();
     }
2.7.4.7.2. Kapcsolódjon az adatbázishoz, majd listázza ki az abban található táblák mezőinek azonosítóit. Hiba esetén a program jelezzen.
     try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";
          
          // kapcsolat példányosítása, benne a kapcsolati string-gel, ami
          // paraméterezett
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // kapcsolat megnyitása                       
          con.Open();
          
          // a tables DataTable-be kerülnek az adatbázisban található mezők
          // információi
          DataTable tables = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, null);
          
          foreach (DataRow row in tables.Rows)
          {
               // kiírás Console-ra: TÁBLANÉV : MEZŐNÉV formátumban
                       // az összes adatbázisban található mező kiíródik
               Console.WriteLine(row["TABLE_NAME"] + " : " + row["COLUMN_NAME"]);
          }
          // kapcsalat lezárása
          con.Close();
          Console.ReadLine();
     }
     // keletkező kivételek elkapása
     catch (Exception ex)
     {
          // kivételek kiírása Console-ra
          Console.WriteLine("Hiba: " + ex.ToString());
          Console.ReadLine();
     }
2.7.4.7.3. Kapcsolódjon az adatbázishoz, majd listázza ki az abban található VEVO tábla CHAR típusú mezőinek azonosítóit, illetve azok hosszát. Hiba esetén a program jelezzen!
      try
     {
          // szöveges változók létrehozása a paraméterezett kapcsolathoz
          String user = "username", pwd = "password";
          
          // kapcsolat példányosítása, benne a kapcsolati string-gel, ami
          // paraméterezett
          OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password=" + pwd + "; User ID=" + user + "; Data Source=localhost;");
          
          // a kapcsolat megnyitása
          con.Open();
          
          // a tables-be bekerül az adatbázis összes mezőjének metainformációja
          DataTable tables = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, null);
          
          foreach (DataRow row in tables.Rows)
          {
               
               // ha a mező 'DATA_TYPE' tulajdonsága 129 (CHAR), és a tábla neve
               // 'vevo', akkor írja ki a mező metainformációit
               if((Convert.ToInt32(row["DATA_TYPE"]) == 129) &&
               (Convert.ToString(row["TABLE_NAME"])=="VEVO"))
               {
                            Console.WriteLine(row["TABLE_NAME"] + ", " +
                    row["COLUMN_NAME"] + ", " + row["DATA_TYPE"] + ", " +
                    row["CHARACTER_MAXIMUM_LENGTH"]);
               }
          }
          
          //kapcsolat lezárása
          con.Close();
          Console.ReadLine();
     }
     //keletkező kivételek elkapása
     catch (Exception ex)
     {
          // kivétel szövegének kiírása Console-ra
          Console.WriteLine("Hiba: " + ex.ToString());
          Console.ReadLine();
     }

2.7.4.8. Hibakezelés

2.7.4.8.1. Kapcsolódjon az adatbázishoz, majd írja ki a kapcsolat főbb tulajdonságait, valamint ha OleDbException keletkezik, azt kapja el. Használja a finally ágat is, itt zárja le a kapcsolatot.
      // szöveges változók a paraméterezett kapcsolathoz
     String user = "username", pwd = "password";
     
     // kapcsolat példányosítása, itt a paraméterezett kapcsolati String
     OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password="+ pwd + "; User ID=" + user + "; Data Source=localhost;");
     
     try
     {
          // kapcsolat megnyitása
          con.Open();
          Console.WriteLine("Kapcsolat megnyitva.");
          Console.WriteLine("\tKapcsolat String: {0}",con.ConnectionString);
          Console.WriteLine("\tAdatbázis: {0}",con.Database);
          Console.WriteLine("\tAdatforrás: {0}",con.DataSource);
          Console.WriteLine("\tSzerver verzió: {0}",con.ServerVersion);
          Console.WriteLine("\tÁllapot: {0}",con.State);
     }
     // keletkező OleDbException elkapása
     catch (OleDbException e)
     {
          // a hiba okának kiírása Console-ra
          Console.WriteLine("Hiba: " + e);
          Console.ReadLine();
     }
     finally
     {
          // végül a kapcsolat lezárása
          con.Close();
          Console.WriteLine("Kapcsolat lezárva.");
          Console.ReadLine();
     }
2.7.4.8.2. Kapcsolódjon az adatbázishoz, és kapja el a lehetséges exception-öket. Használja a finally ágat is, itt zárja le a kapcsolatot.
     String user = "username", pwd = "password";
     OleDbConnection con = new OleDbConnection(@"Provider=MSDAORA.1; Password="+ pwd + "; User ID=" + user + "; Data Source=localhost;");
     
     try
     {
          con.Open();
          
          // adapter létrehozása, benne a lekérdezés sql parancsával
          OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT ugyfelszam FROM vevo", con);
          
          // DataSet példányosítása a lekérdezett adatok táblázatban történő
          // tárolásához
          DataSet dataSet = new DataSet();
          
          // az adapterben lévő lekérdezés végrehajtása, annak eredménye betöltve
          // a DataSet-be, a vevo nevű táblába
          adapter.Fill(dataSet, "vevo");
          
          // ez a sor hibás, exceptiont fog okozni
          DataRow row = dataSet.Tables["nincs_ilyen_table"].Rows[0];
          
          // a DataRow ugyfelszam nevű cellájában lévő érték kiíratása console-ra
          Console.WriteLine("Ugyfelszam:" + "\t" + row["ugyfelszam"]);
          
          // a DataSet kiürítése              
          dataSet.Clear();
     }
     // DataException elkapása, majd kiíratása
     catch (DataException e)
     {
          Console.WriteLine("DataException: " + e);
          Console.ReadLine();
     }
     // SystemException elkapása, majd kiíratása
     catch (SystemException e)
     {
          Console.WriteLine("SystemException: " + e);
          Console.ReadLine();
     }
     // minden más Exception kiíratása
     catch (Exception e)
     {
          Console.WriteLine("Other Exception: " + e);
          Console.ReadLine();
     }
     finally
     {
          // végül a kapcsolat lezárása
          con.Close();
          Console.WriteLine("Kapcsolat lezárva.");
          Console.ReadLine();
     }