![]() |
| 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. |
Kod Bloğunda Hata |
Yanıt Yaz
|
| Yazar | |
Kaan26
Yeni Üye
Kayıt Tarihi: 23 Mart 2026 Durum: Aktif Değil Puanlar: 2 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Konu: Kod Bloğunda HataGönderim Zamanı: 8 Saat 52 Dakika Önce Saat 15:30 |
|
Merhaba kolay gelsin projmemin amacı bir kütüphanede yardımcı olmak için kitapların arkasındaki bardodu okuyup direk verileri kendi haznesine kaydetmesi keydederken kitap adı yazar adı alış tariğhi gibi verilerinde girilmesini istiyorum fakat barkod kısmına ne kadar çok denesemde her seferinde hata alıyorum. İlgilenirseniz sevinirim ./////////////////////////////////////////////////////////////////////////////////////////////////// var MyForm: TclForm; BookNameEdit: TclEdit; ScanBtn, PhotoBtn, SaveBtn: TclButton; BookListMemo: TclMemo; CameraImg: TclImage; QRGen: TclQRCodeGenerator; MyData: TclSQLite; Qry: TclSQLiteQuery; // Barkod okuyucuyu çalıştırır ve sonucu Edit içine yazar void ReadBarcode; { MyForm.CallBarcodeReader(BookNameEdit); } // Galeriden resim seçer void onPhotoClick; { Clomosy.ImageChooser(MyForm, CameraImg); } // Veritabanındaki kitapları listeler (Uygulama açılışında verileri geri getirir) void ListBooks; { BookListMemo.Lines.Clear; Qry = MyData.clSelQuery('SELECT book_name FROM Books'); if (Qry.Found) { while (not Qry.EOF) { BookListMemo.Lines.Add('- ' + Qry.FieldByName('book_name').AsString); Qry.Next; } } } // Veriyi SQLite'a kaydeder ve QR kodu oluşturur void SaveToDatabase; { if (BookNameEdit.Text <> '') { // Veriyi yerel veritabanına ekle MyData.clExecuteQuery('INSERT INTO Books (book_name) VALUES (''' + BookNameEdit.Text + ''')');[cite: 1] // QR Kodu dokümana uygun şekilde oluştur[cite: 1] QRGen.clGenerate(BookNameEdit.Text);[cite: 1] ShowMessage('Kayıt Başarılı: ' + BookNameEdit.Text); BookNameEdit.Text = ''; ListBooks; } } { MyForm = TclForm.Create(Self); // --- SQLite Yapılandırması (Veri Kalıcılığı İçin) --- MyData = TclSQLite.Create(Self); MyData.DatabaseName = 'LibraryStorage';[cite: 1] MyData.clExecuteQuery('CREATE TABLE IF NOT EXISTS Books (book_id INTEGER PRIMARY KEY, book_name TEXT)');[cite: 1] BookNameEdit = MyForm.AddNewEdit(MyForm, 'BookNameEdit', 'Barkod Bekleniyor...'); BookNameEdit.Align = alTop; ScanBtn = MyForm.AddNewButton(MyForm, 'ScanBtn', 'BARKOD TARAT'); ScanBtn.Align = alTop; MyForm.AddNewEvent(ScanBtn, tbeOnClick, 'ReadBarcode');[cite: 1] PhotoBtn = MyForm.AddNewButton(MyForm, 'PhotoBtn', 'RESİM SEÇ'); PhotoBtn.Align = alTop; MyForm.AddNewEvent(PhotoBtn, tbeOnClick, 'onPhotoClick');[cite: 1] SaveBtn = MyForm.AddNewButton(MyForm, 'SaveBtn', 'VERİTABANINA KAYDET'); SaveBtn.Align = alTop; MyForm.AddNewEvent(SaveBtn, tbeOnClick, 'SaveToDatabase');[cite: 1] CameraImg = MyForm.AddNewImage(MyForm, 'CameraImg'); CameraImg.Align = alTop; CameraImg.Height = 150; // QR Kod Üretici Tanımlama[cite: 1] QRGen = MyForm.AddNewQRCodeGenerator(MyForm, 'QRGen', 'Barkod QR');[cite: 1] QRGen.Align = alTop; QRGen.Height = 150; BookListMemo = MyForm.AddNewMemo(MyForm, 'BookListMemo', ''); BookListMemo.Align = alClient; BookListMemo.ReadOnly = True; // Uygulama her açıldığında kayıtları yükle[cite: 1] ListBooks;[cite: 1] MyForm.Run; }
|
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 837 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 6 Saat 60 Dakika Önce Saat 17:22 |
|
Merhaba Kaan,
Hatanın genel sebebi Barkod okutma sırasında veya kaydetme sırasında hata almanın temel sebebi Veritabanı Bağlantı yöntemidir. https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous"> Clomosy'de yerel veritabanı işlemleri için DBSQLiteConnect veya TclSQLiteQuery kullanmalısın.
Önce güvenli bir veritabanı bağlantısı sağlayacağız, daha kapsamlı bir veritabanı tablosu ve barkod okuyucuyu doğrudan kutucuğa aktarıcaz. var MyForm: TclForm; EdtBarcode, EdtBookName, EdtAuthor, EdtDate: TclProEdit; ScanBtn, SaveBtn: TclProButton; BookListMemo: TclMemo; void ReadBarcode; { MyForm.CallBarcodeReader(EdtBarcode); } void ListBooks; var Qry: TclSQLiteQuery; { BookListMemo.Lines.Clear; Qry = TclSQLiteQuery.Create(Nil); try Qry.Connection = Clomosy.DBSQLiteConnection; Qry.Sql.Text = 'SELECT * FROM Books'; Qry.OpenOrExecute; while (not Qry.EOF) { BookListMemo.Lines.Add('Barkod: ' + Qry.FieldByName('barcode').AsString + ' | Kitap: ' + Qry.FieldByName('book_name').AsString + ' | Yazar: ' + Qry.FieldByName('author_name').AsString); Qry.Next; } finally Qry.Free; } } void SaveToDatabase; var InsertQry: TclSQLiteQuery; { if ((EdtBarcode.Text == '') || (EdtBookName.Text == '')) { ShowMessage('Lütfen en azından barkod ve kitap adı alanlarını doldurun.'); Exit; } InsertQry = TclSQLiteQuery.Create(Nil); try InsertQry.Connection = Clomosy.DBSQLiteConnection; InsertQry.Sql.Text = 'INSERT INTO Books (barcode, book_name, author_name, purchase_date) VALUES (' + QuotedStr(EdtBarcode.Text) + ', ' + QuotedStr(EdtBookName.Text) + ', ' + QuotedStr(EdtAuthor.Text) + ', ' + QuotedStr(EdtDate.Text) + ')'; InsertQry.OpenOrExecute; ShowMessage('Kayıt Başarılı: ' + EdtBookName.Text); EdtBarcode.Text = ''; EdtBookName.Text = ''; EdtAuthor.Text = ''; EdtDate.Text = ''; ListBooks; finally InsertQry.Free; } } void SetupDatabase; { Clomosy.DBSQLiteConnect(Clomosy.AppFilesPath + 'LibraryDB.db', ''); Clomosy.DBSQLiteQuery.Sql.Text = 'CREATE TABLE IF NOT EXISTS Books (book_id INTEGER PRIMARY KEY AUTOINCREMENT, barcode TEXT, book_name TEXT, author_name TEXT, purchase_date TEXT)'; Clomosy.DBSQLiteQuery.OpenOrExecute; } { MyForm = TclForm.Create(Self); MyForm.SetFormColor('#F8FAFC', '', clGNone); SetupDatabase; EdtBarcode = MyForm.AddNewProEdit(MyForm, 'EdtBarcode', 'Barkod Numarası...'); EdtBarcode.Align = alTop; EdtBarcode.Margins.Top = 15; EdtBarcode.Margins.Left = 15; EdtBarcode.Margins.Right = 15; EdtBarcode.Height = 40; ScanBtn = MyForm.AddNewProButton(MyForm, 'ScanBtn', 'BARKODU TARAT'); ScanBtn.Align = alTop; ScanBtn.Margins.Top = 5; ScanBtn.Margins.Left = 15; ScanBtn.Margins.Right = 15; ScanBtn.Height = 45; ScanBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2563EB'); ScanBtn.clProSettings.FontColor = clAlphaColor.clWhite; ScanBtn.clProSettings.IsRound = True; ScanBtn.clProSettings.RoundHeight = 8; ScanBtn.SetclProSettings(ScanBtn.clProSettings); MyForm.AddNewEvent(ScanBtn, tbeOnClick, 'ReadBarcode'); EdtBookName = MyForm.AddNewProEdit(MyForm, 'EdtBookName', 'Kitap Adı...'); EdtBookName.Align = alTop; EdtBookName.Margins.Top = 10; EdtBookName.Margins.Left = 15; EdtBookName.Margins.Right = 15; EdtBookName.Height = 40; EdtAuthor = MyForm.AddNewProEdit(MyForm, 'EdtAuthor', 'Yazar Adı...'); EdtAuthor.Align = alTop; EdtAuthor.Margins.Top = 10; EdtAuthor.Margins.Left = 15; EdtAuthor.Margins.Right = 15; EdtAuthor.Height = 40; EdtDate = MyForm.AddNewProEdit(MyForm, 'EdtDate', 'Alış Tarihi (Örn: 04.05.2026)...'); EdtDate.Align = alTop; EdtDate.Margins.Top = 10; EdtDate.Margins.Left = 15; EdtDate.Margins.Right = 15; EdtDate.Height = 40; SaveBtn = MyForm.AddNewProButton(MyForm, 'SaveBtn', 'KÜTÜPHANEYE KAYDET'); SaveBtn.Align = alTop; SaveBtn.Margins.Top = 20; SaveBtn.Margins.Left = 15; SaveBtn.Margins.Right = 15; SaveBtn.Height = 50; SaveBtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#10B981'); SaveBtn.clProSettings.FontColor = clAlphaColor.clWhite; SaveBtn.clProSettings.IsRound = True; SaveBtn.clProSettings.RoundHeight = 8; SaveBtn.SetclProSettings(SaveBtn.clProSettings); MyForm.AddNewEvent(SaveBtn, tbeOnClick, 'SaveToDatabase'); BookListMemo = MyForm.AddNewMemo(MyForm, 'BookListMemo', ''); BookListMemo.Align = alClient; BookListMemo.Margins.Top = 15; BookListMemo.Margins.Bottom = 15; BookListMemo.Margins.Left = 15; BookListMemo.Margins.Right = 15; BookListMemo.ReadOnly = True; ListBooks; MyForm.Run; } |
|
![]() |
|
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 |