Az első ODP .NET projekt
Az ODP, azaz az Oracle Data Provider .NET library kikísérletezésének legegyszerűbb módja, egy Console Application készítése. A teszteléshez a gyorsabb elérés érdekében saját Oracle Express adatbázisomat használtam a benne található példasémával. Oracle XE, ODP .NET és a Konzol, no meg az Exception-ök.
Az ODP sem bonyolultabb, mint bármilyen más .NET driver, előnye viszont abban rejlik, hogy nemcsak gyorsabb és hangolható elérést biztosít Oracle adatbázisainkhoz, de teljesen lefedi az abban elérhető adattípusok széles skáláját, melyek így különösebb trükközések nélkül elérhetőek közvetlenül .NET alkalmazásunkból.
Referenciák
Hozzuk létre új ConsoleApplication projektünket a Visual Studio File/New/Project/Windows/ConsoleApplication menü választásával. Ahhoz, hogy használni tudjuk az ODP .NET csomag nyújtotta lehetőségeket hozzá kell adnunk projektünk referenciához, melyet a Solution Explorer-ben található References mappára jobb egérgombbal kattintva érhetünk el az Add Reference menün keresztül. Ezután a megjelenő .NET listából válasszuk az Oracle.DataAccess 2.0-s .NET runtime komponensét. Ezután pedig adjuk meg ezt a library-t a Program.cs fejlécébe: using Oracle.DataAccess.Client;
OracleConnection
Itt is, mint mindenhol szükségünk van egy kapcsolat objektumra, mely megnyitja és lezárja az adatbázissal a kommunikációs csatornánkat. Ennek megfelelője esetünkben az OracleConnection, melynek konstruktorának adhatjuk át a a megszokott connectionstringet.
string connStr= "Data Source=(DESCRIPTION=(ADDRESS_LIST="
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))"
+ "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));"
+ "User Id=HR;Password=teszt;";
OracleConnection conn = new OracleConnection(connStr);
Kapcsolatunkat nyithatjuk és zárhatjuk a conn.Open() illetve conn.Dispose() metódusokkal, de használhatjuk a .NET alatt jól megszokott using() {} kulcsszót is.
OracleCommand
Felépített kapcsolatban vagy using eljárásban futtathatjuk SQL utasításainkat, melyeket az OracleCommand osztályból példányosíthatunk. Ezek lehetnek általunk szerkesztett SQL query-k vagy tárolt eljárás hívások, melyet a CommandType property-vel állíthatunk be.
conn.Open(); OracleCommand cmd = new OracleCommand(); cmd.Connection = conn; cmd.CommandText = "select deptno, dname, loc from dept"; cmd.CommandType = CommandType.Text;
OracleDataReader
Majd utasításunkat az ExecuteReader() metódussal futtatva, kiolvassunk annak eredményét az OracleDataReader osztály egy példányával, majd a példány Read() függvénnyel sorról sorra kiolvassuk amíg lehet és végül lezárjuk az egyes instanciákat a Dispose() metódussal
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Console.WriteLine(dr.GetInt16(0).ToString() + " - "
+ dr["STREET_ADDRESS"].ToString());
}
dr.Dispose();
cmd.Dispose();
conn.Dispose();
A Teljes mintakódunk így az alábbiak szerint néz ki:
using System;
using System.Data;
using Oracle.DataAccess.Client;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string connStr = "Data Source=(DESCRIPTION=(ADDRESS_LIST="
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))"
+ "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));"
+ "User Id=HR;Password=teszt;";
OracleConnection conn = new OracleConnection(connStr);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM LOCATIONS";
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Console.WriteLine(dr.GetInt16(0).ToString() + " - "
+ dr["STREET_ADDRESS"].ToString());
}
dr.Dispose();
cmd.Dispose();
conn.Dispose();
Console.ReadLine();
}
}
}
A forráskód letöltéséhez kattint ide: ODP .NET Első Console Demo Projekt

