Terimakasih untuk orang-orang di luar sana yang kerjaannya senang membuat library atau pustaka berbagai macam rupa, entah itu engine, connector dan driver, sungguh kalian semua orang-orang hebat.
Ketika dapat tugas SBD dimana instruksinya adalah implementasi skema dan penangan trigger sebisa mungkin dilakukan di level basis data maka terdapat kebutuhan membuat aplikasi untuk menjalankan query2 sample/ transaksi yang diwajibkan itu (meski baru tadi diketahui dari Jole, kalau beliau dulu demonya pake pgAdmin) agar terlihat dengan jelas hasil2 trigger dan atau function yang harus diimplementasikan.
Sesaat kemudian saya berpikir, dan memutuskan bahwa dicoba kan saja untuk membuat aplikasi nya berbasis .NET. Baca2 dikit, ternyata connector yang tersedia di .NET hanya untuk sql server dan oracle akan tetapi si .NET ini menyediakan ODBC (open database connector, semacam skema umum pembangunan koneksi agar independen terhadap database apapun). Tapik, ya itu tadi , terima kasih untuk orang2 yang senang koding2 gak jelas tp berguna membuat library2 macam seperti contohnya si Npgsql ini.
Sekarang, pengen share aja sekedar beberapa operasi dasar yang bisa dilakukan. Agar bisa digunakan dalam aplikasi, Npgsql nya di donlot dan .dll di add di bagian reference project .
tambahkan :
Using Npgsql;
//beberapa properti
NpgsqlConnection conn = new NpgsqlConnection();
NpgsqlCommand commandP = new NpgsqlCommand();
//connection stringnya, disesuaikan dengan default instalasi di masing2 kompie
string connString = “Server=127.0.0.1;Port=5432;User Id=postgres;Password=xxxxx;Database=postgres;”;
Membuka Koneksi :
public void openConn()
{
try {
conn.ConnectionString= connString;
conn.Open();
if (conn.State == ConnectionState.Open)
{
this.myStatusLabel.Text = conn.State.ToString();
}
}
catch (Exception e)
{
myStatusLabel.Text = e.Message;
}
}
//yak, bagian pentingnya adalah, object connection di set parameter connection stringnya, kemudian gunakan fungsi Open , dan Voila ,,, kita sudah terhubung.
//Untuk menutup koneksi tinggal panggil conn.Close() saja
Membangun query :
//untuk membangun query diperlukan setting parameter terhadap object NpgsqlCommand berupa query ( dalam sintaks SQL Standard dan parameter object connection yang akan digunakan oleh si object NpgsqlCommand
public void createCommand(string _query)
{
commandP.CommandText = _query;
commandP.Connection = conn;
}
Melakukan eksekusi query yang tidak mengembalikan tupple :
public bool insertCollection(string _query)
{
try
{
this.openConn();
createCommand(_query);
int rowAffected = commandP.ExecuteNonQuery();
if (rowAffected < 1)
{
myStatusLabel.Text = “Insertion is failed”;
return false;
}
else
{
myStatusLabel.Text = “Insertion is succesfull”;
return true;
}
}
catch (Exception e)
{
myStatusLabel.Text = e.Message;
return false;
}
finally
{
closeConn();
}
}
Membangun query yang mengembalikan tupple :
//bikin object ini buat menampung hasil pembacaan
NpgsqlDataReader dr = commandP.ExecuteReader();
while (dr.Read())
{
for (i = 0; i < dr.FieldCount; i++)
{
Console.Write(“{0} \t”, dr[i]);
}
}
Cukup simpel ternyata, sekarang tinggal menyesuaikan query yang ingin dieksekusi. Berhubung di level aplikasi kita ckup panggil query karena seluruh constraint di cek di level basis data maka aplikasi dengan bantuan si Npgsql itu dapat di bangun dengan cepat.