begin
With DataModule1 do
begin
Sinif_kart.Close;
Sinif_kart.SQL.Add('select * from SINIF_T where SINIF_ADI=:VARMI' ) ;
Sinif_kart.ParamByName('VARMI').AsString:=Edit1.Text;
Sinif_kart.Open;
if Sinif_kart.FieldByName('SINIF_ADI').AsString=edit1.Text then
begin
MessageDlg('Aynı Kayıttan Zaten var',mtInformation,mbOKCancel,0);
end
else
begin
Sinif_data.Edit;
Sinif_data.FieldByName('SINIF_ADI').AsString:=edit1.Text;
Sinif_data.Post;
end;
end;
ShowMessage('Kayıt İşlemi Tamamlandı ! ');
end;
end.
bu kodla tabloya kayıt yaptıramadım .
sınıf_data: İBDATASET
sınıf_kart:İBQUERY
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
1- ibdatasetin updatesqli ni gormeden bise diyemeyiz
2- sorunla ilgili degil ama kodlarda mantik hatasi var
* ayni kayit varsa uyaridan sonra showmessage yonetimi de calisir
* edit1.text deki veriye esit olan kayitlar seciliyor zaten hemen ardindan edit1.text ile tekrar karislastiriliyor.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.
hocam arama işlemini falan yapıyor geliyor ordan ileri gitmiyor.Zaman darlığı olduğu için veritabanını değiştirdim ama daha sonra aynı projeyi firebirdde tekrar yazıcam aklıma takıldı çünkü.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
Hata mesajı sql satırını işaret ediyor ama sql satırına bakıyorum ...sql.clear; satırı haricinde doğru gibi görünüyor(ben genelde sql.clear kullanıyorum da).
birde kafama takılan kayıt yoksa yaz demişsiniz insert veya append ile tabloya satır açmamışsınız edit pozisyonuna almışsınız. Belki bu cahilliğimden ama yeni kayıt girileceği için tereddüt ve şüphede kaldım.
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.
Kod:
begin
With DataModule1 do
begin
Sinif_kart.Close;
Sinif_kart.SQL.Add('select * from SINIF_T where SINIF_ADI=:VARMI' ) ;
Sinif_kart.ParamByName('VARMI').AsString:=Edit1.Text;
Sinif_kart.Open;
begin//Burası...........
if Sinif_kart.FieldByName('SINIF_ADI').AsString=edit1.Text then
begin
MessageDlg('Aynı Kayıttan Zaten var',mtInformation,mbOKCancel,0);
end
else
begin
Sinif_data.Edit;
Sinif_data.FieldByName('SINIF_ADI').AsString:=edit1.Text;
Sinif_data.Post;
end;
end;
ShowMessage('Kayıt İşlemi Tamamlandı ! ');
end;
end;
end.
Hocam Verdiğiniz kod bu şekilde çalıştı......(insert veya Append'le de VT'ye giriş yapılması lazım.).
Parametreye değer atamadan önce benim bildiğim prepare demelisiniz ki parametre değer almaya hazır olsun. Bir de bobastürk ün dediği gibi edit demişsiniz. GÖzden kaçmış olabilir. İnsert ya da append olması gerekir.
SQL cümlesini runtime girdiğinizde ibquery yada diğer ibx bileşenleri parametreleri create etmez bu işlem sadece tasarım anında yapılmakta...
Bu şekilde kullanacağınız zaman IBQuery1.Params.CreateParam() ile parametreleri sizin oluşturmanız lazım
gkimirti yazdı:SQL cümlesini runtime girdiğinizde ibquery yada diğer ibx bileşenleri parametreleri create etmez bu işlem sadece tasarım anında yapılmakta...
Nasıl yani?Runtime oluşturulan sorgu fazladan bir de create metodunu çağırmayı mı gerektirir doğru mu anladım?Cevap evetse benim kullandığım IBX bileşenleri fazla yetenekli diyebilirim o zaman
1 - hata mesajında satır 2 karekter 1 hatası diyor. buda şu an ki sql sorgusunda 2.satırın olmadığını, daha önceki sql sorgusunun clear ile temizlenmediğine işaret ediyor.
Arkadaşlar verdiğiniz cevaplardan dolayı teşekkür ederim, gerçekten çok özverili insanlar olduğunuzu bir kere daha anladım hepinizden Allah razı olsun .
Cevaplarınız neticesinde sorunu çözeceğime eminim ve buraya yazıcam.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.