ADOStoredProc ile DBGrid bağlantısı hk.
vipaydin21.07.2005 - 23:22:13
Merhabalar.
SQL Server 2000 kullanıyorum.
Programda DBGrid içerisine ADOStoredProc kullanarak istediğim gibi bir liste atayabiliyorum.
Yalnız veritabanından gelen tabloda alan sayısı çok.
Bunlardan DBGrid içerisine sadece 3 tanesini alıyorum.
Gelen 3 adet alan haricinde de 5 veya 10 alanı ise DBGrid altına yerleştirdiğim MaskEdit'lerin içine atmak istiyorum.
MaskEdit lerin içine DBGrid'teki ilk alanın bilgileri geliyor. Burada sorun yok.
Benim istediğim ise yön ok tuşları ile dbgrid içerisinde gezinildiğinde aktif olan satırın bilgilerinin de Mask Edit içlerinde otomatik olarak değişmesi.
Bunu nasıl bir kodla yapabilirim acaba?
İyi çalışmalar.
 
MicroChip22.07.2005 - 01:10:54
gridde gezindiğinde aynı her satırda o record komple okunur. ve istediğin değeri yakalarsın

mesela aç dbgridin keydown keyup onmousedown gibi eventlerini içine yaz

atıyorum;

maskedit1.text:=adobilmemne.fieldbyname('alanin').asstring;

yaz. sonucu göreceksin


Saygılar
 
vipaydin25.07.2005 - 23:10:39
Sizin dediğiniz gibi deniyorum ama olmuyor.
Sadece Keypress, Keydown gibi eventler değil çoğunda denedim hiç birinde olmuyor.


CREATE PROCEDURE INV_AES_TERMINAL
@REF int,
@NO Smallint OUTPUT,
@KODU Varchar(20) OUTPUT,
@ADI Varchar (25) OUTPUT
AS
SELECT
@NO=NUMBER,
@KODU=CODE,
@ADI=NAME
FROM AES_TERMINAL WHERE REFREF=@REF
GO


program içerisinde ise;

ADOStoredProc1.Parameters.ParamValues['@REF']:=DBGrid1.SelectedField.Text;
ADOStoredProc1.ExecProc;
MaskEdit1.Text:=ADOStoredProc1.Parameters.ParamValues['@NO'];
MaskEdit2.Text:=ADOStoredProc1.Parameters.ParamValues['@KODU'];
MaskEdit3.Text:=ADOStoredProc1.Parameters.ParamValues['@ADI'];

Bu bölümü OnShow'a yazarsam ilk kayıtı okumasında sorun yok.
Ama yön ok tuşları ile DBGrid içerisinde gezintiğim zaman MaskEdit'lerin içini güncellemiyor.
Yukarıdaki kodları birçok event'in içinde denedim.
Acaba nerede hata yapıyorum?
 
sadettinpolat26.07.2005 - 13:57:06
dbgridin bağlı olduğu datasource bileşeninin ondatachange olayına yazın. keypress, keydown gibi olaylardan çok daha sağlıklı olacaktır.
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com