![]() |
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. |
SQL HATASI |
Yanıt Yaz ![]() |
Yazar | |
Muammer ![]() Yeni Üye ![]() ![]() Kayıt Tarihi: 24 Haziran 2025 Konum: Konya/meram Durum: Aktif Değil Puanlar: 6 |
![]() ![]() ![]() ![]() ![]() Gönderim Zamanı: Dün Saat 15:04 |
Aşağıdaki kod ürün ekle sayfasına ait.Bu Kodda ürün bilglierini giriyorum bilgiler grid ekranına düşüyor fakat sqle kaydedilmiyor ve uygulamayı kapatıp açınca grid ekranından da gidiyor.
var MyForm: TclForm; MyGrid: TclStringGrid; Lbl_Baslik: TClProLabel; LblUyari: TClProLabel; DtEdt1: TClProDateEdit; Edt_StokKodu, Edt_UrunAdi, Edt_StokMiktari: TclProEdit; Lbl_Tarih, Lbl_UrunAdi, Lbl_StokMiktari: TClProLabel; Lbl_StokKodu: TClProLabel; Btn_Filtrele, Btn_TedarikciSiparisTakibi, Btn_QR, Btn_KritikUrunler, Btn_YeniUrunEkle, Btn_SatisFire: TClProButton; selectQuery: TClSqlQuery; Str_StokKodu, Str_DateEdit: String; NewUrunKodu, NewUrunAdi, NewStokMiktari, NewKritikSeviye, NewDepoYeriID, NewBirimFiyat: String; mainPnl, leftPanel, rightPanel, bottomPanel: TclProPanel; // Declare panels // Setup Grid Columns Function void SetupGridColumns; { MyGrid.Columns[0].Header = 'Ürün Kodu'; MyGrid.Columns[1].Header = 'Ürün Adı'; MyGrid.Columns[2].Header = 'Stok Miktarı'; MyGrid.Columns[3].Header = 'Kritik Seviye'; MyGrid.Columns[4].Header = 'Depo Yeri ID'; MyGrid.Columns[5].Header = 'Birim Fiyat'; MyGrid.Columns[6].Header = 'Tarih'; } // Add Data to Grid void AddDataToGrid; { try selectQuery.SQL.Text = 'SELECT UrunKodu, UrunAdi, StokMiktari, KritikSeviye, DepoYeriID, BirimFiyat, OlusturmaTarihi FROM TBLSTOKSB'; selectQuery.Open; if (selectQuery.Found) { MyForm.RemoveGridBinding('myLink'); MyForm.AddNewGridBinding(MyGrid, selectQuery, 'myLink'); SetupGridColumns; } else { ShowMessage('Kayıt bulunamadı!'); } except ShowMessage('Hata oluştu: ' + LastExceptionMessage); } } // Button click function to add a new product void EkleButtonClick; { // Ürün bilgilerini kullanıcıdan alıyoruz NewUrunKodu = Edt_StokKodu.Text; NewUrunAdi = Edt_UrunAdi.Text; // Stok miktarını kontrol ediyoruz try NewStokMiktari = StrToInt(Edt_StokMiktari.Text); except ShowMessage('Stok miktarı geçersiz! Lütfen geçerli bir sayı girin.'); } NewKritikSeviye = '0'; NewDepoYeriID = '1'; NewBirimFiyat = '0.00'; // Ürün kodu ve adının boş olmadığını kontrol ediyoruz if ((NewUrunKodu == '') && (NewUrunAdi == '')) { ShowMessage('Ürün kodu veya adı boş olamaz!'); } // Veritabanına yeni ürünü ekliyoruz try selectQuery = TClSqlQuery.Create(nil); selectQuery.Connection = Clomosy.DBSQLServerConnection; selectQuery.SQL.Text = 'INSERT INTO TBLSTOKSB (UrunKodu, UrunAdi, StokMiktari, KritikSeviye, DepoYeriID, BirimFiyat) VALUES (''' + NewUrunKodu + ''', ''' + NewUrunAdi + ''', ' + IntToStr(NewStokMiktari) + ', ''' + NewKritikSeviye + ''', ''' + NewDepoYeriID + ''', ''' + NewBirimFiyat + ''')'; // Correct column names selectQuery.ExecSQL; ShowMessage('Yeni ürün başarıyla eklendi!'); except ShowMessage('Ürün eklenirken bir hata oluştu: ' + LastExceptionMessage); } // Veritabanına yeni eklenen ürünü ekledikten sonra, grid'e ekliyoruz MyGrid.RowCount = MyGrid.RowCount + 1; MyGrid.Cells[0, MyGrid.RowCount - 1] = NewUrunKodu; MyGrid.Cells[1, MyGrid.RowCount - 1] = NewUrunAdi; MyGrid.Cells[2, MyGrid.RowCount - 1] = IntToStr(NewStokMiktari); MyGrid.Cells[3, MyGrid.RowCount - 1] = NewKritikSeviye; MyGrid.Cells[4, MyGrid.RowCount - 1] = NewDepoYeriID; MyGrid.Cells[5, MyGrid.RowCount - 1] = NewBirimFiyat; // Veriyi doğrudan grid'e eklediğimiz için Refresh kullanmamıza gerek yok } { // Form Initialization MyForm = TclForm.Create(Self); MyForm.SetFormColor('#c4c4c4', '#c4c4c4', clGVertical); // Form Title Lbl_Baslik = MyForm.AddNewProLabel(MyForm, 'Lbl_Baslik', 'Ürün Ekleme Sayfası'); Lbl_Baslik.Align = alTop; Lbl_Baslik.Height = 60; Lbl_Baslik.Margins.Top = 30; Lbl_Baslik.clProSettings.FontSize = 26; Lbl_Baslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#fc0000'); Lbl_Baslik.clProSettings.FontVertAlign = palCenter; Lbl_Baslik.clProSettings.FontHorzAlign = palCenter; Lbl_Baslik.SetclProSettings(Lbl_Baslik.clProSettings); // Left Panel (For form inputs) leftPanel = MyForm.AddNewProPanel(MyForm, 'leftPanel'); leftPanel.Align = alLeft; leftPanel.Width = 400; // Left panel takes 1/4th of the width leftPanel.Margins.Top = 20; leftPanel.Margins.Left = 20; leftPanel.Margins.Right = 20; // Right Panel (For Grid) rightPanel = MyForm.AddNewProPanel(MyForm, 'rightPanel'); rightPanel.Align = alClient; // Right panel takes the remaining space rightPanel.Margins.Top = 20; rightPanel.Margins.Left = 20; rightPanel.Margins.Right = 20; // Bottom Panel (For displaying products from the database) bottomPanel = MyForm.AddNewProPanel(MyForm, 'bottomPanel'); bottomPanel.Align = alBottom; // Bottom panel below the inputs bottomPanel.Height = 150; bottomPanel.Margins.Top = 20; bottomPanel.Margins.Left = 20; bottomPanel.Margins.Right = 20; // Left Panel Widgets (Product Info) Lbl_StokKodu = MyForm.AddNewProLabel(leftPanel, 'Lbl_StokKodu', 'Ürün Kodu'); Lbl_StokKodu.Align = alTop; Lbl_StokKodu.Height = 30; Lbl_StokKodu.clProSettings.FontSize = 14; Lbl_StokKodu.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); Lbl_StokKodu.SetclProSettings(Lbl_StokKodu.clProSettings); Edt_StokKodu = MyForm.AddNewProEdit(leftPanel, 'Edt_StokKodu', '' ); Edt_StokKodu.Align = alTop; Edt_StokKodu.Height = 40; Edt_StokKodu.Width = leftPanel.Width * 70 div 100; Edt_StokKodu.Margins.Top = 10; Edt_StokKodu.SetclProSettings(Edt_StokKodu.clProSettings); Lbl_UrunAdi = MyForm.AddNewProLabel(leftPanel, 'Lbl_UrunAdi', 'Ürün Adı'); Lbl_UrunAdi.Align = alTop; Lbl_UrunAdi.Height = 30; Lbl_UrunAdi.clProSettings.FontSize = 14; Lbl_UrunAdi.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); Lbl_UrunAdi.SetclProSettings(Lbl_UrunAdi.clProSettings); Edt_UrunAdi = MyForm.AddNewProEdit(leftPanel, 'Edt_UrunAdi', '' ); Edt_UrunAdi.Align = alTop; Edt_UrunAdi.Height = 40; Edt_UrunAdi.Width = leftPanel.Width * 70 div 100; Edt_UrunAdi.Margins.Top = 10; Edt_UrunAdi.SetclProSettings(Edt_UrunAdi.clProSettings); Lbl_StokMiktari = MyForm.AddNewProLabel(leftPanel, 'Lbl_StokMiktari', 'Stok Miktarı'); Lbl_StokMiktari.Align = alTop; Lbl_StokMiktari.Height = 30; Lbl_StokMiktari.clProSettings.FontSize = 14; Lbl_StokMiktari.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); Lbl_StokMiktari.SetclProSettings(Lbl_StokMiktari.clProSettings); Edt_StokMiktari = MyForm.AddNewProEdit(leftPanel, 'Edt_StokMiktari', '' ); Edt_StokMiktari.Align = alTop; Edt_StokMiktari.Height = 40; Edt_StokMiktari.Width = leftPanel.Width * 70 div 100; Edt_StokMiktari.Margins.Top = 10; Edt_StokMiktari.SetclProSettings(Edt_StokMiktari.clProSettings); Lbl_Tarih = MyForm.AddNewProLabel(leftPanel, 'Lbl_Tarih', 'Tarih'); Lbl_Tarih.Align = alTop; Lbl_Tarih.Height = 30; Lbl_Tarih.clProSettings.FontSize = 14; Lbl_Tarih.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000'); Lbl_Tarih.SetclProSettings(Lbl_Tarih.clProSettings); DtEdt1 = MyForm.AddNewProDateEdit(leftPanel, 'DtEdt1'); DtEdt1.Align = alTop; DtEdt1.Height = 40; DtEdt1.Width = leftPanel.Width * 70 div 100; DtEdt1.Margins.Top = 10; DtEdt1.SetclProSettings(DtEdt1.clProSettings); Btn_YeniUrunEkle = MyForm.AddNewProButton(leftPanel, 'Btn_YeniUrunEkle', 'Ürün Ekle'); Btn_YeniUrunEkle.Align = alTop; Btn_YeniUrunEkle.Height = 50; Btn_YeniUrunEkle.Width = leftPanel.Width * 70 div 100; Btn_YeniUrunEkle.Margins.Top = 10; Btn_YeniUrunEkle.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50'); Btn_YeniUrunEkle.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); Btn_YeniUrunEkle.clProSettings.FontSize = 16; Btn_YeniUrunEkle.SetclProSettings(Btn_YeniUrunEkle.clProSettings); // Create the grid for displaying products MyGrid = MyForm.AddNewStringGrid(rightPanel, 'MyGrid'); MyGrid.Align = alClient; MyGrid.ReadOnly = True; // SQL bağlantısı selectQuery = TClSqlQuery.Create(nil); Clomosy.DBSQLServerConnect('SQL Server', 'DESKTOP-E2HF8JM\SQLEXPRESS', 'sa', '1', 'StokYonetim', 1433); selectQuery.Connection = Clomosy.DBSQLServerConnection; // Verileri çek AddDataToGrid; MyForm.AddNewEvent(Btn_YeniUrunEkle,tbeOnClick,'EkleButtonClick'); MyForm.clSetWindowState(fwsMaximized); MyForm.Run; } |
|
![]() |
|
haletr ![]() Deneyimli Üye ![]() ![]() Kayıt Tarihi: 16 Haziran 2025 Konum: Konya Durum: Aktif Değil Puanlar: 63 |
![]() ![]() ![]() ![]() ![]() |
Merhaba Muammer,
Öncelikle StringGrid yerine TclProGrid kullanmanı öneriyorum. Kendi projemde veri tabanına veri eklemek için kullandığım kodları aşağıda paylaşıyorum. Veri tabanına ekledikten sonra Grid'i yenileyip bu şekilde verinin eklendiğini görüntülüyorum. Umarım yardımcı olur. //Veri tabanına kayıt void InsertToDatabase; { if ((edtFisNo.Text == '') || (edtHarcamaTur.Text == '') || (edtAciklama.Text == '') || (edtTutar.Text == '') || (edtTarih.Text == '') || (edtSaat.Text=='')) ShowMessage('Lütfen tüm alanları doldurun.'); else { try { Clomosy.DBSQLServerQuery.Sql.Text = 'INSERT INTO Harcamalar (fis_no, harcama_turu, aciklama, tutar, tarih, saat) ' + 'VALUES (' + QuotedStr(edtFisNo.Text) + ', ' + QuotedStr(edtHarcamaTur.Text) + ', ' + QuotedStr(edtAciklama.Text) + ', ' + edtTutar.Text + ', ' + QuotedStr(edtTarih.Text) + ', ' + QuotedStr(edtSaat.Text) + ')'; Clomosy.DBSQLServerQuery.ExecSql; ShowMessage('Veri ekleme başarılı'); Temizle; //Editleri temizlemek için bir prosedür Yenile; //Grid'i yenilemek için bir prosedür } except { ShowMessage('Exception class: '+LastExceptionClassName+' Exception Message: ' +LastExceptionMessage); } } } } |
|
![]() |
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 |