Calisma metodunuz oldukca kirli.
Query biryere bagli iken, sqlTextinizi degistirmeniz oldukca sakat. Benim izledigim yol(tabiki tek dogru degil). Degismeyen gridlere bagli queryleri programlarken yaziyorum ve sql texti hic degistirmiyorum.
Calisma esnasinda Degistiskenligi saglamak icin ayri bir query kullaniyorum. qryKomutlari deyip ona bütün islemleri yaptiriyorum, Ki bu da temiz bir yol degil.
IB nesnelerinde querynin, insert, delete durumlarinda nasil bir rol izlemesi gerektigi verilebiliyor. Onlari ögrenmenizi tavsiye ederim. O üc ´´´tepeden tirnakla hareket etmesi oldukca zoruma gidiyordu ve hatasiz yazana kadar sürekli 5 dakikami yiyordu. Ben parambyname kullanmanizi tavsiye ederim.
Bir de konuyu anlatirken anlasirligina dikkat edelim. Tablo'lardan hangisi master daha cikaramadim, Tablolar galiba birbirlerine dataset üzerinden bagli.
Birde noktamalara dikkat edelim.
mobilepack yazdı:arkadaşlar böyle bir hata var halledemedim hasta ve muayene iki query
muayene querynin datasource nu hasta query yi tanımladığım zaman daha ben kod yazmadan master/detail yapıyor böyle olunca master dan insert cektiğim zaman detaile access violation hatası veriyor datasource tanımlamasını kaldırıyorum insert kodumu çalıştırdığım zaman can not retrieve resultset data alıyorum yardımlarınızı bekliyorum
Kod: Tümünü seç
begin
with data.muset do begin
close;
sql.clear;
sql.add('insert into muayene(protokol,adi,soyadi,muayenesira,muayenetar,durum) ');
sql.add('values ('''+data.hasta.fieldbyname('protokol').AsString+''', ');
sql.add(' '''+data.hasta.fieldbyname('adi').AsString+''',');
sql.add(' '''+data.hasta.fieldbyname('soyadi').AsString+ ''', ');
sql.Add(' '''+data.parametre.fieldbyname('muasira').AsString+''',');
sql.add('curdate(),0)');
showmessage(sql.Text);
execsql;
begin;