Ruby ile Veri Tabanı (ODBC) – 2

Merhabalar,

İlk yazımızda Ruby veri tabanı bağlantılarını incelemiş, bir Önceki yazımızda ise ODBC ile veri tabanı bağlantısı gerçekleştirmiş ve ufak tefek işlemler yapmıştık. Şimdi ise Ruby’de ODBC hakkında daha detaylı bilgiler aktaracağız. Fazla lafı uzatmadan konumuza geçelim. Ön bilgi olarak bu adresden module dÖkümantasyonuna ulaşılabileceğinizi de belirtmem gerekir.

Ruby ODBC bir modül içerisinde yer alır. Bu modülün adı ODBC’dir ve aşağıdaki kodlar ile kullanılabilir.
[ruby]
require ‘odbc’
# include’u kullandığımızda, ODBC::Driver yerine Driver kullanabiliriz.
include ODBC
[/ruby]
Bu ana modül içerisinde connection_pooling, datasources, drivers gibi methodların yanı sıra date, time alanları ile ilgili methodlar da mevcuttur. Bu methodların tanımlarını Türkçe’ye çevirmek gerekir ise;
datasources: Bilinen veri kaynaklarının isimlerini dizi olarak verir.
drivers: Bilinen veri sürücülerinin isimlerini dizi olarak verir.
error: Son hata mesajını barındırır.
info: Son uyarı mesajını barındırır.
clear_error: Son hata ve uyarı mesajlarını temizler.
raise: ODBC::Error sınıfından bir hata’yı fırlatmak için kullanılır. (throw)
newenv: Yeni bir bağlantı ortamı dÖner.
connection_pooling: Tüm işlem bazında bağlantılar havuzunun oluşturulup oluşturulmayacağını belirtir.
connect: dns, user ve password bilgileri ile veri tabanına bağlanır ve gereye bu veri tabanını gÖsteren bir ODBC::Database nesnesi dÖner.

İncelemekte olduğumuz ODBC modülü içerisindeki sınıf yapısı şu şekildedir.
Ruby ODBC Sınıf yapısı
Şekilden de anlaşılacağı gibi, ‘Object’ sınıfı ODBC modülünde temel sınıf olarak gÖrev yapmaktadır. Error ve ODBCProc’u bu yapının dışında tutulmuştur. Environment, Database ve Statement arasında bir miras alma ilişkisi mevcuttur.

Temel sınıflara deyinecek olursak;
Environment: Veri tabanına bağlanılacak olan ortamı temsil eder. Kısaca ODBC::Database nesnelerini gruplamak için kullanılır. Buna ek olarak Transaction işlemlerini yÖnetmek gibi bir gÖrevi de vardır. Methodlarını Türkçe’ye çevirmek gerekir ise;
commit: Başlatılmış olan işlem kümesini olumlu sonuçlandırır ve kayıt işlemi yapar.
rollback: Başlatılmış olan işlem kümesini olumsuz sonuçlandırır ve kayıt işlemlerini iptal eder, yapmaz.
transaction: İşlem kümesini başlatır. Herhangi bir kod bloğu alarak çalışır, kod bloğunda bir hata olursa rollback işlemini gerçekleştirir, kod bloğu içerisinde herhangi bir hata oluşmaz ise, commit işlemi gerçekleştirilir.

