![]() |
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. |
veri tabanı bağlayamıyorum |
Yanıt Yaz ![]() |
Yazar | |
ela göçel ![]() Yeni Üye ![]() Kayıt Tarihi: 05 Ağustos 2025 Durum: Aktif Değil Puanlar: 8 |
![]() Yanıt Yaz
Alıntı ela göçel
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
![]() ![]() ![]() ![]() Gönderim Zamanı: 5 Saat 1 Dakika Önce Saat 16:41 |
kodlarım aşağıdaki şekilde ve RUNTIME ERROR File library anasayfa: Unit kaloriForminstance: Syntax error. Source position: 16,25 when evaluating instruction CallProc (SFFFFFFFF, $1, SAC3728,5134734D0, RunUnit ). Stack content is: [Null, Integer: 525653400,Null, Null...]. Source position: 22,40 Position: 22, 40. HATASI ALIYORUM NE YAPMAM GEREKİYOR var kaloriFormInstance: TCLForm; mainLayout: TCLLayout; titleLabel: TCLLabel; dataListView: TCLListView; refreshButton: TCLProButton; addPanel: TCLProPanel; yemekAdiEdit: TCLProEdit; kaloriEdit: TCLProEdit; ekleButton: TCLProButton; SQLiteDB: TCLSQLiteConnection; Query: TCLSQLiteQuery; dbPath: string; void InitializeDatabase() { dbPath = Clomosy.AppFilesPath + 'kalori.db'; SQLiteDB = kaloriFormInstance.AddNewSQLiteConnection(kaloriFormInstance, 'SQLiteDB'); SQLiteDB.DatabaseName = dbPath; try { SQLiteDB.Connect(); Query = kaloriFormInstance.AddNewSQLiteQuery(kaloriFormInstance, 'Query'); Query.Connection = SQLiteDB; Query.Sql.Text = 'CREATE TABLE IF NOT EXISTS yemekler (id INTEGER PRIMARY KEY AUTOINCREMENT, yemek_adi TEXT NOT NULL, kalori INTEGER NOT NULL)'; Query.ExecSQL(); Query.Close(); } catch { kaloriFormInstance.ShowMessage('Veritabanı bağlantı hatası!'); } } void LoadDataToList() { var listItem: TCLListViewItem; try { dataListView.Items.Clear(); Query.Sql.Text = 'SELECT id, yemek_adi, kalori FROM yemekler ORDER BY yemek_adi'; Query.Open(); while not Query.Eof { listItem = dataListView.Items.Add(); listItem.Text = Query.FieldByName('yemek_adi').AsString; listItem.Detail = Query.FieldByName('kalori').AsString + ' kcal'; listItem.TagString = Query.FieldByName('id').AsString; Query.Next(); } Query.Close(); } catch { kaloriFormInstance.ShowMessage('Veri yükleme hatası!'); } } void RefreshButtonClick() { LoadDataToList(); } void EkleButtonClick() { if (yemekAdiEdit.Text != '') and (kaloriEdit.Text != '') { try { Query.Sql.Text = 'INSERT INTO yemekler (yemek_adi, kalori) VALUES ("' + yemekAdiEdit.Text + '", ' + kaloriEdit.Text + ')'; Query.ExecSQL(); Query.Close(); yemekAdiEdit.Text = ''; kaloriEdit.Text = ''; LoadDataToList(); kaloriFormInstance.ShowMessage('Yemek başarıyla eklendi!'); } catch { kaloriFormInstance.ShowMessage('Ekleme hatası! Kalori değerinin bir sayı olduğundan emin olun.'); } } else { kaloriFormInstance.ShowMessage('Lütfen tüm alanları doldurun!'); } } { kaloriFormInstance = TCLForm.Create(Self); kaloriFormInstance.SetFormColor('#cce6d6', '#678e76', clGVertical); ![]() ![]() InitializeDatabase; LoadDataToList; kaloriFormInstance.Run; } |
|
![]() |
|
cerenn ![]() Deneyimli Üye ![]() Kayıt Tarihi: 18 Haziran 2025 Durum: Aktif Değil Puanlar: 60 |
![]() ![]() ![]() ![]() ![]() |
Merhaba Eda
Öncelikle kodunda bazı hatalar mevcut Fonksiyonları eğer parametresizse ()olmadan kullanıyoruz örneğin void InitializeDatabase() değilde void InitializeDatabase; şeklinde kullanman lazım tüm fonksiyonlarını buna çevirirsen hatalardan biri düzelicektir. Ayrıca showmessageları 'kaloriFormInstance.ShowMessage('Ekleme hatası! Kalori değerinin bir sayı olduğundan emin olun.');' şeklinde değilde direkt 'ShowMessage('Ekleme hatası! Kalori değerinin bir sayı olduğundan emin olun.');' şeklinde kullanman gerekiyor if (yemekAdiEdit.Text != '') and (kaloriEdit.Text != '') kullanımı doğru değil and kullanmıyoruz && şeklinde gösteriyoruz ve yine != şeklinde bir kullanım yok <> şeklinde kullanman gerekiyor yani if ((yemekAdiEdit.Text <> '') &&(kaloriEdit.Text <> '')) doğrusu bu şekilde. clomosyde try-catch yok try-except ya da try-finally var senin kodun için except kullanmak uygun. try { Query.Sql.Text = 'INSERT INTO yemekler (yemek_adi, kalori) VALUES ("' + yemekAdiEdit.Text + '", ' + kaloriEdit.Text + ')'; Query.ExecSQL(); Query.Close(); yemekAdiEdit.Text = ''; kaloriEdit.Text = ''; LoadDataToList(); kaloriFormInstance.ShowMessage('Yemek başarıyla eklendi!'); } except { ShowMessage('Ekleme hatası! Kalori değerinin bir sayı olduğundan emin olun.'); } } şeklinde olmalı fazladan en sona bir '}' atıyoruz kural böyle. Bunun haricinde sqllitede ExecSQL() diye bir ifade yok bunu sqlserverda kullanıyoruz.sqllite için chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://clomosy.com/docs/ClomosyKitapV2.pdf 218.sayfa 14.7.2. Local (Yerel) Veri Tabanı Bağlantıları inceleyebilirsin.Syntax hatalarını düzelttikten ve kitaba baktıktan sonra aldığın bir hata olursa ve paylaşırsan tekrar yardımcı olabilirim. İyi çalışmalar.
|
|
![]() |
Yanıt Yaz ![]() |
|
Tweet |
Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |