Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Sql bağlantı hatası
  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.

Sql bağlantı hatası

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

Kayıt Tarihi: 24 Haziran 2025
Konum: Konya/meram
Durum: Aktif Değil
Puanlar: 6
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Muammer Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Sql bağlantı hatası
    Gönderim Zamanı: Dün Saat 15:13
Aşağıdaki kod satış ve fire işlemleri sayfasının kodu.Bu kodda satış ve fire işlemi yaptığım zaman hafızaya kaydettiğim 100 üründen işlem yapıyor.Sql ile bağlantı sağlayamadığım için bunu yapmak zorunda kaldım.Bu koddaki tanımlanan sabit 100 ürün yerine sqldeki ürünleri çekmeye çalışıyorum fakat sürekli hata alıyoru.
Amacım Sqlde tablodaki üründen satış yapıldığında düşmesi.

var
  MyForm: TclForm;          
  MyGrid: TclStringGrid;    
  Lbl_Baslik: TClProLabel;  
  LblUyari: TClProLabel;    
  DtEdt1: TClProDateEdit;   
  Edt_SatisMiktari, Edt_FireMiktari, Edt_UrunKodu: TclProEdit; 
  Lbl_SatisMiktari, Lbl_FireMiktari, Lbl_UrunKodu: TClProLabel;  
  Btn_Satis, Btn_Fire: TClProButton;  // Satış ve Fire butonları
  UrunKodu: String;
  selectQuery: TClSqlQuery;
  SatisMiktari, FireMiktari: Integer;
  mevcutStok, yeniStok: Integer;
  yeterliStok: Boolean;
  mainPnl, leftPanel, rightPanel: 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';


}


// Satis Button Click Event
void SatisButtonClick;
{
  // Kullanıcının girdiği satış miktarını alıyoruz
  SatisMiktari = StrToInt(Edt_SatisMiktari.Text);  // Satış miktarını alıyoruz
  UrunKodu = Edt_UrunKodu.Text;  // Ürün kodunu alıyoruz

  // Mevcut stok miktarını kontrol ediyoruz (simülasyon, burada sadece örnek olarak 100 adet mevcut stok kabul ediliyor)
  mevcutStok = 100;  // Örnek olarak mevcut stok 100 kabul ediliyor

  // Yeterli stok olup olmadığını kontrol ediyoruz
  yeterliStok = mevcutStok >= SatisMiktari;

  // Yeterli stok varsa satışı yapıyoruz
  if (yeterliStok == True)
  {
    yeniStok = mevcutStok - SatisMiktari;

    // Satışı başarılı bir şekilde gerçekleştirdiğimizi göstermek için
    ShowMessage('Satış işlemi başarıyla tamamlandı! Yeni stok miktarı: ' + IntToStr(yeniStok));
  }
  else
  {
    ShowMessage('Yetersiz stok. Satış işlemi gerçekleştirilemedi.');
  }
}