Database: Veri tabanını temsil eder. Tüm veri tabanı işlemleri bu sınıf üzerinde yapılabilir. Tüm veri geri dÖnen methodları ODBC::Statement geri dÖner. Üzerinde bir çok method bulunur, bu methodlardan Önemli olanları Türkçe’leştirmek gerekir ise;
connected?: Bağlı olup olmadığı bilgisi.
drvconnect(drv): Bağlantı esnasında kullanılanılacak Driver(sürücü) bilgisi.
disconnect(no_drop=false): Bağlantıyı sonlandırır, eğer no_drop true verilir ise, bu nesne kullanılarak yaratılmış olan tüm ODBC::Statement‘lar drop edilmeden bağlantı kesilir. Diğer durumda tüm aktif ODBC::Statement‘lar drop edilir.
newstmt: Herhangi bir SQL hazırlamadan veya çalıştırmadan yeni bir ODBC::Statement verir. Bu işlem ile ODBC:Statement.set_option kullanarak Özel opsiyonlarla herhangi bir SQL cümlesini çalıştırmanıza olanak verir. Bu method’un dışında boş ve veri tabanına bağlı ODBC::Statement elde etmenin herhangi bir yolu yoktur.
tables([pattern]), columns, indexes, primary_keys, foreign_keys, table_privileges, procudures, special_columns, get_info: Bu method’lar isimlerinden de anlaşılacağı gibi, veri tabanında verinin saklanması ile ilgili bir takım Özel alanları bize verirler. Tüm method’lar geriye bir ODBC::Statement dÖner.
run(sql[,args…]): Verilen sql cümlesini, ‘args’ parametreleri ile hazırlar ve çalıştırır, dÖnüş değerini bir ODBC::Statement ile bize verir. ‘Select’ cümleleri için idealdir.
do(sql[,args…]): Sql cümle hazırlanması ‘run’ ile aynıdır, fakat geriye sadece kaç adet kayıtın etkilendiğini belirten bir sayı dÖner. Özellikle ‘Insert’, ‘Update’, ‘Delete’ cümleleri için tasarlanmıştır.
prepare(sql): Sql cümlesini içeren bir ODBC::Statement geri dÖner.
get_option(option), set_option(option, intval): Veri tabanın opsiyonlarına, ayarlana erişim sağlar. Tüm optiyonların listesi şu şekildedir; SQL_AUTOCOMMIT, SQL_CONCURRENCY, SQL_QUERY_TIMEOUT, SQL_MAX_ROWS, SQL_MAX_LENGTH, SQL_NOSCAN, SQL_ROWSET_SIZE, SQL_CURSOR_TYPE.
autocommit[=option]: İşlem kümelerinin otomatik doğrulanıp ve kayıt edilmesine olanak verir. Destekleyen veri tabanlarında.
drop_all: Kendisinden alınmış olan tüm açık ODBC::Statement’ları düşürür.

Bir sonraki yazımızda, bu tanımları Örneklerle beraber açıklayacağım.

Kolay gelsin.

3 Yorum

  1. metin demiş ki:

    hosttaki veri tabanına kendi pc mden odbc ile nasıl bağlanırım:)

    07/06/2007
  2. metin demiş ki:

    bu konuda bana yardım edersenız cok sevinirim s.k.m.y.o öğrencisiym

    07/06/2007
  3. Merhaba Metin,

    Öncelikle internet üzerinde yer alan herhangi bir veri tabanı ile makinanda yer alan bir veri tabanı arasında ODBC açısından bir fark yoktur. Fakat genelde hosting firmaları veri tabanın güvenliÄŸi açısından veri tabanını internete açmazlar, sadece kendi üzerinde yer alan programlar tarafından kullanılmasına izin verirler. EÄŸer sen hosting firmanla bu güvenlik iÅŸlemini kaldırmaları konusunda anlaşırsan. ODBC baÄŸlantısı kurarken bilgisayarın adını yazdığın (veya ‘localhost’) yere ulaÅŸmak istediÄŸin IP adresini yazarak eriÅŸebilirsin. Ama güvenli bir baÄŸlantı kurabilmeyi baÅŸardığında bu iÅŸlemi yapmanı tavsiye ederim. EÄŸer bu güvenlik olayını gerçekleÅŸtirmez isen, veri tabanına nasıl sen eriÅŸebiliyor isen, tüm dünya üzerindeki internet kullanıcılarıda eriÅŸebilir duruma gelir ki, bu istemediÄŸimiz bir durumdur.

    Belkide en akılcısı veri tabanının bulunduğu yere küçük bir internet uygulaması kurmak(yazmak) ve bu internet uygulaması üzerinden erişim sağlamak olabilir.

    08/06/2007

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir