Neler yeni
MEGAForum - Teknoloji Forumu

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

  • Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.

SQLite ve C

ByOnur58

MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,114
  • MFC Puanı
    10
SQLite, boyuna gore oldukca basarili, kucuk, servera ve yonetici paneline ihtiyac duymayan bir veri tabani
motorudur. C/C++ dilleri ile gelistirildigi icin genelde C/C++ ile calisan 3rd party open source yazilimlarda
tercih edilir. Qt, ROS gibi buyuk yazilimlarda ve bir cok kucuk boyutlu mobil yazilimlarda kullanilir.

Ilk yazida, C ve SQLite ile basit bir veri tabani olusturmadan bahsedecegim.
Oncelikle SQLite kurulumuna bakalim. Asagidaki ekran ciktisinda libsqlite3-dev uygulama gelistirmemiz icin yeterli.



sudo <package manager> <parameter> libsqlite3-dev

komutu ile kurulumunu yapabiliriz.

Deb: sudo apt-get install libsqlite3-dev
RPM: sudo yum install libsqlite3-dev

Asagidaki kod basit bir veri tabani olusturma, baglanma ve kapama uygulamasi icerir.


connection4e5dc.png



sqlite3 *db;

satiri sqlite3 tipinde, tipki bir FILE pointer’i gibi database pointer’i olusturma islemidir.

int sqlite3_open(const char *filename, sqlite3 **ppDb);

sqlite3_open() fonksiyonu ilk parametre olarak bir database adi alir. SQLite veri tabani icin genelde tercih edilen
uzanti .sqlite olmasina ragmen .db uzantisi da database dosya uzantisi olarak verilebilir. Uygulama icerisinde gecici
olarak bir database kullanilacaksa, bu parametre NULL olarak fonksiyona gonderilir. Ikinci parametre olusturulan veri
tabanini gosterecek sqlite ** tipinde bir degiskendir. Fonksiyon calisirken bir hata ile karsilasirsa 0, herhangi bir
hata yoksa 0 disinda bir integer return eder. Ozellikle Windows kullanicilarinin bu fonksiyonu kullanirken UTF-8 ve UTF-16
karakter formatlarina dikkat etmeleri gerekiyor. sqlite3_open() UTF-8 formatinda calisirken, UTF-16 icin sqlite3_open16()
adli fonksiyon kullaniliyor.

const char *sqlite3_errmsg(sqlite3*);

olusan hata mesajini almak icin kullanilan bir fonksiyondur. SQLite icerisinde birden fazla hata mesaji ve kodu veren
fonksiyon bulunmaktadir.

int sqlite3_close(sqlite3*);

fonksiyonu ise acilan veri tabanini kapatma islemi icin kullanilir. Parametre olarak sqlite pointer’ini alir. Veri tabani
kapatilirken herhangi bir hata ile karsilasilmazsa, bu fonksiyon SQLITE_OK sabit degerini return eder.
 
Üst Alt