Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - SQLite hatası
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

SQLite hatası

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
Rmeysa Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 16 Haziran 2025
Konum: konya
Durum: Aktif Değil
Puanlar: 7
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Rmeysa Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: SQLite hatası
    Gönderim Zamanı: 3 Saat 45 Dakika Önce Saat 15:38
Merhaba, veritabanı bağlantısı kurmaya çalışıyorum hata alıyorum. Nerede hata yapıyorum?
var
  yemekEkle: TclForm;
  Qry: TclSQLiteQuery;
  ymkAdi, kcal: TClProEdit;
  ogunsecimi: TCLComboBox;
  eklebtn: TClProButton;
  notelbl: TClProLabel;
  noteMemo: TCLMemo;
  lblToplam: TClProLabel;
  bugun: TCLDateTime;
  toplamKalori: Integer;
  yemek, kalori, ogun, satir: String;
  girilenDeger, i: Integer;
  database, password: String;
  
void TabloyuOlustur;
{
  database = Clomosy.AppFilesPath + 'ClomosyDatabase.db3';
  password = '';
  try {
    Clomosy.DBSQLiteConnect(database, password);
    Clomosy.DBSQLiteQuery.Sql.Text = 'CREATE TABLE IF NOT EXISTS YemekKayitlari ('+
      'id INTEGER PRIMARY KEY AUTOINCREMENT,'+
      'yemekAdi TEXT,'+
      'kalori INTEGER,'+
      'ogun TEXT,'+
      'tarih TEXT)';
    Clomosy.DBSQLiteQuery.OpenOrExecute;
  } except {
    ShowMessage('Tablo oluşturulurken hata oluştu: ' + LastExceptionMessage);
  }
}

void BtnOnClick;
{
  yemek = ymkAdi.Text;
  kalori = kcal.Text;
  ogun = ogunsecimi.Text;

  if (yemek == '')
  {
    ShowMessage('Yemek adı boş olamaz.');
    exit;
  }

  if (kalori == '')
  {
    ShowMessage('Kalori miktarı boş olamaz.');
    exit;
  }

  if (ogun == 'ÖĞÜN SEÇİNİZ')
  {
    ShowMessage('Lütfen bir öğün seçin.');
    exit;
  }


  try
  {
    girilenDeger = StrToInt(kalori);
  }
  except
  {
    ShowMessage('Lütfen geçerli bir kalori değeri girin!');
    exit;
  }

  // Tarih ata
  bugun = Date;

  // Satırı oluştur ve yaz
  satir = '[' + ogun + '] ' + yemek + ' - ' + IntToStr(girilenDeger) + ' kcal (' + DateToStr(bugun) + ')';
  noteMemo.Lines.Add(satir);

  // Kalori güncelle
  toplamKalori = toplamKalori + girilenDeger;
  lblToplam.Text = 'Toplam: ' + IntToStr(toplamKalori) + ' kcal';

 // Veritabanına kaydet
  try {
    Clomosy.DBSQLiteConnect(database, password);
    Clomosy.DBSQLiteQuery.Sql.Text = 
      'INSERT INTO YemekKayitlari (yemekAdi, kalori, ogun, tarih) VALUES (' +
      '''' + yemek + ''',' + kalori + ',' + '''' + ogun + ''',' + '''' + DateToStr(bugun) + ''')';
    Clomosy.DBSQLiteQuery.OpenOrExecute;
  } except {
    ShowMessage('Veri eklenemedi: ' + LastExceptionMessage);
    exit;
  }
  // Alanları temizle
  ymkAdi.Text = '';
  kcal.Text = '';
  ogunsecimi.ItemIndex = 0;

  ShowMessage('Yemek başarıyla eklendi!');
}



