Çözüldü "sqlite3.OperationalError: incomplete output" hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Kunkka

Hectopat
Katılım
19 Ekim 2019
Mesajlar
1.422
Çözümler
4
Yer
Dire
Python'da veri tabanı oluşturmak ve kullanmakla ilgili bir kod yazmaya çalışıyorum lakin bazı hatalar alıyorum. Kod ve hata çıktısı ektedir. Yardım için şimdiden teşekkürler.

Python:
import sqlite3.
import time.

class Urun():
 def __init__(self,isim,adet,tur,fiyat):
 self.isim=isim
 self.adet=adet
 self.tur=tur
 self.fiyat=fiyat

 def __str__(self):
 return "Hayvan İsmi:{}\nAdet:{}\nHayvanın Türü:{}\nFiyat:{} Dolar".format(self.isim,self.adet,self.tur,self.fiyat)

class Hayvan_pazarı():
 def __init__(self):
 self.baglanti_olustur()

 def baglanti_olustur(self):
 self.baglanti=sqlite3.connect("stok.db")
 self.cursor=self.baglanti.cursor()
 komut="CREATE TABLE IF NOT EXISTS stok(İsim TEXT, Adet INT, Tür TEXT, Fiyat INT"
 self.cursor.execute(komut)
 self.baglanti.commit()

 def baglanti_kes(self):
 self.baglanti.close()

 def urunleri_goster(self):
 komut="Select * From stok"
 self.cursor.execute(komut)
 urunler=self.cursor.fetchall()
 if (len(urunler)==0):
 print("Hayvan pazarında ürün kalmamıştır.")

 else:
 for i in urunler:
 urun=Urun(i[0],i[1],i[2],i[3])
 print(urun)

 def urun_ekle(self,isim):
 komut="Insert Into stok values(?,?,?,?)"
 self.cursor.execute(komut,(isim.isim,isim.adet,isim.tur,isim.fiyat))
 self.baglanti.commit()

 def urun_sil(self,isim):
 komut="Delete from stok where İsim=?"
 self.cursor.execute(komut,(isim,))
 self.baglanti.commit()

 def adet_azalt(self,isim,adet):
 komut="Select Adet from stok where İsim=?"
 self.cursor.execute(komut,(isim,))
 urun_adet=self.cursor.fetchall
 for i in urun_adet:
 for j in i:
 if j<=0:
 print("Girdiğiniz ürünün stoğu tükenmiştir.")

 else:
 yeni_adet=j-miktar
 komut2="Update stok set Adet=? where İsim=?"
 self.cursor.execute(komut2,(yeni_adet,urun))
 self.baglanti.commit()

 def adet_artir(self,isim,adet):
 komut="Select Adet from stok where İsim=?"
 self.cursor.execute(komut,(isim,))
 urun_adet=self.cursor.fetchall()
 for i in urun_adet:
 for j in i:
 yeni_adet=j+miktar
 komut2="Update stok set Adet=? where İsim=?"
 self.cursor.execute(komut2,(yeni_adet,isim))
 self.baglanti.commit()

hayvan_pazarı=Hayvan_pazarı()

print("""
-----------------------
Hayvan Pazarı Uygulaması.
-----------------------
1- Ürünleri gör.
2- Hayvan ekle.
3- Hayvan sil.
4- Stok azalt.
5- Stok artır.
q- Exit.
-----------------------
""")

while True:
 islem=input("Ltfen yapmak istediğiniz işlemi giriniz:")
 if (islem=="q"):
 print("Program sonlandırılıyor...")
 hayvan_pazarı.baglanti_kes()
 break.
 elif (islem=="1"):
 hayvan_pazarı.urunleri_goster()

 elif (islem=="2"):
 isim = input("Ltfen eklemek istediğiniz hayvanın adını giriniz:")
 adet = input("Ltfen eklemek istediğiniz hayvan adedini giriniz:")
 tur = input("Ltfen eklemek istediğiniz hayvanın türünü giriniz:")
 fiyat = input("Ltfen eklemek istediğiniz hayvanın fiyatını giriniz:")
 yeni_urun=Urun(isim,adet,tur,fiyat)
 print("Hayvan stoğa ekleniyor...")
 time.sleep(2)
 hayvan_pazarı.urun_ekle(yeni_urun)
 print("Hayvan stoğa eklendi.")

 elif (islem=="3"):
 isim = input("Ltfen silmek istediğiniz hayvanın adını giriniz:")
 cevap = input("Emin misiniz? (E/H): ")
 if (cevap == "E"):
 print("Hayvan stoktan siliniyor...")
 time.sleep(2)
 hayvan_pazarı.urun_sil(isim)
 print("Hayvan stoktan silindi.")

 elif (islem=="4"):
 isim = input("Ltfen stoğunu azaltmak istediğiniz hayvanın adını giriniz:")
 adet=int(input("Ltfen azaltmak istediğiniz miktarı giriniz:"))
 print("Hayvan stoğu güncelleniyor...")
 time.sleep(2)
 hayvan_pazarı.adet_azalt(isim,adet)
 print("Hayvan stoğu güncellendi.")

 elif (islem=="5"):
 isim = input("Ltfen stoğunu artırmak istediğiniz hayvanın adını giriniz:")
 adet = int(input("Ltfen artırmak istediğiniz miktarı giriniz:"))
 print("Hayvan stoğu güncelleniyor...")
 time.sleep(2)
 hayvan_pazarı.adet_artir(isim, adet)
 print("Hayvan stoğu güncellendi.")

 else:
 print("Geçersiz işlem!")

Not: L*tfen yazmak yasakmış, ne alakaysa?
 

Dosya Ekleri

  • 1686933185147.png
    1686933185147.png
    43,2 KB · Görüntüleme: 21
Son düzenleme:
Sorunla alakalı bir bilgim yok fakat kodu incelerken gördüm, E/H'yi siz mi tanımladınız? Y/N olması gerekmez miydi? Python türkçe destekliyor mu?
 
Hata mesajını neden okumuyorsunuz? Hatanın nerede olduğunu ve nasıl çözeceğinizi zaten anlatmış.

Bak hata mesajı nediyor; Hayvan pazarı sınıfında, bağlantı oluştur metodu içinden çağrılan cursor.execute() metoduna girdiğiniz komut TAMAMLANMAMIŞ! diyor.
 
Hata mesajını neden okumuyorsunuz? Hatanın nerede olduğunu ve nasıl çözeceğinizi zaten anlatmış.

Bak hata mesajı nediyor; Hayvan pazarı sınıfında, bağlantı oluştur metodu içinden çağrılan cursor.execute() metoduna girdiğiniz komut TAMAMLANMAMIŞ! diyor.
Aynı kodu eğitimde izledim, çalışıyor. Benimkinde hata nedir anlayamadım?
 

Geri
Yukarı