// Fire Button Click Event
void FireButtonClick;
{
  // Kullanıcının girdiği fire miktarını alıyoruz
  FireMiktari = StrToInt(Edt_FireMiktari.Text);  // Fire miktarını alıyoruz
  UrunKodu = Edt_UrunKodu.Text;  // Ürün kodunu alıyoruz

  // Mevcut stok miktarını kontrol ediyoruz (simülasyon, burada sadece örnek olarak 100 adet mevcut stok kabul ediliyor)
  mevcutStok = 100;  // Örnek olarak mevcut stok 100 kabul ediliyor

  // Yeterli stok olup olmadığını kontrol ediyoruz
  yeterliStok = mevcutStok >= FireMiktari;

  // Yeterli stok varsa fire işlemi yapıyoruz
  if (yeterliStok == True)
  {
    yeniStok = mevcutStok - FireMiktari;

    // Fire işlemi başarılı bir şekilde gerçekleştirildiğini göstermek için
    ShowMessage('Fire işlemi başarıyla tamamlandı! Yeni stok miktarı: ' + IntToStr(yeniStok));
  }
  else
  {
    ShowMessage('Yetersiz stok. Fire işlemi gerçekleştirilemedi.');
  }
}
void AddDataToGrid;
{
  try
    selectQuery.SQL.Text = 'SELECT UrunKodu, UrunAdi, StokMiktari, KritikSeviye, DepoYeriID, BirimFiyat, OlusturmaTarihi FROM TBLSTOKSB';
    selectQuery.Open;
    
    if (selectQuery.Found == True)  // Burada == kullanıyoruz
    {
      MyForm.RemoveGridBinding('myLink');
      MyForm.AddNewGridBinding(MyGrid, selectQuery, 'myLink');
      SetupGridColumns;
    }
    else
    {
      ShowMessage('Kayıt bulunamadı!');
    }
  except
    ShowMessage('Hata oluştu: ' + LastExceptionMessage);
  }
}