{
  yemekEkle = TclForm.Create(Self);
  Qry = TclSQLiteQuery.Create(nil);
  
  database=Clomosy.AppFilesPath+'ClomosyDatabase.db3';
  password='';

   ogunsecimi = yemekEkle.AddNewComboBox(yemekEkle,'ogunsecimi');
   ogunsecimi.Align = alTop;
   ogunsecimi.Height = 80;
   ogunsecimi.Margins.Top=10;
   
   ogunsecimi.AddItem('ÖĞÜN SEÇİNİZ','');
   ogunsecimi.AddItem('SABAH','');
   ogunsecimi.AddItem('İLK ARA ÖĞÜN','');
   ogunsecimi.AddItem('ÖĞLE','');
   ogunsecimi.AddItem('ARA ÖĞÜN','');
   ogunsecimi.AddItem('AKŞAM','');
   
   ymkAdi = yemekEkle.AddNewProEdit(yemekEkle,'ymkAdi','YEMEK ADI');
   ymkAdi.Align = alTop;
   ymkAdi.Width = 250;
   ymkAdi.Height = 60;
   ymkAdi.margins.top=10;
   ymkAdi.clProSettings.BorderColor = clAlphaColor.clHexToColor('#90EE90');
   ymkAdi.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
   ymkAdi.clProSettings.RoundHeight = 15;
   ymkAdi.clProSettings.RoundWidth = 15;
   ymkAdi.clProSettings.BorderWidth = 3;
   ymkAdi.clProSettings.FontSize = 12;
   ymkAdi.clProSettings.FontVertAlign = palcenter;
   ymkAdi.clProSettings.FontHorzAlign = palCenter;
   ymkAdi.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic];
   ymkAdi.clProSettings.IsFill = True; 
   ymkAdi.clProSettings.IsRound = True;
   ymkAdi.SetclProSettings(ymkAdi.clProSettings);
   
   kcal = yemekEkle.AddNewProEdit(yemekEkle,'kcal','KALORİ MİKTARI');
   kcal.Align = alTop;
   kcal.Width = 250;
   kcal.Height = 60;
   kcal.margins.top=10;
   kcal.clProSettings.BorderColor = clAlphaColor.clHexToColor('#90EE90');
   kcal.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
   kcal.clProSettings.RoundHeight = 15;
   kcal.clProSettings.RoundWidth = 15;
   kcal.clProSettings.BorderWidth = 3;
   kcal.clProSettings.FontSize = 12;
   kcal.clProSettings.FontVertAlign = palcenter;
   kcal.clProSettings.FontHorzAlign = palCenter;
   kcal.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic];
   kcal.clProSettings.IsFill = True; 
   kcal.clProSettings.IsRound = True;
   kcal.SetclProSettings(kcal.clProSettings);
   
   eklebtn = yemekEkle.AddNewProButton(yemekEkle,'eklebtn','');
   eklebtn.Align = alTop;
   eklebtn.Width = 150;
   eklebtn.Height = 70;
   eklebtn.Margins.Top=10;
   eklebtn.clProSettings.FontColor = clAlphaColor.clDarkorchid;
   eklebtn.clProSettings.FontSize = 12;
   eklebtn.clProSettings.FontVertAlign = palcenter;
   eklebtn.clProSettings.FontHorzAlign = palCenter;
   eklebtn.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic];
   eklebtn.clProSettings.IsFill = True; 
   eklebtn.clProSettings.PictureSource = 'https://resmim.net/cdn/2025/07/03/TnoYXI.png';
   eklebtn.SetclProSettings(eklebtn.clProSettings);
   yemekEkle.AddNewEvent(eklebtn, tbeOnClick, 'BtnOnClick');
   
   notelbl = yemekEkle.AddNewProLabel(yemekEkle,'notelbl','BUGÜN TÜKETİLEN YEMEKLER');
   notelbl.Align = alBottom;
   notelbl.Width = 150;
   notelbl.Height = 20;
   notelbl.Margins.Left = 10;
   notelbl.Margins.Bottom = 20;
   notelbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#00FA9A');
   notelbl.clProSettings.FontSize = 15;
   notelbl.clProSettings.FontVertAlign = palcenter;
   notelbl.clProSettings.FontHorzAlign = palLeading;
   notelbl.clProSettings.TextSettings.Font.Style = [fsBold];
   notelbl.SetclProSettings(notelbl.clProSettings);
   
   noteMemo = yemekEkle.AddNewMemo(yemekEkle,'noteMemo','');
   noteMemo.Align = alBottom;
   noteMemo.Height = 200;
   noteMemo.Width = 250;
   noteMemo.Margins.Left= 10;
   noteMemo.Margins.Right= 10; 
   noteMemo.Margins.Bottom= 50;
   noteMemo.ReadOnly = true;
   noteMemo.TextSettings.WordWrap = True;
 
   TabloyuOlustur;
   yemekEkle.Run;
}
Yukarı Dön
Mahmutdmr Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 20 Haziran 2025
Konum: Konya
Durum: Aktif Değil
Puanlar: 23
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Mahmutdmr Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 3 Saat 1 Dakika Önce Saat 16:22

