makaleler / Python Kütüphaneleri / (pysqlite2) python sqllite kütüphanesi

(pysqlite2) python sqllite kütüphanesi

24.04.2011 15:36:50

python SQLite kütüphanesi örnekleri

	from pysqlite2 import dbapi2 as sqlite
	DATABASE = '/home/kullanici/databases/test.db'

	try:
		cnn = sqlite.connect(DATABASE, timeout=15)
		crs = cnn.cursor()

		# tablodan okuma
		sql = 'SELECT * FROM tablo'
		crs.execute(sql)
		view = crs.fetchall()

		for row in view:
			alan0 = row[0]
			alan1 = row[1]
			print alan1, alan2

		# tabloda degisiklik
		sql = 'UPDATE tablo SET alan1 = deger'
		crs.execute(sql)
		cnn.commit()

		crs.close()
		cnn.close()

		return True
	except:
		return False



Tips
	. Değişikliklerin ne zaman işleneceği (Isolation Level)
		cnn = sqlite.connect(DATABASE, isolation_level=ISOLATION_LEVEL)
			veya
		cnn.isolation_level = ISOLATION_LEVEL

		ISOLATION_LEVEL şu değerleri alabilir:
			None		-> AutoCommit yapar
			'DEFERRED'	-> BEGIN ile kilitleme yapılmaz. 
					   İlk okuma ile SHARED lock yapılır; başkaları okuma yapabilir ama yazma yapamaz
					   İlk yazma ile RESERVED lock yapılır; SHARED locklar bitince yazma işlemini yapar
			'IMMEDIATE'	-> Transaction başlar başlamaz, RESERVED lock yapılır
					   Transaction esnasında diğer processler okuma yapabilir ama yazma yapamaz
			'EXCLUSIVE'	-> BEGIN ile EXCLUSIVE lock yapılır
					   Transaction bitmeden başka processler okuma veya yazma yapamaz
	
	. Değişiklikler geri alınacaksa
		cnn.rollback()
	
	. Hafızada geçici dosya oluşturulacaksa... Geçici dosyayi sadece mevcut connection görür.
		cnn.connect(':memory:')
	
	. Sorgular icin timeout suresi (saniye)
		cnn.connect(DATABASE, timeout=15.0)

	. Asenkron modda çalışmak için... Verilerin diske yazılması beklenmez. RAM'deki veritabani ile çalışırken uygun.
		crs.execute('PRAGMA synchronous=OFF')

	. White-Ahead Log (WAL) journaling modu için veritabanı oluşturulurken bir kere...
		PRAGMA journal_mode = WAL;


	. veritabaninde resim tutmak
		sqlite3 resim.db "CREATE TABLE resim (id INTEGER PRIMARY KEY, res BLOB);"
		sqlite3 resim.db "INSERT INTO resim (res) VALUES (\"$(base64 -w0 resim.jpg)\");"
		sqlite3 resim.db "SELECT res FROM resim WHERE id=1;" | base64 -w0 -d > tmp.jpg
yazar husonet

Yorumlar

Bu içerik için sizde yorum yapabilirsiniz!
anasayfa | makaleler | haberler | dosyalar | linkler | hakkımızda