Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Kod Bloğunda Hata
  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.

Kod Bloğunda Hata

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


Kayıt Tarihi: 23 Mart 2026
Durum: Aktif Değil
Puanlar: 2
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Kaan26 Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Kod Bloğunda Hata
    Gönderim Zamanı: 3 Saat 28 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 sevinirimSmile.
///////////////////////////////////////////////////////////////////////////////////////////////////


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;
}
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 833
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 1 saat 36 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;
}





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,047 Saniyede Yüklendi.