Merhaba Rumeysa,
Öncelikle bazı syntax hataların var. Clomosy’de try ve except komutlarında {} kullanılmaz. Sadece except kullandıktan sonra } ile blok kapatılır ve kod bloğu aktif hale gelir.

Bir diğer sorun ise, prosedürlerin sonuna ; konulmaz.

Umarım yardımcı olabilmişimdir.


bir de  düzenlediğim kodu dener misin çalışacak mı ?


var

  yemekEkle: TclForm;

  Qry: TclSQLiteQuery;

  ymkAdi, kcal: TClProEdit;

  ogunsecimi: TCLComboBox;

  eklebtn: TClProButton;

  notelbl: TClProLabel;

  noteMemo: TCLMemo;

  lblToplam: TClProLabel;

  bugun: TCLDateTime;

  toplamKalori: Integer;

  yemek, kalori, ogun, satir: String;

  girilenDeger, i: Integer;

  database, password: String;

  

void TabloyuOlustur

{

  database = Clomosy.AppFilesPath + 'ClomosyDatabase.db3';

  password = '';

  try 

    Clomosy.DBSQLiteConnect(database, password);

    Clomosy.DBSQLiteQuery.Sql.Text = 'CREATE TABLE IF NOT EXISTS YemekKayitlari ('+

      'id INTEGER PRIMARY KEY AUTOINCREMENT,'+

      'yemekAdi TEXT,'+

      'kalori INTEGER,'+

      'ogun TEXT,'+

      'tarih TEXT)';

    Clomosy.DBSQLiteQuery.OpenOrExecute;

   except 

    ShowMessage('Tablo oluşturulurken hata oluştu: ' + LastExceptionMessage);

  }

}


void BtnOnClick

{

  yemek = ymkAdi.Text;

  kalori = kcal.Text;

  ogun = ogunsecimi.Text;


  if (yemek == '')

  {

    ShowMessage('Yemek adı boş olamaz.');

    exit;

  }


  if (kalori == '')

  {

    ShowMessage('Kalori miktarı boş olamaz.');

    exit;

  }


  if (ogun == 'ÖĞÜN SEÇİNİZ')

  {

    ShowMessage('Lütfen bir öğün seçin.');

    exit;

  }



  try

    girilenDeger = StrToInt(kalori);

  except

  

    ShowMessage('Lütfen geçerli bir kalori değeri girin!');

    exit;

  }


  // Tarih ata

  bugun = Date;


  // Satırı oluştur ve yaz

  satir = '[' + ogun + '] ' + yemek + ' - ' + IntToStr(girilenDeger) + ' kcal (' + DateToStr(bugun) + ')';

  noteMemo.Lines.Add(satir);


  // Kalori güncelle

  toplamKalori = toplamKalori + girilenDeger;

  lblToplam.Text = 'Toplam: ' + IntToStr(toplamKalori) + ' kcal';


 // Veritabanına kaydet

  try 

    Clomosy.DBSQLiteConnect(database, password);

    Clomosy.DBSQLiteQuery.Sql.Text = 

      'INSERT INTO YemekKayitlari (yemekAdi, kalori, ogun, tarih) VALUES (' +

      '''' + yemek + ''',' + kalori + ',' + '''' + ogun + ''',' + '''' + DateToStr(bugun) + ''')';

    Clomosy.DBSQLiteQuery.OpenOrExecute;

   except 

    ShowMessage('Veri eklenemedi: ' + LastExceptionMessage);

    exit;

  }

  // Alanları temizle

  ymkAdi.Text = '';

  kcal.Text = '';

  ogunsecimi.ItemIndex = 0;


  ShowMessage('Yemek başarıyla eklendi!');

}




