[Linux-programlama] Re: Sqlite ile aynı veritabanında iki ayrı tablo kullanımı?

---------

[Linux-programlama] Re: Sqlite ile aynı veritabanında iki ayrı tablo kullanımı?

From: Mucibirahman Ä°LBUÄžA <mucip.ilbuga_at_gmail.com>
Date: Mon, 16 Jun 2008 17:39:31 +0300
Message-ID: <48567B23.60300@gmail.com>

Selamlar,
Aynı bağlantı'dan (connection) iki ayrı kursör (cursor) oluştursanız
bile birisi okurken diğeri yazma yapacağı için "DB locked" hatası
veriyor. Sqlite incelediğimde birden fazla bağlantı yapılabilir ama
sadece birisi yazma yapabilir diyor...

Neyse fazla zamanım olmadığından ":memory:" tür bir VT yaratarak çözdüm.
Ancak stok kart sayısı arttığında PDA'nın hafızası ne kadar dayanır onu
bilmiyorum. Deneyip göreceğiz :(

Her fatura oluşturma esnasında DepoKart'ına kayıt atmanın bir anlamı
yok. Performans kaybı olacaktır. Kullanıcı depo stok miktarını görmek
istediğinde bu rutin çalışacak ve kısa bir bekleme ile depo adetleri
görünecek. Bana bu daha mantıklı geldi :)

Ancak takas dosya kullanmadan bir çözüm bulabilir isek bu daha hoş olur...

Teşekkürler,
Mucip:)

Zekeriye Bozkurt yazmış:
> Selamlar;
>
> cursor sayısını 3 yerine 2 veya tek cursor kullanabilecek şekilde
> kodunu yazamaz mıyız ?
> ( şu an aklıma 2 cursor olarak yazılabiliyor ama tek cursor ile olurmu
> hatırlayamadim)
>
> cursor1
> SELECT FATURADETAY.faturastokkod, sum() as sonuc from faturadetay
> where faturadetay.stokkod IN (SELECT STOKKOD from stokkart)
>
> cursor2
> update . . . .
>
> Sqlite connection da aynı anda çalışabilecek cursor sayısı konusunda
> bir sınır mevcut olmasın ?
>
> PS: Bu kodu sadece bir defa calistirmak bana mantikli geliyor.
> Faturadetay tablolarında stok hareketi olustugunda faturadetaya kayıt
> yaparken bu update iÅŸlemini storec proc ile (veya trigger vs . . .)
> yapmak daha mantıklı görünüyor
>
> Zekeriya BOZKURT
>
>
> ------------------------------------------------------------------------
> Date: Mon, 16 Jun 2008 16:05:35 +0300
> From: mucip.ilbuga_at_gmail.com
> To: linux-programlama_at_liste.linux.org.tr
> Subject: [Linux-programlama] Sqlite ile aynı veritabanında iki
> ayrı tablo kullanımı?
>
> Selamlar,
> Sqlite kullanıyorum. Bir tablo üzerindeki adetleri toplayarak
> diğer bir tabloya kaydetmek istiyorum. Ancak aynı connection'u
> kullanırsam sorun veriyor. farklı connection yaratırsamda
> veritabanı kilitli diyor...
> Kısaca StokKod ve Adet hanelerinin bulunduğu bir DepoKart tablom
> var. Bir de FaturaDetay tablom... Bu detaydaki hareketleri
> toplayarak (-/+) sonucu DepoKart dosyasına yazmak istiyorum ki
> elimde ne kadar stok kaldığını bileyim. Bu şekilde çözülme yöntemi
> var mı yoksa ara bir VT (hafıza olsa da olur?) mi kullanmalıyım.
> Ancak PDC üzerinde yazdıım için hafıza tablosu kullanmak sorun
> yaratabilir...
>
> Kod şöyle:
>
> *connection=sqlite3.connect(VTYol)
> cursor = connection.cursor()
> cursor2 = connection.cursor()
> cursor3 = connection.cursor()
> cursor.execute("SELECT StokKart.StokKod FROM StokKart")
> for row in cursor:
> cursor2.execute("SELECT FaturaDetay.FaturaStokKod,
> SUM(FaturaHareket*FaturaAnaAdet) AS Sonuc FROM FaturaDetay WHERE
> FaturaDetay.FaturaStokKod='" + row[0]+ "'")
> StokSayisi = cursor2.fetchone()
> cursor3.execute("UPDATE DepoKart SET DepoStokAdet='"+
> str(StokSayisi[1]) +"' WHERE DepoKart.DepoStokKod='" +
> StokSayisi[0] + "'")
> connection.commit()
> cursor.close()
> cursor2.close()
> cursor3.close()
>
> connection.close()*
>
>
> --
> Teşekkürler,
> Mucip:)
>
>
> ------------------------------------------------------------------------
> Aileniz ve arkadaşlarınızla paylaşmak için bir ayda 500'e kadar
> fotoğraf gönderin! Şimdi ücretsiz Windows Live Alanınıza gidin Buraya
> tıkla! <http://get.live.com/spaces/overview>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>

-- 
Kolay gelsin,
Mucip:)

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Mon 16 Jun 2008 - 17:07:35 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.