Sayfayı Yazdır | Pencereyi Kapat

annot open /define command which doesnt return res

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1091
Tarih: 17 Temmuz 2025 Saat 06:35
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: annot open /define command which doesnt return res
Mesajı Yazan: Sudesigirci
Konu: annot open /define command which doesnt return res
Mesaj Tarihi: 16 Temmuz 2025 Saat 11:58
Merhabalar , aşağıdaki kod statü güncelleme işlemini yapıyor fakat butona bastığımda yazdığım hatayı alıyorum bazen de bastığımda Invalid Cast Type hatasını alıyorum şimdiden yardımlarınız için teşekkür ederim
var
  MyForm: TclForm;
  mainVertSB: TclVertScrollBox;
  clProGrid: TClProGrid;
  lblBaslik: TClLabel;
  Qry: TClSQLiteQuery;
  btnStatuGuncelle:TClProButton;
  seciliEmail, seciliModul: String;
   seciliID: String;
   
   
void GetTaleplerGrid;
{
  try
     Qry = Clomosy.DBSQLiteQueryWith(
  'SELECT kullanici_email, modul, aciklama, status, id FROM Talepler'
);


    Qry.OpenOrExecute;

    if Qry.Found {
      clProGrid = MyForm.AddNewProGrid(mainVertSB, 'clProGrid');
      clProGrid.Align = alTop;
      clProGrid.Height = 400;
      clProGrid.Options.Selection.Mode = smSingleCell;
      clProGrid.ConnectDataSet(Qry);
      clProGrid.AutoSizeColumns(True, 100);
        MyForm.AddNewEvent(clProGrid, tbeOnProGridCellClick, 'ProGridSatirSecildi');
    } else {
      ShowMessage('Veri bulunamadı.');
    }
  except
    ShowMessage('Hata: ' + LastExceptionMessage);
  }
}

void ProGridSatirSecildi;
var
  satirNo: Integer;
{
  satirNo = MyForm.ClSenderRow;
  seciliID = clProGrid.Cells[4, satirNo];
}

void StatuyuGuncelle;

{
  if seciliID <> '' {
      Qry = Clomosy.DBSQLiteQueryWith(
      'UPDATE Talepler SET status = ''' + 'Çözüldü' + ''' WHERE id = ' + seciliID
    );
    
    ShowMessage('Durum "Çözüldü" olarak güncellendi.');
    GetTaleplerGrid;
  } else {
    ShowMessage('Lütfen önce bir satıra tıklayın.');
  }
}

{
  MyForm = TclForm.Create(Self);

  mainVertSB = MyForm.AddNewVertScrollBox(MyForm, 'mainVertSB');
  mainVertSB.Align = alClient;

  lblBaslik = MyForm.AddNewLabel(mainVertSB, 'lblBaslik', 'Tüm Talepler Listesi');
  lblBaslik.Align = alTop;
  lblBaslik.Height = 50;
  lblBaslik.TextSettings.Font.Size = 24;
  lblBaslik.TextSettings.Font.Style = [fsBold];
  lblBaslik.TextSettings.HorzAlign = taCenter;

  btnStatuGuncelle = MyForm.AddNewProButton(mainVertSB, 'btnStatuGuncelle', 'Durumu Güncelle');
  btnStatuGuncelle.Align = alTop;
  btnStatuGuncelle.Height = 50;
  GetTaleplerGrid;
  
  MyForm.AddNewEvent(btnStatuGuncelle, tbeOnClick, 'StatuyuGuncelle');

  MyForm.Run;
}




Cevaplar:
Mesajı Yazan: cerenn
Mesaj Tarihi: 16 Temmuz 2025 Saat 12:10
Merhaba Sude gördüğüm kadarıyla openorexecute yazmayı unutmuşsun 

Clomosy.DBSQLiteQuery.SQL.Text = 'UPDATE Talepler SET status = ''Çözüldü'' WHERE id = ' + seciliID; 
Clomosy.DBSQLiteQuery.OpenOrExecute;

onun haricinde bazen global bir Qry tanımlamak bende sıkıntılara yol açabiliyordu benim kodumda local şekilde hem GetTaleplerGrid fonksiyonun için hem de ProGridSatirSecildi fonksiyonun için tanımlarsan daha iyi olabilir.Ayrıca eğer ki tek bir ID üzerinden statü işlemini devam ettirmeyeceksen ID yi kullandıktan sonra seciliID = '' satırını fonksiyonuna eklemeyi unutma.
Gördüklerim bunlar iyi çalışmalar dilerim.


Mesajı Yazan: Sudesigirci
Mesaj Tarihi: 16 Temmuz 2025 Saat 12:12
Merhaba Ceren ,
OpenOrExecute kullandım fakat aynı hatayı alınca tekrar sildim buraya da o şekilde attım diğer dediklerini uygulayacağım teşekkür ederim


Mesajı Yazan: haletr
Mesaj Tarihi: 16 Temmuz 2025 Saat 14:37
Merhaba Sude,

void StatuyuGuncelle;

{
if (seciliID <> '') {
  Clomosy.DBSQLiteQuery.SQL.Text=
    'UPDATE Talepler SET status = ''Çözüldü'' WHERE id = ''' + seciliID + '''';
  
  Clomosy.DBSQLiteQuery.OpenOrExecute;
    
    ShowMessage('Durum "Çözüldü" olarak güncellendi.');
    GetTaleplerGrid;
    }
  else {
    ShowMessage('Lütfen önce bir satıra tıklayın.');
  }
}

StatuyuGuncelle fonksiyonunu bu şekilde deneyebilir misin? Umarım yardımcı olur. İyi çalışmalar.



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net