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;
}