{
  // Form Initialization
  MyForm = TclForm.Create(Self);
  MyForm.SetFormColor('#c4c4c4', '#c4c4c4', clGVertical);

  // Form Title
  Lbl_Baslik = MyForm.AddNewProLabel(MyForm, 'Lbl_Baslik', 'Satış ve Fire İşlemleri');
  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);

  // Create main panel to split left and right panels
  mainPnl = MyForm.AddNewProPanel(MyForm, 'mainPnl');
  mainPnl.Align = alClient;  // Use full client area
  mainPnl.Margins.Left = 10;
  mainPnl.Margins.Right = 10;
  mainPnl.Margins.Top = 10;
  mainPnl.Margins.Bottom = 10;

  // Left Panel (For inputs)
  leftPanel = MyForm.AddNewProPanel(mainPnl, 'leftPanel');
  leftPanel.Align = alLeft;
  leftPanel.Width = mainPnl.Width div 2;  // Half width for left panel
  leftPanel.Margins.Top = 20;
  leftPanel.Margins.Left = 20;
  leftPanel.Margins.Right = 20;

  // Right Panel (For Grid)
  rightPanel = MyForm.AddNewProPanel(mainPnl, 'rightPanel');
  rightPanel.Align = alClient;  // Takes remaining space
  rightPanel.Margins.Top = 20;
  rightPanel.Margins.Left = 20;
  rightPanel.Margins.Right = 20;

  // Left Panel Widgets (For Sales and Fire)
  Lbl_UrunKodu = MyForm.AddNewProLabel(leftPanel, 'Lbl_UrunKodu', 'Ürün Kodu');
  Lbl_UrunKodu.Align = alTop;
  Lbl_UrunKodu.Height = 30;
  Lbl_UrunKodu.clProSettings.FontSize = 14;
  Lbl_UrunKodu.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  Lbl_UrunKodu.SetclProSettings(Lbl_UrunKodu.clProSettings);

  Edt_UrunKodu = MyForm.AddNewProEdit(leftPanel, 'Edt_UrunKodu', '');
  Edt_UrunKodu.Align = alTop;
  Edt_UrunKodu.Height = 40;
  Edt_UrunKodu.Width = leftPanel.Width * 70 div 100;
  Edt_UrunKodu.Margins.Top = 10;
  Edt_UrunKodu.SetclProSettings(Edt_UrunKodu.clProSettings);

  Lbl_SatisMiktari = MyForm.AddNewProLabel(leftPanel, 'Lbl_SatisMiktari', 'Satış Miktarı');
  Lbl_SatisMiktari.Align = alTop;
  Lbl_SatisMiktari.Height = 30;
  Lbl_SatisMiktari.clProSettings.FontSize = 14;
  Lbl_SatisMiktari.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  Lbl_SatisMiktari.SetclProSettings(Lbl_SatisMiktari.clProSettings);

  Edt_SatisMiktari = MyForm.AddNewProEdit(leftPanel, 'Edt_SatisMiktari', '');
  Edt_SatisMiktari.Align = alTop;
  Edt_SatisMiktari.Height = 40;
  Edt_SatisMiktari.Width = leftPanel.Width * 70 div 100;
  Edt_SatisMiktari.Margins.Top = 10;
  Edt_SatisMiktari.SetclProSettings(Edt_SatisMiktari.clProSettings);

  Btn_Satis = MyForm.AddNewProButton(leftPanel, 'Btn_Satis', 'Satış Yap');
  Btn_Satis.Align = alTop;
  Btn_Satis.Height = 50;
  Btn_Satis.Width = leftPanel.Width * 70 div 100;
  Btn_Satis.Margins.Top = 10;
  Btn_Satis.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FF5733');
  Btn_Satis.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  Btn_Satis.clProSettings.FontSize = 16;
  Btn_Satis.SetclProSettings(Btn_Satis.clProSettings);

  Lbl_FireMiktari = MyForm.AddNewProLabel(leftPanel, 'Lbl_FireMiktari', 'Fire Miktarı');
  Lbl_FireMiktari.Align = alTop;
  Lbl_FireMiktari.Height = 30;
  Lbl_FireMiktari.clProSettings.FontSize = 14;
  Lbl_FireMiktari.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  Lbl_FireMiktari.SetclProSettings(Lbl_FireMiktari.clProSettings);

  Edt_FireMiktari = MyForm.AddNewProEdit(leftPanel, 'Edt_FireMiktari', '');
  Edt_FireMiktari.Align = alTop;
  Edt_FireMiktari.Height = 40;
  Edt_FireMiktari.Width = leftPanel.Width * 70 div 100;
  Edt_FireMiktari.Margins.Top = 10;
  Edt_FireMiktari.SetclProSettings(Edt_FireMiktari.clProSettings);

  Btn_Fire = MyForm.AddNewProButton(leftPanel, 'Btn_Fire', 'Fire İşlemi Yap');
  Btn_Fire.Align = alTop;
  Btn_Fire.Height = 50;
  Btn_Fire.Width = leftPanel.Width * 70 div 100;
  Btn_Fire.Margins.Top = 10;
  Btn_Fire.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFC107');
  Btn_Fire.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  Btn_Fire.clProSettings.FontSize = 16;
  Btn_Fire.SetclProSettings(Btn_Fire.clProSettings);

  // Right Panel: 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;

  // Butonlara tıklama olaylarını bağlıyoruz
  MyForm.AddNewEvent(Btn_Satis, tbeOnClick, 'SatisButtonClick');
  MyForm.AddNewEvent(Btn_Fire, tbeOnClick, 'FireButtonClick');
  
  AddDataToGrid;
  MyForm.clSetWindowState(fwsMaximized);

  MyForm.Run;
}

Yukarı Dön
Sudesigirci Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 24 Haziran 2025
Konum: KONYA
Durum: Aktif Değil
Puanlar: 53
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Sudesigirci Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 23 Saat 13 Dakika Önce Saat 17:46
Merhaba Muammer , sqlden veri çekmek için bir fonksiyon paylaşıyorum umarım sana faydası dokunur
function GetMevcutStok(kod: String): Integer;
var stokQuery: TClSqlQuery;
{
  stokQuery = TClSqlQuery.Create(nil);
  stokQuery.Connection = Clomosy.DBSQLServerConnection;
  stokQuery.SQL.Text = 'SELECT StokMiktari FROM TBLSTOKSB WHERE UrunKodu = ' + QuotedStr(kod);
  stokQuery.Open;

  while( not stokQuery.Eof ){
    Result = stokQuery.FieldByName('StokMiktari').AsInteger;
  } else {
    ShowMessage('Ürün bulunamadı!');
    Result = -1;
  }

  stokQuery.Free;
}

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