ZeynelAbidin yazdı:peki recep hocam madem biz bu iş fieldbyname ile yapacağız ozaman neden selectsql,modifysql delete sqlleri oluşturuyoruz.
inserti parambyname ile yapmaya çalıştım ama birtürlü beceremedim.baktım olacak gibi değil fieldbyname ile yaptım bu seferde update kısmında takıldım .bizim update için eski kodu veritabanına gönderip bu eski kodlu kaydı değiştir dememiz için parambyname kullanmamız gerekmiyormu.update parambyname ile yapıyorum bu sefer diyorki bu field yok diyor.fieldbyname yapayımdiyorum bu seferde hangikaydı değiştireceğini bilmiyor.bu kısımda bayadır bir bocalıyorum lütfen yardım
eğer insert yapacağınız nesne ibDataset ise
yani Dataset de kayıtları table de ki nesnelerle ilişkilendirmek ve bunu sql ile yapmak istiyorsanız
KARTKASA isimli ID, ISIM, KOD, ACIKLAMA alanlı bir tablo için
Kod: Tümünü seç
IbDataset.SelectSQL := 'SELECT ID,KOD, ISIM, ACIKLAMA FROM KARTKASA';
IbDataset.ModifySQL:='UPDATE KARTKASA SET KOD = :KOD, ISIM = :ISIM, ACIKLAMA = :ACIKLAMA WHERE ID = :OLD_ID';
IbDataset.RefreshSQL:='SELECT ID,KOD, ISIM, ACIKLAMA FROM KARTKASA WHERE KARTKASA.ID = :OLD_ID';
IbDataset.DeleteSQL:='DELETE FROM KARTKASA WHERE ID = :OLD_ID';
IbDataset.InsertSQL:='INSERT INTO KARTKASA (ID,KOD,ISIM, ACIKLAMA) VALUES (:ID,:KOD,:ISIM, :ACIKLAMA)';
şeklinde düzenleyin ve active ettikten sonra table nesnesini kullandığınız gibi kullanın;
yukardaki tanımlamayı tasarım anında yaparak tablonun kayıt alanlarını data nesnelerine bağlayabilirsiniz.
eğer
ibquery ile yapacaksanız
örneğin insert için
Kod: Tümünü seç
ibquery.SQL.clear;
ibquery.SQL.add('INSERT INTO KARTKASA (ID,KOD,ISIM, ACIKLAMA) VALUES (:ID,:KOD,:ISIM, :ACIKLAMA)');
ibquery.ParamByNane('KOD').AsString:='001'; // veya edit1.text;
ibquery.ParamByNane('ISIM').AsString:='AHMET' YEREYAPIŞIK; // veya edit2.text;
ibquery.ParamByNane('ACIKLAMA').AsString:='MERHUMU İYİ BİLİRDİK'; // veya edit3.text;
ibquery.ExecQuery;