{

  yemekEkle = TclForm.Create(Self);

  Qry = TclSQLiteQuery.Create(nil);

  

  database=Clomosy.AppFilesPath+'ClomosyDatabase.db3';

  password='';


   ogunsecimi = yemekEkle.AddNewComboBox(yemekEkle,'ogunsecimi');

   ogunsecimi.Align = alTop;

   ogunsecimi.Height = 80;

   ogunsecimi.Margins.Top=10;

   

   ogunsecimi.AddItem('ÖĞÜN SEÇİNİZ','');

   ogunsecimi.AddItem('SABAH','');

   ogunsecimi.AddItem('İLK ARA ÖĞÜN','');

   ogunsecimi.AddItem('ÖĞLE','');

   ogunsecimi.AddItem('ARA ÖĞÜN','');

   ogunsecimi.AddItem('AKŞAM','');

   

   ymkAdi = yemekEkle.AddNewProEdit(yemekEkle,'ymkAdi','YEMEK ADI');

   ymkAdi.Align = alTop;

   ymkAdi.Width = 250;

   ymkAdi.Height = 60;

   ymkAdi.margins.top=10;

   ymkAdi.clProSettings.BorderColor = clAlphaColor.clHexToColor('#90EE90');

   ymkAdi.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');

   ymkAdi.clProSettings.RoundHeight = 15;

   ymkAdi.clProSettings.RoundWidth = 15;

   ymkAdi.clProSettings.BorderWidth = 3;

   ymkAdi.clProSettings.FontSize = 12;

   ymkAdi.clProSettings.FontVertAlign = palcenter;

   ymkAdi.clProSettings.FontHorzAlign = palCenter;

   ymkAdi.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic];

   ymkAdi.clProSettings.IsFill = True; 

   ymkAdi.clProSettings.IsRound = True;

   ymkAdi.SetclProSettings(ymkAdi.clProSettings);

   

   kcal = yemekEkle.AddNewProEdit(yemekEkle,'kcal','KALORİ MİKTARI');

   kcal.Align = alTop;

   kcal.Width = 250;

   kcal.Height = 60;

   kcal.margins.top=10;

   kcal.clProSettings.BorderColor = clAlphaColor.clHexToColor('#90EE90');

   kcal.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');

   kcal.clProSettings.RoundHeight = 15;

   kcal.clProSettings.RoundWidth = 15;

   kcal.clProSettings.BorderWidth = 3;

   kcal.clProSettings.FontSize = 12;

   kcal.clProSettings.FontVertAlign = palcenter;

   kcal.clProSettings.FontHorzAlign = palCenter;

   kcal.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic];

   kcal.clProSettings.IsFill = True; 

   kcal.clProSettings.IsRound = True;

   kcal.SetclProSettings(kcal.clProSettings);

   

   eklebtn = yemekEkle.AddNewProButton(yemekEkle,'eklebtn','');

   eklebtn.Align = alTop;

   eklebtn.Width = 150;

   eklebtn.Height = 70;

   eklebtn.Margins.Top=10;

   eklebtn.clProSettings.FontColor = clAlphaColor.clDarkorchid;

   eklebtn.clProSettings.FontSize = 12;

   eklebtn.clProSettings.FontVertAlign = palcenter;

   eklebtn.clProSettings.FontHorzAlign = palCenter;

   eklebtn.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic];

   eklebtn.clProSettings.IsFill = True; 

   eklebtn.clProSettings.PictureSource = 'https://resmim.net/cdn/2025/07/03/TnoYXI.png';

   eklebtn.SetclProSettings(eklebtn.clProSettings);

   yemekEkle.AddNewEvent(eklebtn, tbeOnClick, 'BtnOnClick');

   

   notelbl = yemekEkle.AddNewProLabel(yemekEkle,'notelbl','BUGÜN TÜKETİLEN YEMEKLER');

   notelbl.Align = alBottom;

   notelbl.Width = 150;

   notelbl.Height = 20;

   notelbl.Margins.Left = 10;

   notelbl.Margins.Bottom = 20;

   notelbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#00FA9A');

   notelbl.clProSettings.FontSize = 15;

   notelbl.clProSettings.FontVertAlign = palcenter;

   notelbl.clProSettings.FontHorzAlign = palLeading;

   notelbl.clProSettings.TextSettings.Font.Style = [fsBold];

   notelbl.SetclProSettings(notelbl.clProSettings);

   

   noteMemo = yemekEkle.AddNewMemo(yemekEkle,'noteMemo','');

   noteMemo.Align = alBottom;

   noteMemo.Height = 200;

   noteMemo.Width = 250;

   noteMemo.Margins.Left= 10;

   noteMemo.Margins.Right= 10; 

   noteMemo.Margins.Bottom= 50;

   noteMemo.ReadOnly = true;

   noteMemo.TextSettings.WordWrap = True;

 

   TabloyuOlustur;

   yemekEkle.Run;

}



Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,063 Saniyede Yüklendi.